Your SlideShare is downloading. ×
iOS Development: Everything you need to know
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

iOS Development: Everything you need to know

201

Published on

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

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
201
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
0
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. iOS Development:Everything you need to knowFábio BernardoiOS Developer @ SAPO
  • 2. Who am I?• iOS Developer• SAPO• @fbbernardo on Twitter• iPhoneModem, It’s Playing, SAPO Desporto...
  • 3. Who am I?• iOS Developer• SAPO• @fbbernardo on Twitter• iPhoneModem, It’s Playing, SAPO Desporto...
  • 4. Who am I?• iOS Developer• SAPO• @fbbernardo on Twitter• iPhoneModem, It’s Playing, SAPO Desporto...
  • 5. Who am I?• iOS Developer• SAPO• @fbbernardo on Twitter• iPhoneModem, It’s Playing, SAPO Desporto...
  • 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. 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. 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. Rags to richesSome examples
  • 10. Rags to richesSome examplesTrism
  • 11. Rags to richesSome examplesTrism$250k in two months
  • 12. Rags to richesSome examplesiSteam
  • 13. Rags to richesSome examples$100k in two weeksiSteam
  • 14. Rags to richesSome examplesTap Tap Revenge
  • 15. Rags to richesSome examples1,000,000 downloads in twoweeksTap Tap Revenge
  • 16. Rags to richesSome examplesFlipboard
  • 17. Rags to richesSome examples52M users and only twoappsFlipboard
  • 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. 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. 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. 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. Objective-CIntroduction• Unusual syntax• C based• Weak and dynamic typing• ARC• Categories• Swizzling
  • 23. Objective-CThe usual rants• Syntax• Crash logs & exceptions• Header files• Memory management• No packages
  • 24. Objective-CAn example – bracketsobject.performAction();Object Method name[object performAction];[object performAction];
  • 25. Objective-CAn example – bracketsobject.performAction();Object Method name[object performAction];[object performAction];
  • 26. Objective-CAn example – argumentsobject.performAction(arg1);Object Method name[object performAction:arg1];A parameter
  • 27. Objective-CAn example – arguments & message namesobject.performAction(arg1, arg2);Object Method name[object performAction:arg1 withArg:arg2];1st parameter 2nd parameter
  • 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. - (void)viewDidLoad {[super viewDidLoad];UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect];[button setTitle:@"Title" forState:UIControlStateNormal];[button sizeToFit];[self.view addSubview:button];}Objective-CAn example
  • 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. - (void)viewDidLoad {[super viewDidLoad];UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect];[button setTitle:@"Title" forState:UIControlStateNormal];[button sizeToFit];[self.view addSubview:button];}Objective-CAn example
  • 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. - (void)viewDidLoad {[super viewDidLoad];UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect];[button setTitle:@"Title" forState:UIControlStateNormal];[button sizeToFit];[self.view addSubview:button];}Objective-CAn example
  • 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. 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. UIKitStoryboards
  • 37. Demo
  • 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. Learn moreThe best resources out there• Stanford’s iPhone Application Development• Big Nerd Ranch’s iOS Programming• WWDC Sessions
  • 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. Q&A

×