iOS Ecosystem
                       Matteo Battaglio


                         Pragma Night @ Talent Garden
                                      1
giovedì 28 marzo 13                                     1
Why iOS?


                         2       Pragma Night
giovedì 28 marzo 13                         2
Reason #1: Numbers
                      The size of the mobile market is huge,
                            and growing exponentially




                                        3                      Pragma Night
giovedì 28 marzo 13                                                       3
Reason #1: Numbers
                      Apple keeps holding a significant share
                      of the market, with a positive outlook




                                        4                      Pragma Night
giovedì 28 marzo 13                                                       4
Reason #2: Consistency

          • The iOS platform is highly consistent
           • Just 3 different device families (iPhone, iPad,
                      iPod)
                • they target the high-end market
                • the minimum set of features and APIs available
                      to all is well known


                                             5               Pragma Night
giovedì 28 marzo 13                                                     5
Reason #2: Consistency
                      More than 80% of devices already run iOS 6




                                          6                    Pragma Night
giovedì 28 marzo 13                                                       6
Reason #3: Environment
    Apple’s mission:
    create an environment around
    the user, not just sell products

   • 500+ milion iTunes accounts,
           with credit card
   • the iOS customer is much
           more willing to pay than
           other platforms’ customer


                                   7           Pragma Night
giovedì 28 marzo 13                                       7
Reason #3: Environment

          • Apple’s highly-controlled environment limits
                  unwanted phenomenons
                • piracy
                • fraudulent apps
                • crappy apps
          • Developers are less threatened than other
                  platforms’ developers

                                          8                Pragma Night
giovedì 28 marzo 13                                                   8
Reason #4: Resources


          • iOS frameworks and APIs are of first-class quality
          • The documentation is structured and exhaustive
          • Lots of books, articles, videos and tutorials
          • High-quality developer community

                                   9                     Pragma Night
giovedì 28 marzo 13                                                 9
Reason #4: Resources

          • Development tools by Apple
           • Xcode is a full featured IDE
           • Interface Builder is great for designing user
                      interfaces
                • Debugger and profiler make it easy to find
                      anomalies
                • iOS Simulator is super fast
                                       10                    Pragma Night
giovedì 28 marzo 13                                                     10
Reason #5: Fun!

          • iOS devices are equipped with all sorts of sensors
          • their computational power is enough even for the
                  more advanced tasks
          • always connected to the Internet
                      There is no limit to the imagination!



                                          11                  Pragma Night
giovedì 28 marzo 13                                                      11
Reason #5: Fun!
                      Most popular app categories

         1. Games ~ 140000 active apps @ $0.89 avg.
         2. Education ~ 90000 active apps
         3. Entertainment ~ 75000 active apps
                                              @ $1.56 avg.
         4. Lifestyle ~ 70000 active apps
         5. Books ~ 55000 active apps



                                  12                 Pragma Night
giovedì 28 marzo 13                                             12
Drawbacks


          • Not-so-cheap hardware
          • iOS-dedicated events almost absent
          • Dependance upon a single company and its
                  decisions (non disclosure agreements, Xcode and
                  SDK update policies, etc)



                                       13                    Pragma Night
giovedì 28 marzo 13                                                     13
Hidden complexity

          • iPhone
          • iPad
          • iPod
                        Just 3 different devices?



                                   14               Pragma Night
giovedì 28 marzo 13                                            14
Devices

                  iPhone 3GS    iPod 4th   iPad 2


                  iPhone 4      iPod 5th   iPad 3


                  iPhone 4s                iPad 4


                  iPhone 5                 iPad Mini

                                  15           Pragma Night
giovedì 28 marzo 13                                       15
Display



                                   iPhone 4 / 4S     iPhone 5
                      iPhone 3GS
                                    iPod 4th gen   iPod 5th gen

                      320x480 px   640x480 px      640x1136 px


                       116 ppi       326 ppi         332 ppi


                                        16                        Pragma Night
