iPhone Tech Talk

Loading...

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

1 comments

Comments 1 - 1 of 1 previous next Post a comment

  • + jamild jamild 6 months ago
    Great Presentation, good intro to O-C
Post a comment
Embed Video
Edit your comment Cancel

Notes on slide 1





In 1994 NeXT and Sun standardized the language called Openstep.
Foundation of OS X
2007 Objective-C 2.0 released

In 1994 NeXT and Sun standardized the language called Openstep.
Foundation of OS X
2007 Objective-C 2.0 released

In 1994 NeXT and Sun standardized the language called Openstep.
Foundation of OS X
2007 Objective-C 2.0 released

In 1994 NeXT and Sun standardized the language called Openstep.
Foundation of OS X
2007 Objective-C 2.0 released


This is bizarre and a large part of the hurdle of learning Objective C
Most native objects (NSArray, NSString, NSNumber) come from NeXTStep

This is bizarre and a large part of the hurdle of learning Objective C
Most native objects (NSArray, NSString, NSNumber) come from NeXTStep

synthesize automatically creates getters and setters
@property makes it public

Note that iPhone development requires and Intel based Mac running Leopard

Note that iPhone development requires and Intel based Mac running Leopard

Note that iPhone development requires and Intel based Mac running Leopard








Mention the time that it takes to enroll in each

Mention the time that it takes to enroll in each

Mention the time that it takes to enroll in each

Mention the time that it takes to enroll in each















2 Favorites

