iPhone/iPad Programming Reuben Edwards
Contents iPhone & iPad Layout Objective-C UIKit Other APIs Alternative Tools
What is an App? 2U 2U
iPhone
iPad GUI Kit
Objective-C Superset of ANSI-C – Supports C and C++ code.h – header files.m – Objective C and/or C code.mm C/C++/Obj-C code
Classes Objective C is object-oriented Classes specified using an interface and an implementation
Methods A class in Objective-C can declare two types of methods: instance methods and class methods. – An instance method is a method whose execution is scoped to a particular instance of the class. – Class methods, by comparison, do not require you to create an instance (i.e. static methods)
Messaging When you want to call a method, you do so by messaging an object. – A message is the method signature, along with the parameter information the method needs. – All messages you send to an object are dispatched dynamically. Messages are enclosed by brackets ([ and ]). – Inside the brackets, the object receiving the message is on the left side and the message (along with any parameters required by the message) is on the right.
Messaging Example For example, to send the insertObject:atIndex: message to an object in the myArray variable, you would use the following syntax: [myArray insertObject:anObject atIndex:0]; Objects can be nested: [[myAppObject theArray] insertObject:[myAppObject objectToInsert] atIndex:0]; Obj-C also supports dot syntax: myAppObject.theArray = aNewArray;
Class MyClass - (id)initWithString:(NSString *)aName { self = [super init]; if (self) { name = [aName copy]; } return self; + (MyClass *)createMyClassWithString: (NSString *)aName { return [[[self alloc] initWithString:aName] autorelease];
NSString The NSString class provides an object wrapper for strings that has all of the advantages you would expect, including built-in memory management for storing arbitrary-length strings, support for Unicode, printf-style formatting utilities, and more. – Because such strings are used commonly though, Objective-C provides a shorthand notation for creating NSString objects from constant values.
NSString examples NSString *myString String\n"; NSString *anotherString = [NSString // Create an Objective-C string from a C string NSString *fromCString = [NSString stringWithCString:"A C string" encoding:NSASCIIStringEncoding];
UIKit UI Framework for iOS Classes: – UIHardware, UIApplication – UIWindow, UIResponder, UIView, UIControl, UIImage, UIImageView – UINavigationBar, UIButtonBar, UITextView, UITextLabel, UITextField, UIKeyboard, UIFontChooser, UISegmentedControl, UISliderControl, UISwitchControl, UIPickerView, UIPushButton, UIAlertSheet, UITransitionView, UITable – UIAnimation
Other APIs GameKit – Game Center Authentication, Friends, Leaderboards, Achievements, Auto-matching, Invitations – Peer-to-Peer Bluetooth Gaming – In-Game Voice Voice Chat
Other APIs iAd, StoreKit AddressBook/AddressBookUI AudioToolbox/AVFoundation CoreAnimation, CoreGraphics, CoreLocation, CoreMedia, CoreMotion, CoreTelephony, CoreText EventKit, ExternalAccessory MapKit OpenTK (OpenGLES support)
Other Tools MonoTouch – C#.NET Unity – 3D Gaming RhoMobile – Ruby On Rails Appcelerator – Javascript PhoneGap – Javascript Whoop – Wysiwyg webeditor MoSync – C/C++
Final Thoughts