Upgrade to Pro — share decks privately, control downloads, hide ads and more …

10 Years of iPhone - A Developer's Perspective

10 Years of iPhone - A Developer's Perspective

Let us take a small trip back in time. It is 2006. George W. Bush is president of the United States, and there are wars raging in quite a few countries in the middle east. There were rumors of an upcoming financial crisis. People were getting excited about the possibility of a rather unknown black senator called Barack Obama becoming president. And Apple was rumored to be ready to unveil a new cell phone.

This talk will take us back to 2006 to understand the world of software development back then, and to realize how much it has changed, for the best or, in some cases unfortunately, for the worst.

The speech of this presentation is available:
https://akos.ma/blog/12-years-of-iphone-a-developers-perspective/

Adrian Kosmaczewski

May 08, 2017
Tweet

More Decks by Adrian Kosmaczewski

Other Decks in Technology

Transcript

  1. “When the Mac first came out, Newsweek asked me what

    I (thought) of it. I said: Well, it’s the first personal computer worth criticizing."
  2. "So at the end of the presentation, Steve came up

    to me and said: Is the iPhone worth criticizing? And I said: Make the screen five inches by eight inches, and you’ll rule the world.”
  3. iPhone • 128 MB RAM • 4 to 16 GB

    • 32-bit CPU • 412 MHz • 2.0 MP rear camera
  4. … the iPhone didn't support 3G, it didn't support multitasking,

    it didn't support 3rd party apps, you couldn't copy or paste text, you couldn't attach arbitrary files to emails, it didn't support MMS, it didn't support Exchange push email, it didn't have a customizable home screen…
  5. "…in the first 95 days, 250,000 people downloaded the iPhone

    SDK. 25,000 developers applied, and 4,000 were admitted in the program."
  6. iPhone OS 2.0 1/2 • Interface Builder was a separate

    application from Xcode 3 • No Instruments • No ARC: retain, release and autorelease were our friends! • No IBOutletCollection • No Storyboards • No Auto Layout
  7. iPhone OS 2.0 2/2 • No Gesture recognizers • No

    Map views • No Unit testing (OCUnit / SenTest did not work with iPhone apps back then) • No Nitro JS engine • No Pull-to-refresh
  8. 2007 2008 2009 2010 2011 AAPL 12.25 19.34 Revenue 24

    32 iPods 52 54 Macs 7 9 iPhone 1.1 11.6
  9. iPhone 3GS • 256 MB RAM • 600 MHz CPU

    • 3 MP rear camera with video • Up to 32 MB storage
  10. 2007 2008 2009 2010 2011 AAPL 12.25 19.34 12.88 Revenue

    24 32 36.5 iPods 52 54 54 Macs 7 9 10.3 iPhone 1.1 11.6 20.7
  11. New, New, New • Xcode 4 • ARC • Objective-C

    Blocks • Grand Central Dispatch • Core Text • Multitasking • Retina Displays (@2x) • iAd
  12. New Frameworks: • CoreMotion.framework • AssetsLibrary.framework • CoreTelephony.framework • CoreText.framework

    • EventKit.framework • EventKitUI.framework • MobileCoreServices.framework • QuickLook.framework • iAd.framework
  13. iPhone 4 • A4 SoC • 32-bit CPU • 1

    GHz • 512 MB RAM • Up to 32 MB storage • 0.3 MP front camera • 5 MP back camera
  14. 2007 2008 2009 2010 2011 AAPL 12.25 19.34 12.88 27.44

    Revenue 24 32 36.5 65.2 iPods 52 54 54 50 Macs 7 9 10.3 13.6 iPhone 1.1 11.6 20.7 40 iPad 7.5
  15. iOS 5 1/2 • Siri (only on the iPhone 4S)

    • The new Notification Center • iMessages • Newsstand • Reminders • Twitter integration
  16. iOS 5 2/2 • Music application (formerly the "iPod" application)

    • Users can use the volume button to take pictures • Rich text formatting in mail messages • New basic photo editing features in Photos • Safari Reader mode • iCloud (replacing Mobile Me)
  17. iPhone 4S • No tethering • Apple A5 SoC •

    32-bit CPU 1 GHz • 0.3 MP front camera • 8 MP rear camera • Up to 64 GB storage
  18. 2007 2008 2009 2010 2011 AAPL 12.25 19.34 12.88 27.44

    48.47 Revenue 24 32 36.5 65.2 108.3 iPods 52 54 54 50 42 Macs 7 9 10.3 13.6 16.7 iPhone 1.1 11.6 20.7 40 72 iPad 7.5 32
  19. iPhone 5 • New screen size • Dual core 32-bit

    CPU • 1.3 GHz • 1 GB RAM • 1.2 MP front camera • 8 MP rear camera • Up to 64 GB storage • LTE (aka "4G")
  20. iOS 7 • New "flat" UI idiom • New notification

    center • New apps • New, new, new…
  21. New, New, New 1/2 • The new NSURLSession family of

    classes • Support for iBeacons • The new [NSData base64EncodedStringWithOptions:] method, • The new @import syntax for importing modules or frameworks • The CMStepCounter class for counting steps • The MKGeodesicPolyline class
  22. New, New, New 2/2 • The default hiding of MAC

    addresses by the operating system for privacy purposes • The support for reading QR codes through AVMetadataObjectTypeQRCode • Smile detection through CIFaceFeature • Text-to-speech through AVSpeechUtterance • The new Text Kit built upon Core Text • Dynamic Type
  23. iPhone 5S • 64-bit dual core CPU • 1 GB

    RAM • Apple M7 Motion Sensor • Up to 64 GB storage • Touch ID • Gold!
  24. iPhone 5C • Same as the iPhone 5 • Cheaper

    • Up to 32 GB storage • 32-bit CPU at 1 GHz
  25. 2012 2013 2014 2015 2016 AAPL 65.21 65.07 Revenue 156.5

    171 iPods 35 26 Macs 18 16.5 iPhone 125 150 iPad 58 71
  26. static OSStatus SSLVerifySignedServerKeyExchange(SSLContext *ctx, bool isRsa, SSLBuffer signedParams, uint8_t *signature,

    UInt16 signatureLen) { OSStatus err; ... if ((err = SSLHashSHA1.update(&hashCtx, &serverRandom)) != 0) goto fail; if ((err = SSLHashSHA1.update(&hashCtx, &signedParams)) != 0) goto fail; goto fail; if ((err = SSLHashSHA1.final(&hashCtx, &hashOut)) != 0) goto fail; ... fail: SSLFreeBuffer(&signedHashes); SSLFreeBuffer(&hashCtx); return err; } Source: Wikipedia
  27. New Frameworks 1/3 • AVKit.framework • Accelerate.framework • AudioToolbox.framework •

    CloudKit.framework • CoreAudioKit.framework • CoreAuthentication.framework
  28. New Frameworks 2/3 • HealthKit.framework • HomeKit.framework • LocalAuthentication.framework •

    Metal.framework • NetworkExtension.framework • NotificationCenter.framework
  29. iPhone 6 iPhone 6 Plus • Bigger screen sizes •

    Apple A8 SoC • Dual core 64-bit CPU • 1.4 GHz • Up to 128 GB of storage • 1 GB of RAM • 8 MP rear camera capable of 1080 HD video
  30. 2012 2013 2014 2015 2016 AAPL 65.21 65.07 71.51 Revenue

    156.5 171 183 iPods 35 26 14 Macs 18 16.5 19 iPhone 125 150 169 iPad 58 71 67
  31. iPhone 6S iPhone 6S Plus • Apple A9 SoC •

    Dual-core 64-bit CPUs • 1.85 GHz • 2 GB RAM • Up to 128 GB storage • 12 MP rear camera ➡ 4K video • 3D Touch
  32. iPad Pro • 12" screen • Apple A9X SoC •

    Dual-core 64-bit CPU • 2.26 GHz • Up to 128 GB storage • 4 GB RAM • 8 MP rear camera
  33. 2012 2013 2014 2015 2016 AAPL 65.21 65.07 71.51 117.16

    Revenue 156.5 171 183 234 Macs 18 16.5 19 20.5 iPhone 125 150 169 231 iPad 58 71 67 54
  34. New Features 1/2 • Customize notifications • iMessage apps •

    Siri framework • Custom content in Maps • CallKit framework for VoIP apps • SFSpeechRecognizer
  35. New Features 2/2 • True Tone display • Core Spotlight

    and CSSearchQuery class • Copy-pasting between devices • New app extensions: Call Directory, Intents, Intents UI, Messages, Notification Content, Notification Service, and Sticker Pack. • New Photo capture API: AVCapturePhotoOutput
  36. iPhone 7 iPhone 7 Plus • Apple A10 Fusion SoC

    • Quad-core 64-bit CPUs • 2.34 GHz • 2 or 3 GB of RAM • Up to 256 GB of storage • 12 MP rear camera capable of 4K video • 7 MP front camera
  37. 2012 2013 2014 2015 2016 AAPL 65.21 65.07 71.51 117.16

    97.34 Revenue 156.5 171 183 234 215 Macs 18 16.5 19 20.5 18.5 iPhone 125 150 169 231 212 iPad 58 71 67 54 45.5
  38. Cumulated iPhone sales: 1.03 B Cumulated iPad sales: 337.5 M

    2.1 M Apps in the App Store (1 M for iPad)
  39. "You also need to acknowledge that you’ve marked your work

    as being essentially worthless, and that it’ll be discarded just as quickly. Your most vocal supporters will turn on you the minute you ask for more money (remember the extra levels for Monument Valley?)."