giovedì 28 marzo 13                                                          16
Display



                       iPad 1 / 2     iPad 3 / 4    iPad mini


                      1024x768 px   2048x1536 px   1024x768 px


                        132 dpi        264 dpi       162 dpi


                                          17                     Pragma Night
giovedì 28 marzo 13                                                         17
Processor / RAM



                                        ARMv7                          ARMv7s

       1 GB                                               iPad 3   iPhone 5    iPad 4

                                              iPhone 4S
    512 MB                         iPhone 4     iPad 2
                                               iPod 5th
                      iPhone 3Gs    iPad 1
    256 MB              iPod 3rd   iPod 4th


                                                 18                           Pragma Night
giovedì 28 marzo 13                                                                      18
Device Specs

          • GSM Arena
                  http://www.gsmarena.com/apple-phones-48.php


          • The iPhoneWiki
                  http://theiphonewiki.com/wiki/


          • iPhone Dev Wiki
            http://iphonedevwiki.net/index.php/Main_Page


                                             19                 Pragma Night
giovedì 28 marzo 13                                                        19
Requirements


                           20        Pragma Night
giovedì 28 marzo 13                             20
Phisical requirements

          • A Mac (iMac, Mac mini, MacBook family)
           • OS X (10.7+)
           • Xcode (4.0+)
          • An iOS device (not mandatory, but recommended)
           • The iOS Simulator can’t be used to simulate
                      some features (e.g. push notifications, in-app
                      purchases)

                                           21                     Pragma Night
giovedì 28 marzo 13                                                          21
Skill requirements

          • Object Oriented Programming
          • C language
          • Objective-C language & iOS SDK
          • Apple guidelines
          • Provisioning procedures

                                22           Pragma Night
giovedì 28 marzo 13                                     22
Membership requirements



          • Apple ID (free)
          • Apple Developer Program (ADP) subscription



                                 23                  Pragma Night
giovedì 28 marzo 13                                             23
Apple Developer
                         Program

                             24         Pragma Night
giovedì 28 marzo 13                                24
Apple Developer Program
                                   Developer Programs

                            Name             Price           Deployment

                      iOS Developer
                                           $99/year     App Store / 100 devices
                      Program


                      iOS Developer
                                           $299/year   NO App Store / ∞ devices
                      Enterprise Program


                      iOS Developer
                                             free      NO App Store / 200 people
                      University Program


                                               25                         Pragma Night
giovedì 28 marzo 13                                                                  25
ADP Sections
          • Member Center
                •     manage users
                •     ADP subscription and renewal

          • iOS Provisioning Portal
                •     development and distribution certificates
                •     adding and removing devices

          • iTunes Connect
                •     app submissions
                •     tracking sales and trends
                •     handling payments
                                                  26             Pragma Night
giovedì 28 marzo 13                                                         26
Concepts

          • Certificate
                  univocally identifies an actor
          • Device
                  Devices must be enabled for testing
          • App ID
                  Unique identifier for the app
          • Provisioning profile
                  Asset which encloses the three concepts above

                                         27                  Pragma Night
giovedì 28 marzo 13                                                     27
Certificates


          • Development Certificate
                  Each person in the team has his own


          • Distribution Certificate
                  There’s one for the whole company (or single
                  developer)



                                       28                    Pragma Night
giovedì 28 marzo 13                                                     28
Devices
          • Purpose
                  devices are used during development and testing
          • Name + UDID
                  Unique Device IDentifier, 40 char-long string
                  e.g. 67a43b0925c7a8050ad788591ace81d1bda81bed
          • Limits
                1. The ADP allows for a maximum of 100 devices
                2. A device can’t be removed from the list until the next
                   renewal of the subscription

                                           29                        Pragma Night
giovedì 28 marzo 13                                                             29
App IDs

          • Bundle Identifier
                  unique identifier for the app
          • Reverse domain name
                  e.g. com.mycompany.BestAppEver
          • Wildcard character
                  e.g. com.mycompany.*



                                         30        Pragma Night
