IPhone/iPad Programming Reuben Edwards. Contents iPhone & iPad Layout Objective-C UIKit Other APIs...

18
iPhone/iPad Programming Reuben Edwards
  • date post

    19-Dec-2015
  • Category

    Documents

  • view

    215
  • download

    0

Transcript of IPhone/iPad Programming Reuben Edwards. Contents iPhone & iPad Layout Objective-C UIKit Other APIs...

  • Slide 1
  • iPhone/iPad Programming Reuben Edwards
  • Slide 2
  • Contents iPhone & iPad Layout Objective-C UIKit Other APIs Alternative Tools
  • Slide 3
  • What is an App? http://www.youtube.com/watch?v=EhkxDIr0y 2U http://www.youtube.com/watch?v=EhkxDIr0y 2U
  • Slide 4
  • iPhone
  • Slide 5
  • iPad GUI Kit http://www.teehanlax.com/blog/2010/02/01/ipad-gui-psd/
  • Slide 6
  • 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
  • Slide 7
  • Classes Objective C is object-oriented Classes specified using an interface and an implementation
  • Slide 8
  • 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)
  • Slide 9
  • 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.
  • Slide 10
  • 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;
  • Slide 11
  • Class implementation @implementation 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]; } @end
  • Slide 12
  • 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.
  • Slide 13
  • NSString examples NSString *myString = @"My String\n"; NSString *anotherString = [NSString stringWithFormat:@"%d %@", 1, @"String"]; // Create an Objective-C string from a C string NSString *fromCString = [NSString stringWithCString:"A C string" encoding:NSASCIIStringEncoding];
  • Slide 14
  • 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
  • Slide 15
  • Other APIs GameKit Game Center Authentication, Friends, Leaderboards, Achievements, Auto-matching, Invitations Peer-to-Peer Bluetooth Gaming In-Game Voice Voice Chat
  • Slide 16
  • Other APIs iAd, StoreKit AddressBook/AddressBookUI AudioToolbox/AVFoundation CoreAnimation, CoreGraphics, CoreLocation, CoreMedia, CoreMotion, CoreTelephony, CoreText EventKit, ExternalAccessory MapKit OpenTK (OpenGLES support)
  • Slide 17
  • Other Tools MonoTouch C#.NET Unity 3D Gaming RhoMobile Ruby On Rails Appcelerator Javascript PhoneGap Javascript Whoop Wysiwyg webeditor MoSync C/C++
  • Slide 18
  • Final Thoughts