iPhone Tech Talk - Presentation Transcript

  1. iPhone Tech Talk 5.13.2009
  2. Outline
  3. Outline • Overview of Objective C
  4. Outline • Overview of Objective C • Interface Builder and XCode
  5. Outline • Overview of Objective C • Interface Builder and XCode • iPhone App Store
  6. History
  7. History • Started in 1980, layered on C language
  8. History • Started in 1980, layered on C language • NeXT Licensed 1988
  9. History • Started in 1980, layered on C language • NeXT Licensed 1988 • Added to Free Software Foundation GNU in 1992
  10. History • Started in 1980, layered on C language • NeXT Licensed 1988 • Added to Free Software Foundation GNU in 1992 • Apple acquired NeXT in 1996
  11. Language & Development • Needs header files (*.h) and implementation files (*.m) • Can mix C and Objective C • Cocoa enforces MVC framework • Can also write OpenGL applications
  12. Syntax UIView *view = [[UIView alloc] init]; [view setBackgroundColor:[UIColor whiteColor]];
  13. Syntax UIView *view = [[UIView alloc] init]; [view setBackgroundColor:[UIColor whiteColor]]; PHP $view = new UIView(); $view->backgroundColor(UIColor::whiteColor);
  14. Syntax UIView *view = [[UIView alloc] init]; [view setBackgroundColor:[UIColor whiteColor]]; PHP $view = new UIView(); $view->backgroundColor(UIColor::whiteColor); Actionscript var view:UIView = new UIView(); view.backgroundColor(UIColor.whiteColor);
  15. Example 1 #import <UIKit/UIKit.h> 2 3 @interface Foo : NSObject { 4 NSString *myString; 5 } 6 @property NSString *myString; 7 - (NSNumber *) getANSNumber; 8 + (void) callStaticMethod; 9 @end 10 11 @implementation Foo 12 @synthesize myString; 13 - (id)init { 14 self = [super init]; 15 [self setMyString: @”ASDF”]; 16 return self; 17 } 18 @end
  16. Tools
  17. Tools XCode
  18. Tools XCode Interface Builder
  19. Tools XCode Interface Builder Tools to develop iPhone/Mac applications is free to anyone who runs a machine with OS X
  20. UINavigation Elements
  21. Demo
  22. Interface Builder Mode Attribute • Define how the object will be aligned inside the view. Tag • Language-independent way of identifying objects on your interface. • Multiple button using same method can be identified via tag Opaque • Tells iPhone OS that nothing below your view should be drawn and allows iPhones’s drawing method to do some optimizations that speed up drawing Clip Subviews •If your view has subviews and this option is checked. Then only the portion of your subview that is within the bound of your view is drawn. •This option is turned off by default for performance reason. Clear Context before Drawing •iPhone will draw the entire area covered by the control in transparent black before it actually draws the control.
  23. Demo
  24. Memory Management iPhone version of Objective-C uses Retain/Release count method to manage memory. Retain count is affected by: • alloc – NSString *label = [[NSString alloc] initWithString:@\"Label\"]; • copy – NSString *label2 = [label copy]; • new - Point *point = [Point new]; • retain – [label2 retain]; Balance retain count with release • release – [label2 release]; Autorelease Object •returned from factory method •NSString *label = [NSString stringWithFormat:@\"label %d\", 2]; • get added to autorelease pool that is released at the end of the run loop
  25. Memory Usage iPhone app has access to limited memory • Memory warning via didReceiveMemoryWarning method • Use Instruments to find leaks or performance enhancement. • Use lazy loading • Watch autorelease footprint • If needed create autorelease pool • Watch custom setter method • Reuse memory • Update existing object rather then creating new ones • UITableView uses dequeueReusableCellWithIdentifier: method •Returns a reusable table-view cell object located by its identifier
  26. Demo
  27. Developer Program
  28. Developer Program • $99 for individual
  29. Developer Program • $99 for individual • $99 for company
  30. Developer Program • $99 for individual • $99 for company • $299 for enterprise
  31. Developer Program • $99 for individual • $99 for company • $299 for enterprise • Meant for developers!
  32. Beta Testing & Distribution
  33. Beta Testing & Distribution • Provisioning profiles
  34. Beta Testing & Distribution • Provisioning profiles • Can install development builds through XCode
  35. Beta Testing & Distribution • Provisioning profiles • Can install development builds through XCode • Ad Hoc distribution for external beta testing
  36. Beta Testing & Distribution • Provisioning profiles • Can install development builds through XCode • Ad Hoc distribution for external beta testing • App Store - get in EARLY!
  37. Approval Process • Don’t add obscenities, pornography, etc • Follow Apple Human Interface Guidelines • Don’t collect data without user’s consent • Don’t write malicious software • Don’t write an app that Apple is already writing
  38. Approval Process
  39. iPhone 3.0
  40. iPhone 3.0 • All Apps being reviewed in iPhone 3.0
  41. iPhone 3.0 • All Apps being reviewed in iPhone 3.0 • Push Notifications
  42. iPhone 3.0 • All Apps being reviewed in iPhone 3.0 • Push Notifications • Internal Maps
  43. iPhone 3.0 • All Apps being reviewed in iPhone 3.0 • Push Notifications • Internal Maps • Internal Mail
  44. iPhone 3.0 • All Apps being reviewed in iPhone 3.0 • Push Notifications • Internal Maps • Internal Mail • Streaming Video
  45. Resources • Stanford iPhone Development Class (iTunes) • Programming in Objective-C 2.0 • Beginning iPhone Development • The iPhone Developer’s Cookbook • http://www.docstoc.com/docs/3731208/11-Performance
  46. Questions?
SlideShare Zeitgeist 2009

+ Nerdery Interactive Labs Nerdery Interactive Labs Nominate

custom

1530 views, 2 favs, 5 embeds more stats

This tech talk was given by Jon Rexeisen and Minh V more

More info about this document

© All Rights Reserved

Go to text version

  • Total Views 1530
    • 890 on SlideShare
    • 640 from embeds
  • Comments 1
  • Favorites 2
  • Downloads 36
Most viewed embeds
  • 312 views on http://www.iphoneclub.nl
  • 180 views on http://www.iphone-ticker.de
  • 131 views on http://blog.nerdery.com
  • 16 views on http://www.funkyspacemonkey.com
  • 1 views on http://www.taptoplay.de

more

All embeds
  • 312 views on http://www.iphoneclub.nl
  • 180 views on http://www.iphone-ticker.de
  • 131 views on http://blog.nerdery.com
  • 16 views on http://www.funkyspacemonkey.com
  • 1 views on http://www.taptoplay.de

less

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate. If needed, use the feedback form to let us know more details.

Cancel
File a copyright complaint
Having problems? Go to our helpdesk?

Categories