giovedì 28 marzo 13                                           30
Provisioning Profile
          •       What is it?
                  it’s a resource (a file) which bundles the App ID, the
                  device list and the certificates of the developers of
                  the team
          •       What does it provide?
                  it is bundled with the app and is used to authorize the
                  execution of the app on the devices and its
                  deployment and distribution
          •       How long does it last?
                  It is valid for one year, after which it must be renewed

                                           31                       Pragma Night
giovedì 28 marzo 13                                                            31
Provisioning Profile
          • Development Provisioning Profile
                ‣ App ID
                ‣ (Development) certificate list
                ‣ Device list


          • Distribution Provisioning Profile
                ‣     Distribution method (App Store or AdHoc)
                ‣     App ID
                ‣     (Distribution) certificate
                ‣     Device list (only in case of AdHoc deployment)

                                             32                        Pragma Night
giovedì 28 marzo 13                                                               32
Step by step
                  ADP $$       Certificates
                                             MM
                                              Development         Distribution
                                                                                 O
                                             MCertificates         Certificate




     MM               Team    Devices
                                             MM   Customers         Devices
                                                                                 O
     M                                       MM
                 New APP      App ID              Provisioning             M O
                                                                           M

                      Xcode    Install             Build & sign


giovedì 28 marzo 13                                                              33
SDK


                       34   Pragma Night
giovedì 28 marzo 13                    34
iOS
          • Mobile operating system
                  ARM architecture, multitasking, Cocoa Touch,
                  multi-touch GUI
          • Kernel XNU (like MAC OS X)
                  Originally developed by NeXT for the NeXTSTEP
                  OS, it is a hybrid kernel combining Mach and BSD
                  components, and an object-oriented API for
                  drivers
          • Initially known as iPhone OS
                                        35                       Pragma Night
giovedì 28 marzo 13                                                         35
Cocoa Touch frameworks
                      UIKit




                                36         Pragma Night
giovedì 28 marzo 13                                   36
iOS SDK


          • Libraries and development tools
          • First release in March 2008
          • Side by side with Xcode e Mac OS


                                 37            Pragma Night
giovedì 28 marzo 13                                       37
Tools

          • Xcode
                  The natural environment for app development
          • iOS Simulator
                  The handy way of running and testing apps
          • Instruments
                  The perfect tool for code analysis and profiling



                                        38                     Pragma Night
giovedì 28 marzo 13                                                       38
Xcode

          • Integrated Development Environment
          • Objective-C / Objective-C++ / C++ / C
          • LLVM and GCC compilers and debuggers
          • Interface Builder
          • Source Control (Subversion / Git)
          • Apple’s developer documentation
                                39                  Pragma Night
giovedì 28 marzo 13                                            39
Simulator
          • iPhone / iPhone Retina (3.5” / 4”) / iPad / iPad
                  Retina
          • Gestures, Orientation change, Memory Warnings
          • GPS (iOS 5+ Simulator)
          • Apps: Safari, Photos, Contacts, Settings, Game
                  Center, News Stand
          • Fast! (It’s x86 and runs x86 apps, no ARM
                  emulation)

                                       40                  Pragma Night
giovedì 28 marzo 13                                                   40
Instruments


          • Application performance analyzer and visualizer
          • Integrated with Xcode
          • Tracks user events, CPU activity, memory
                  allocations, releases and leaks, file I/O, network
                  activity, graphics and OpenGL



                                          41                     Pragma Night
giovedì 28 marzo 13                                                         41
Resources


                          42      Pragma Night
giovedì 28 marzo 13                          42
Resources


          • Events
          • Videos
          • Books


                          43      Pragma Night
giovedì 28 marzo 13                          43
Events

                       • Apple WWDC
                       • Apple Tech Talk World Tour
                       • NSConference
                       • Pragma mark :)
                         http://lanyrd.com/topics/ios/


                         44                     Pragma Night
