iOS Development: Everything you need to know

310
-1

Published on

This talk was given at ISELTech 2013. The objective was to convince people to embrace iOS Development.

Published in: Technology, News & Politics
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
310
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
0
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

iOS Development: Everything you need to know

  1. 1. iOS Development:Everything you need to knowFábio BernardoiOS Developer @ SAPO
  2. 2. Who am I?• iOS Developer• SAPO• @fbbernardo on Twitter• iPhoneModem, It’s Playing, SAPO Desporto...
  3. 3. Who am I?• iOS Developer• SAPO• @fbbernardo on Twitter• iPhoneModem, It’s Playing, SAPO Desporto...
  4. 4. Who am I?• iOS Developer• SAPO• @fbbernardo on Twitter• iPhoneModem, It’s Playing, SAPO Desporto...
  5. 5. Who am I?• iOS Developer• SAPO• @fbbernardo on Twitter• iPhoneModem, It’s Playing, SAPO Desporto...
  6. 6. Why am I here?Talk overview• A little bit of history• What you need to know about the  App Store• The first steps of iOS Development• Cocoa Touch• What are my expectations for The Future™• Q&A
  7. 7. The first iPhoneJune, 2007• No App Store• Do web apps!▪ Adventurous developers start using something called the “toolchain”• The jailbreak community is born• Installous and Cydia
  8. 8. The iPhone OS SDKJuly, 2008• Developers everywhere rejoice• Cocoa Touch and Objective-C• Protected by NDA until October, 2008• 70% – 30% revenue model• Introduced the Review Process• No video or audio recording, no notifications, no copy paste, no share, no core data, no maps...• Later renamed to iOS SDK
  9. 9. Rags to richesSome examples
  10. 10. Rags to richesSome examplesTrism
  11. 11. Rags to richesSome examplesTrism$250k in two months
  12. 12. Rags to richesSome examplesiSteam
  13. 13. Rags to richesSome examples$100k in two weeksiSteam
  14. 14. Rags to richesSome examplesTap Tap Revenge
  15. 15. Rags to richesSome examples1,000,000 downloads in twoweeksTap Tap Revenge
  16. 16. Rags to richesSome examplesFlipboard
  17. 17. Rags to richesSome examples52M users and only twoappsFlipboard
  18. 18. iOS App StoreDownloads and number of apps02004006008002008 2009 2010 2011 2012 2013011,25022,50033,75045,00010 1,5005,00015,00025,00045,0000.865250425550800Apps Available (Thousands) Downloads (Millions)
  19. 19. iOS App StoreInteresting data• The top category by revenue ($) is Games• “iOS App Store generated 2.6x the app revenue of Google Play in Q1 2013”• Education is the fourth largest category in revenue ($)• Flipboard has 56M users and only two apps• Instagram has 100M users and only two apps• $10,000 prize for the App Store’s 50 billionth download
  20. 20. What you will needTo become an iOS Developer• OS X• Objective-C• Cocoa Touch• An iPad/iPhone/iPod Touch for testing (unless you’re doing a fart app)• Register on Dev Center• $99 per year
  21. 21. Popular alternativesTo OS X or Objective-C• RubyMotion — $199.99 (OS X)• Xamarin.iOS – formely MonoTouch — Free to $1899 (OS X & Windows)• Titanium — Free (OS X)• Adobe AIR — $249.00 (OS X & Windows)• Unity — $400 Free (OS X & Windows)
  22. 22. Objective-CIntroduction• Unusual syntax• C based• Weak and dynamic typing• ARC• Categories• Swizzling
  23. 23. Objective-CThe usual rants• Syntax• Crash logs & exceptions• Header files• Memory management• No packages
  24. 24. Objective-CAn example – bracketsobject.performAction();Object Method name[object performAction];[object performAction];
  25. 25. Objective-CAn example – bracketsobject.performAction();Object Method name[object performAction];[object performAction];
  26. 26. Objective-CAn example – argumentsobject.performAction(arg1);Object Method name[object performAction:arg1];A parameter
  27. 27. Objective-CAn example – arguments & message namesobject.performAction(arg1, arg2);Object Method name[object performAction:arg1 withArg:arg2];1st parameter 2nd parameter
  28. 28. - (void)viewDidLoad {[super viewDidLoad];UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect];[button setTitle:@"Title" forState:UIControlStateNormal];[button sizeToFit];[self.view addSubview:button];}Objective-CAn example
  29. 29. - (void)viewDidLoad {[super viewDidLoad];UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect];[button setTitle:@"Title" forState:UIControlStateNormal];[button sizeToFit];[self.view addSubview:button];}Objective-CAn example
  30. 30. - (void)viewDidLoad {[super viewDidLoad];UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect];[button setTitle:@"Title" forState:UIControlStateNormal];[button sizeToFit];[self.view addSubview:button];}Objective-CAn example
  31. 31. - (void)viewDidLoad {[super viewDidLoad];UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect];[button setTitle:@"Title" forState:UIControlStateNormal];[button sizeToFit];[self.view addSubview:button];}Objective-CAn example
  32. 32. - (void)viewDidLoad {[super viewDidLoad];UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect];[button setTitle:@"Title" forState:UIControlStateNormal];[button sizeToFit];[self.view addSubview:button];}Objective-CAn example
  33. 33. - (void)viewDidLoad {[super viewDidLoad];UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect];[button setTitle:@"Title" forState:UIControlStateNormal];[button sizeToFit];[self.view addSubview:button];}Objective-CAn example
  34. 34. - (void)viewDidLoad {[super viewDidLoad];UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect];[button setTitle:@"Title" forState:UIControlStateNormal];[button sizeToFit];[self.view addSubview:button];}Objective-CAn example
  35. 35. Cocoa TouchWhat it is• An umbrella term for a lot of API’s• Follows MVC• Lot’s of delegates, datasources, observers, notifications...• UIKit – buttons, sliders, navigation bars, toolbars, spinning wheels, bar buttons, storyboards...• GameKit, PassKit, CoreAnimation, Accounts, etc...
  36. 36. UIKitStoryboards
  37. 37. Demo
  38. 38. iOS DevelopmentSome notes• An iPhone & iPad application is an universal binary• 99% is reusable between iPhone and iPad• Easily ported to OSX• Game Center is your friend if you’re planning to make a game
  39. 39. Learn moreThe best resources out there• Stanford’s iPhone Application Development• Big Nerd Ranch’s iOS Programming• WWDC Sessions
  40. 40. Bingo!There’s this thing called WWDC Bingo...RetinaDisplayMacbook AiriOS 7.0RedesignedPassbooksviaBluetoothLEInteractivePushNotificationsRetina iPadMiniRemoteViewControllersOne MoreThing™“DeliverOnce”Notifications“magical” Siri APIiCloud donerightApple TVSDKSiri for OSXMaps forOSXiCloudSharing?
  41. 41. Q&A

×