giovedì 28 marzo 13                                        44
Videos
          • NSScreencast.com
          • WWDC 2010 / 2011 / 2012 (ADP members only)
          • iOS Development Videos (ADP members only)
          • Lynda.com
          • iDeveloper.tv
          • Udemy.com
          • University courses on iOS (published on iTunes U)
                                  45                   Pragma Night
giovedì 28 marzo 13                                               45
Books




                      • Programming in Objective-C
                      • Cocoa Design Patterns
                      • Pro Multithreading and Memory Management
                        for iOS and Mac OS X
                                         46                  Pragma Night
giovedì 28 marzo 13                                                     46
Thank You!

                      matteo.battaglio@pragmamark.org
                                                        Pragma Night
giovedì 28 marzo 13                                                47

iOS Ecosystem

  • 1.
    iOS Ecosystem Matteo Battaglio Pragma Night @ Talent Garden 1 giovedì 28 marzo 13 1
  • 2.
    Why iOS? 2 Pragma Night giovedì 28 marzo 13 2
  • 3.
    Reason #1: Numbers The size of the mobile market is huge, and growing exponentially 3 Pragma Night giovedì 28 marzo 13 3
  • 4.
    Reason #1: Numbers Apple keeps holding a significant share of the market, with a positive outlook 4 Pragma Night giovedì 28 marzo 13 4
  • 5.
    Reason #2: Consistency • The iOS platform is highly consistent • Just 3 different device families (iPhone, iPad, iPod) • they target the high-end market • the minimum set of features and APIs available to all is well known 5 Pragma Night giovedì 28 marzo 13 5
  • 6.
    Reason #2: Consistency More than 80% of devices already run iOS 6 6 Pragma Night giovedì 28 marzo 13 6
  • 7.
    Reason #3: Environment Apple’s mission: create an environment around the user, not just sell products • 500+ milion iTunes accounts, with credit card • the iOS customer is much more willing to pay than other platforms’ customer 7 Pragma Night giovedì 28 marzo 13 7
  • 8.
    Reason #3: Environment • Apple’s highly-controlled environment limits unwanted phenomenons • piracy • fraudulent apps • crappy apps • Developers are less threatened than other platforms’ developers 8 Pragma Night giovedì 28 marzo 13 8
  • 9.
    Reason #4: Resources • iOS frameworks and APIs are of first-class quality • The documentation is structured and exhaustive • Lots of books, articles, videos and tutorials • High-quality developer community 9 Pragma Night giovedì 28 marzo 13 9
  • 10.
    Reason #4: Resources • Development tools by Apple • Xcode is a full featured IDE • Interface Builder is great for designing user interfaces • Debugger and profiler make it easy to find anomalies • iOS Simulator is super fast 10 Pragma Night giovedì 28 marzo 13 10
  • 11.
    Reason #5: Fun! • iOS devices are equipped with all sorts of sensors • their computational power is enough even for the more advanced tasks • always connected to the Internet There is no limit to the imagination! 11 Pragma Night giovedì 28 marzo 13 11
  • 12.
    Reason #5: Fun! Most popular app categories 1. Games ~ 140000 active apps @ $0.89 avg. 2. Education ~ 90000 active apps 3. Entertainment ~ 75000 active apps @ $1.56 avg. 4. Lifestyle ~ 70000 active apps 5. Books ~ 55000 active apps 12 Pragma Night giovedì 28 marzo 13 12
  • 13.
    Drawbacks • Not-so-cheap hardware • iOS-dedicated events almost absent • Dependance upon a single company and its decisions (non disclosure agreements, Xcode and SDK update policies, etc) 13 Pragma Night giovedì 28 marzo 13 13
  • 14.
    Hidden complexity • iPhone • iPad • iPod Just 3 different devices? 14 Pragma Night giovedì 28 marzo 13 14
  • 15.
    Devices iPhone 3GS iPod 4th iPad 2 iPhone 4 iPod 5th iPad 3 iPhone 4s iPad 4 iPhone 5 iPad Mini 15 Pragma Night giovedì 28 marzo 13 15
  • 16.
    Display iPhone 4 / 4S iPhone 5 iPhone 3GS iPod 4th gen iPod 5th gen 320x480 px 640x480 px 640x1136 px 116 ppi 326 ppi 332 ppi 16 Pragma Night giovedì 28 marzo 13 16
  • 17.
    Display iPad 1 / 2 iPad 3 / 4 iPad mini 1024x768 px 2048x1536 px 1024x768 px 132 dpi 264 dpi 162 dpi 17 Pragma Night giovedì 28 marzo 13 17
  • 18.
    Processor / RAM ARMv7 ARMv7s 1 GB iPad 3 iPhone 5 iPad 4 iPhone 4S 512 MB iPhone 4 iPad 2 iPod 5th iPhone 3Gs iPad 1 256 MB iPod 3rd iPod 4th 18 Pragma Night giovedì 28 marzo 13 18
  • 19.
    Device Specs • GSM Arena http://www.gsmarena.com/apple-phones-48.php • The iPhoneWiki http://theiphonewiki.com/wiki/ • iPhone Dev Wiki http://iphonedevwiki.net/index.php/Main_Page 19 Pragma Night giovedì 28 marzo 13 19
  • 20.
    Requirements 20 Pragma Night giovedì 28 marzo 13 20
  • 21.
    Phisical requirements • A Mac (iMac, Mac mini, MacBook family) • OS X (10.7+) • Xcode (4.0+) • An iOS device (not mandatory, but recommended) • The iOS Simulator can’t be used to simulate some features (e.g. push notifications, in-app purchases) 21 Pragma Night giovedì 28 marzo 13 21
  • 22.
    Skill requirements • Object Oriented Programming • C language • Objective-C language & iOS SDK • Apple guidelines • Provisioning procedures 22 Pragma Night giovedì 28 marzo 13 22
  • 23.
    Membership requirements • Apple ID (free) • Apple Developer Program (ADP) subscription 23 Pragma Night giovedì 28 marzo 13 23
  • 24.
    Apple Developer Program 24 Pragma Night giovedì 28 marzo 13 24
  • 25.
    Apple Developer Program Developer Programs Name Price Deployment iOS Developer $99/year App Store / 100 devices Program iOS Developer $299/year NO App Store / ∞ devices Enterprise Program iOS Developer free NO App Store / 200 people University Program 25 Pragma Night giovedì 28 marzo 13 25
  • 26.
    ADP Sections • Member Center • manage users • ADP subscription and renewal • iOS Provisioning Portal • development and distribution certificates • adding and removing devices • iTunes Connect • app submissions • tracking sales and trends • handling payments 26 Pragma Night giovedì 28 marzo 13 26
  • 27.
    Concepts • Certificate univocally identifies an actor • Device Devices must be enabled for testing • App ID Unique identifier for the app • Provisioning profile Asset which encloses the three concepts above 27 Pragma Night giovedì 28 marzo 13 27
  • 28.
    Certificates • Development Certificate Each person in the team has his own • Distribution Certificate There’s one for the whole company (or single developer) 28 Pragma Night giovedì 28 marzo 13 28
  • 29.
    Devices • Purpose devices are used during development and testing • Name + UDID Unique Device IDentifier, 40 char-long string e.g. 67a43b0925c7a8050ad788591ace81d1bda81bed • Limits 1. The ADP allows for a maximum of 100 devices 2. A device can’t be removed from the list until the next renewal of the subscription 29 Pragma Night giovedì 28 marzo 13 29
  • 30.
    App IDs • Bundle Identifier unique identifier for the app • Reverse domain name e.g. com.mycompany.BestAppEver • Wildcard character e.g. com.mycompany.* 30 Pragma Night giovedì 28 marzo 13 30
  • 31.
    Provisioning Profile • What is it? it’s a resource (a file) which bundles the App ID, the device list and the certificates of the developers of the team • What does it provide? it is bundled with the app and is used to authorize the execution of the app on the devices and its deployment and distribution • How long does it last? It is valid for one year, after which it must be renewed 31 Pragma Night giovedì 28 marzo 13 31
  • 32.
    Provisioning Profile • Development Provisioning Profile ‣ App ID ‣ (Development) certificate list ‣ Device list • Distribution Provisioning Profile ‣ Distribution method (App Store or AdHoc) ‣ App ID ‣ (Distribution) certificate ‣ Device list (only in case of AdHoc deployment) 32 Pragma Night giovedì 28 marzo 13 32
  • 33.
    Step by step ADP $$ Certificates MM Development Distribution O MCertificates Certificate MM Team Devices MM Customers Devices O M MM New APP App ID Provisioning M O M Xcode Install Build & sign giovedì 28 marzo 13 33
  • 34.
    SDK 34 Pragma Night giovedì 28 marzo 13 34
  • 35.
    iOS • Mobile operating system ARM architecture, multitasking, Cocoa Touch, multi-touch GUI • Kernel XNU (like MAC OS X) Originally developed by NeXT for the NeXTSTEP OS, it is a hybrid kernel combining Mach and BSD components, and an object-oriented API for drivers • Initially known as iPhone OS 35 Pragma Night giovedì 28 marzo 13 35
  • 36.
    Cocoa Touch frameworks UIKit 36 Pragma Night giovedì 28 marzo 13 36
  • 37.
    iOS SDK • Libraries and development tools • First release in March 2008 • Side by side with Xcode e Mac OS 37 Pragma Night giovedì 28 marzo 13 37
  • 38.
    Tools • Xcode The natural environment for app development • iOS Simulator The handy way of running and testing apps • Instruments The perfect tool for code analysis and profiling 38 Pragma Night giovedì 28 marzo 13 38
  • 39.
    Xcode • Integrated Development Environment • Objective-C / Objective-C++ / C++ / C • LLVM and GCC compilers and debuggers • Interface Builder • Source Control (Subversion / Git) • Apple’s developer documentation 39 Pragma Night giovedì 28 marzo 13 39
  • 40.
    Simulator • iPhone / iPhone Retina (3.5” / 4”) / iPad / iPad Retina • Gestures, Orientation change, Memory Warnings • GPS (iOS 5+ Simulator) • Apps: Safari, Photos, Contacts, Settings, Game Center, News Stand • Fast! (It’s x86 and runs x86 apps, no ARM emulation) 40 Pragma Night giovedì 28 marzo 13 40
  • 41.
    Instruments • Application performance analyzer and visualizer • Integrated with Xcode • Tracks user events, CPU activity, memory allocations, releases and leaks, file I/O, network activity, graphics and OpenGL 41 Pragma Night giovedì 28 marzo 13 41
  • 42.
    Resources 42 Pragma Night giovedì 28 marzo 13 42
  • 43.
    Resources • Events • Videos • Books 43 Pragma Night giovedì 28 marzo 13 43
  • 44.
    Events • Apple WWDC • Apple Tech Talk World Tour • NSConference • Pragma mark :) http://lanyrd.com/topics/ios/ 44 Pragma Night giovedì 28 marzo 13 44
  • 45.
    Videos • NSScreencast.com • WWDC 2010 / 2011 / 2012 (ADP members only) • iOS Development Videos (ADP members only) • Lynda.com • iDeveloper.tv • Udemy.com • University courses on iOS (published on iTunes U) 45 Pragma Night giovedì 28 marzo 13 45
  • 46.
    Books • Programming in Objective-C • Cocoa Design Patterns • Pro Multithreading and Memory Management for iOS and Mac OS X 46 Pragma Night giovedì 28 marzo 13 46
  • 47.
    Thank You! matteo.battaglio@pragmamark.org Pragma Night giovedì 28 marzo 13 47