SlideShare una empresa de Scribd logo
1 de 85
iPhone OS
 The Next
   Killer
 Platform
Why all the excitement?
Why all the excitement?
• Compelling, stylish products built on multi-
  touch interface
  • iPod Touch
  • iPhone
  • iPad
Why all the excitement?
• Compelling, stylish products built on multi-
  touch interface
  • iPod Touch
  • iPhone
  • iPad
• Applications marketplace (AppStore)
Why all the excitement?
• Compelling, stylish products built on multi-
  touch interface
  • iPod Touch
  • iPhone
  • iPad
• Applications marketplace (AppStore)
• Developer tools and community
iPhone Strengths
iPhone Strengths
• iPhone OS as a platform
iPhone Strengths
• iPhone OS as a platform
• Complete hardware and software product
  offering
  • Apple A4 chip design
iPhone Strengths
• iPhone OS as a platform
• Complete hardware and software product
  offering
  • Apple A4 chip design
• Thriving development community
iPhone Strengths
• iPhone OS as a platform
• Complete hardware and software product
  offering
  • Apple A4 chip design
• Thriving development community
• Blossoming applications marketplace
iPhone Strengths
• iPhone OS as a platform
• Complete hardware and software product
  offering
  • Apple A4 chip design
• Thriving development community
• Blossoming applications marketplace
• Cult-like brand loyalty
iPhone Weaknesses
iPhone Weaknesses
• Exclusivity agreement with AT&T
iPhone Weaknesses
• Exclusivity agreement with AT&T
• Proprietary SDK and licensing agreements
iPhone Weaknesses
• Exclusivity agreement with AT&T
• Proprietary SDK and licensing agreements
• App Store app submission and approval
 process
iPhone Opportunities
iPhone Opportunities
• Expansion of iPhone/iPad to multiple cellular
  networks
iPhone Opportunities
• Expansion of iPhone/iPad to multiple cellular
  networks
• Captivated development community
iPhone Opportunities
• Expansion of iPhone/iPad to multiple cellular
  networks
• Captivated development community
• Captivated gaming community
iPhone Opportunities
• Expansion of iPhone/iPad to multiple cellular
  networks
• Captivated development community
• Captivated gaming community
• Extensibility of the device through External
  Accessory framework
iPhone Threats
iPhone Threats
• Android OS and Google
iPhone Threats
• Android OS and Google
• Other mobile/tablet platforms
iPhone Threats
• Android OS and Google
• Other mobile/tablet platforms
• User reluctance to move to a multi-touch
  user interface
iPhone SDK
iPhone SDK
Key Features
iPhone SDK
Key Features

 • Tools to design, build, test, and deploy
iPhone SDK
Key Features

 • Tools to design, build, test, and deploy
 • Powerful, full-featured APIs
iPhone SDK
Key Features

 • Tools to design, build, test, and deploy
 • Powerful, full-featured APIs
 • Consistent
   • Greatly aides in learning iPhone development
iPhone SDK
Key Features

 • Tools to design, build, test, and deploy
 • Powerful, full-featured APIs
 • Consistent
   • Greatly aides in learning iPhone development
 • Leverages hardware capabilities of device
iPhone SDK
Key Features

 • Tools to design, build, test, and deploy
 • Powerful, full-featured APIs
 • Consistent
   • Greatly aides in learning iPhone development
 • Leverages hardware capabilities of device
 • Written in Objective-C
   • Lower-level frameworks in standard C
Objective-C
Objective-C
The old new hotness
Objective-C
The old new hotness
 • Strict superset of ANSI C
   • Object-oriented extensions
   • Additional syntax and types
Objective-C
The old new hotness
 • Strict superset of ANSI C
   • Object-oriented extensions
   • Additional syntax and types
 • Native iPhone SDK language
Objective-C
The old new hotness
 • Strict superset of ANSI C
   • Object-oriented extensions
   • Additional syntax and types
 • Native iPhone SDK language
 • Flexible typing
Objective-C
The old new hotness
 • Strict superset of ANSI C
   • Object-oriented extensions
   • Additional syntax and types
 • Native iPhone SDK language
 • Flexible typing
 • Simple, expressive syntax
Objective-C
The old new hotness
 • Strict superset of ANSI C
   • Object-oriented extensions
   • Additional syntax and types
 • Native iPhone SDK language
 • Flexible typing
 • Simple, expressive syntax
 • Dynamic runtime
Objective-C
The old new hotness
 • Strict superset of ANSI C
   • Object-oriented extensions
   • Additional syntax and types
 • Native iPhone SDK language
 • Flexible typing
 • Simple, expressive syntax
 • Dynamic runtime
 • Reference counting for memory
  management
Objective-C Resources
iPhone SDK Frameworks
iPhone SDK Frameworks




     BSD UNIX / Kernel Services
iPhone SDK Frameworks




         Core Frameworks


     BSD UNIX / Kernel Services
iPhone SDK Frameworks



               Media


         Core Frameworks


     BSD UNIX / Kernel Services
iPhone SDK Frameworks

            Cocoa Touch


               Media


         Core Frameworks


     BSD UNIX / Kernel Services
Cocoa Touch
Foundation Framework
Cocoa Touch
Foundation Framework

 • Core framework for non-UI functionality
Cocoa Touch
Foundation Framework

 • Core framework for non-UI functionality
 • Operating System Classes
   • threading, archiving, filesystem
Cocoa Touch
Foundation Framework

 • Core framework for non-UI functionality
 • Operating System Classes
   • threading, archiving, filesystem
 • Collections
   • Common collection types: arrays, sets, maps
Cocoa Touch
Foundation Framework

 • Core framework for non-UI functionality
 • Operating System Classes
   • threading, archiving, filesystem
 • Collections
   • Common collection types: arrays, sets, maps
 • Networking support
Cocoa Touch
Foundation Framework

 • Core framework for non-UI functionality
 • Operating System Classes
   • threading, archiving, filesystem
 • Collections
   • Common collection types: arrays, sets, maps
 • Networking support
 • XML Processing
Cocoa Touch
UIKit Framework
Cocoa Touch
UIKit Framework

 • Framework for building iPhone user interfaces
Cocoa Touch
UIKit Framework

 • Framework for building iPhone user interfaces
 • User Interface Elements
   • Views, tables, buttons, images, etc.
Cocoa Touch
UIKit Framework

 • Framework for building iPhone user interfaces
 • User Interface Elements
   • Views, tables, buttons, images, etc.
 • View Controllers
Cocoa Touch
UIKit Framework

 • Framework for building iPhone user interfaces
 • User Interface Elements
   • Views, tables, buttons, images, etc.
 • View Controllers
 • Multitouch Event Handling
Cocoa Touch
UIKit Framework

 • Framework for building iPhone user interfaces
 • User Interface Elements
   • Views, tables, buttons, images, etc.
 • View Controllers
 • Multitouch Event Handling
 • Accelerometer
Cocoa Touch
UIKit Framework

 • Framework for building iPhone user interfaces
 • User Interface Elements
   • Views, tables, buttons, images, etc.
 • View Controllers
 • Multitouch Event Handling
 • Accelerometer
 • High-level Drawing Routines
iPhone SDK Tools
XCode
XCode
XCode
• Apple’s IDE for creating Mac and iPhone apps
XCode
• Apple’s IDE for creating Mac and iPhone apps
• Provides visual front end to GCC and GDB
XCode
• Apple’s IDE for creating Mac and iPhone apps
• Provides visual front end to GCC and GDB
• Hub of development process:
     Editing               Testing
     Building              Model Design
     Refactoring           Deployment
     Debugging             Code Signing
     API Doc Integration   Project Configuration
Interface Builder
Interface Builder
Interface Builder
 • Visual user interface builder
Interface Builder
 • Visual user interface builder
   • Layout and configuration of user interface
Interface Builder
 • Visual user interface builder
   • Layout and configuration of user interface
   • Visual layout guides based on Apple's HIG
Interface Builder
 • Visual user interface builder
   • Layout and configuration of user interface
   • Visual layout guides based on Apple's HIG
 • Graphically wire UI components
Interface Builder
 • Visual user interface builder
   • Layout and configuration of user interface
   • Visual layout guides based on Apple's HIG
 • Graphically wire UI components
 • Seamless integration with XCode
iPhone Simulator
iPhone Simulator
iPhone Simulator
• Faster code, build, test cycle
iPhone Simulator
• Faster code, build, test cycle
• Test behaviors: rotation, shake, multi-touch
iPhone Simulator
• Faster code, build, test cycle
• Test behaviors: rotation, shake, multi-touch
• Easier to test exceptional conditions
iPhone Simulator
• Faster code, build, test cycle
• Test behaviors: rotation, shake, multi-touch
• Easier to test exceptional conditions
• iPhone Simulator != iPhone:
   • No memory or CPU limits
   • Not all APIs and capabilities available:
     • Core Location, Keychain, etc.
Instruments
Instruments
Instruments

• Dynamic tracing and profiling tool
Instruments

• Dynamic tracing and profiling tool
 • Visual front end to DTrace
Instruments

• Dynamic tracing and profiling tool
 • Visual front end to DTrace
• Uses digital audio workstation-like interface
Instruments

• Dynamic tracing and profiling tool
 • Visual front end to DTrace
• Uses digital audio workstation-like interface
• Large library of standard instruments
 • CPU Sampler, Core Animation, Leaks, etc.
 • Can build custom DTrace instruments
Instruments

• Dynamic tracing and profiling tool
 • Visual front end to DTrace
• Uses digital audio workstation-like interface
• Large library of standard instruments
 • CPU Sampler, Core Animation, Leaks, etc.
 • Can build custom DTrace instruments
• Wireless profiling in iPhone SDK 3.1+
One more thing...

Más contenido relacionado

La actualidad más candente

Adapting Expectations to Fit a Mobile Workflow
Adapting Expectations to Fit a Mobile WorkflowAdapting Expectations to Fit a Mobile Workflow
Adapting Expectations to Fit a Mobile WorkflowJoseph Labrecque
 
iOS Developer Concept introduction
iOS Developer Concept introductioniOS Developer Concept introduction
iOS Developer Concept introductionBanyapon Poolsawas
 
Titanium: Native Mobile Apps with Javascript
Titanium: Native Mobile Apps with Javascript Titanium: Native Mobile Apps with Javascript
Titanium: Native Mobile Apps with Javascript Leonardo Farias
 
iOS Bootcamp: learning to create awesome apps on iOS using Swift (Lecture 7)
iOS Bootcamp: learning to create awesome apps on iOS using Swift (Lecture 7)iOS Bootcamp: learning to create awesome apps on iOS using Swift (Lecture 7)
iOS Bootcamp: learning to create awesome apps on iOS using Swift (Lecture 7)Jonathan Engelsma
 
Beginning iOS Development with Swift
Beginning iOS Development with SwiftBeginning iOS Development with Swift
Beginning iOS Development with SwiftTurnToTech
 
Introduction to Ionic (SB AngularJS Meetup)
Introduction to Ionic (SB AngularJS Meetup)Introduction to Ionic (SB AngularJS Meetup)
Introduction to Ionic (SB AngularJS Meetup)Sol Tran
 
New voice, new tone, new IA: Writing for the modern developer
New voice, new tone, new IA: Writing for the modern developerNew voice, new tone, new IA: Writing for the modern developer
New voice, new tone, new IA: Writing for the modern developerKeith Boyd
 
Xcode, Basics and Beyond
Xcode, Basics and BeyondXcode, Basics and Beyond
Xcode, Basics and Beyondrsebbe
 
iOS Bootcamp: learning to create awesome apps on iOS using Swift (Lecture 09)
iOS Bootcamp: learning to create awesome apps on iOS using Swift (Lecture 09)iOS Bootcamp: learning to create awesome apps on iOS using Swift (Lecture 09)
iOS Bootcamp: learning to create awesome apps on iOS using Swift (Lecture 09)Jonathan Engelsma
 
Android Application Development Training by NITIN GUPTA
Android Application Development Training by NITIN GUPTA Android Application Development Training by NITIN GUPTA
Android Application Development Training by NITIN GUPTA NITIN GUPTA
 
Android application development ppt
Android application development pptAndroid application development ppt
Android application development pptGautam Kumar
 
Wanna test IOS applications?
Wanna test IOS applications?Wanna test IOS applications?
Wanna test IOS applications?Vlada Kulish
 
tvOS: An Introduction for iOS Developers
tvOS: An Introduction for iOS DeveloperstvOS: An Introduction for iOS Developers
tvOS: An Introduction for iOS DevelopersEric Hyche
 
基于iphone开发实践
基于iphone开发实践基于iphone开发实践
基于iphone开发实践xxjjxx
 
Adobe and the Flash Gaming Landscape
Adobe and the Flash Gaming LandscapeAdobe and the Flash Gaming Landscape
Adobe and the Flash Gaming LandscapeJoseph Labrecque
 
Building a Windows 10 Game with C#, XAML and Win2D
Building a Windows 10 Game with C#, XAML and Win2DBuilding a Windows 10 Game with C#, XAML and Win2D
Building a Windows 10 Game with C#, XAML and Win2DNick Landry
 

La actualidad más candente (20)

Adapting Expectations to Fit a Mobile Workflow
Adapting Expectations to Fit a Mobile WorkflowAdapting Expectations to Fit a Mobile Workflow
Adapting Expectations to Fit a Mobile Workflow
 
iOS Developer Concept introduction
iOS Developer Concept introductioniOS Developer Concept introduction
iOS Developer Concept introduction
 
Inter-process audio options on iOS
Inter-process audio options on iOSInter-process audio options on iOS
Inter-process audio options on iOS
 
Titanium: Native Mobile Apps with Javascript
Titanium: Native Mobile Apps with Javascript Titanium: Native Mobile Apps with Javascript
Titanium: Native Mobile Apps with Javascript
 
iOS Bootcamp: learning to create awesome apps on iOS using Swift (Lecture 7)
iOS Bootcamp: learning to create awesome apps on iOS using Swift (Lecture 7)iOS Bootcamp: learning to create awesome apps on iOS using Swift (Lecture 7)
iOS Bootcamp: learning to create awesome apps on iOS using Swift (Lecture 7)
 
Beginning iOS Development with Swift
Beginning iOS Development with SwiftBeginning iOS Development with Swift
Beginning iOS Development with Swift
 
Introduction to Ionic (SB AngularJS Meetup)
Introduction to Ionic (SB AngularJS Meetup)Introduction to Ionic (SB AngularJS Meetup)
Introduction to Ionic (SB AngularJS Meetup)
 
New voice, new tone, new IA: Writing for the modern developer
New voice, new tone, new IA: Writing for the modern developerNew voice, new tone, new IA: Writing for the modern developer
New voice, new tone, new IA: Writing for the modern developer
 
Unified logging on iOS
Unified logging on iOSUnified logging on iOS
Unified logging on iOS
 
Xcode, Basics and Beyond
Xcode, Basics and BeyondXcode, Basics and Beyond
Xcode, Basics and Beyond
 
iOS Bootcamp: learning to create awesome apps on iOS using Swift (Lecture 09)
iOS Bootcamp: learning to create awesome apps on iOS using Swift (Lecture 09)iOS Bootcamp: learning to create awesome apps on iOS using Swift (Lecture 09)
iOS Bootcamp: learning to create awesome apps on iOS using Swift (Lecture 09)
 
Mobile Learning Development Tools
Mobile Learning Development ToolsMobile Learning Development Tools
Mobile Learning Development Tools
 
Android Application Development Training by NITIN GUPTA
Android Application Development Training by NITIN GUPTA Android Application Development Training by NITIN GUPTA
Android Application Development Training by NITIN GUPTA
 
Android application development ppt
Android application development pptAndroid application development ppt
Android application development ppt
 
Wanna test IOS applications?
Wanna test IOS applications?Wanna test IOS applications?
Wanna test IOS applications?
 
tvOS: An Introduction for iOS Developers
tvOS: An Introduction for iOS DeveloperstvOS: An Introduction for iOS Developers
tvOS: An Introduction for iOS Developers
 
基于iphone开发实践
基于iphone开发实践基于iphone开发实践
基于iphone开发实践
 
Adobe and the Flash Gaming Landscape
Adobe and the Flash Gaming LandscapeAdobe and the Flash Gaming Landscape
Adobe and the Flash Gaming Landscape
 
Building a Windows 10 Game with C#, XAML and Win2D
Building a Windows 10 Game with C#, XAML and Win2DBuilding a Windows 10 Game with C#, XAML and Win2D
Building a Windows 10 Game with C#, XAML and Win2D
 
Mobile for the rest of us
Mobile for the rest of usMobile for the rest of us
Mobile for the rest of us
 

Similar a iPhone OS: The Next Killer Platform

Introduction to iOS Development
Introduction to iOS DevelopmentIntroduction to iOS Development
Introduction to iOS DevelopmentAsim Rais Siddiqui
 
Hybrid mobile application with Ionic
Hybrid mobile application with IonicHybrid mobile application with Ionic
Hybrid mobile application with IonicMaulik Bamania
 
Developing Applications on iOS
Developing Applications on iOSDeveloping Applications on iOS
Developing Applications on iOSFrancisco Ramos
 
The Great Mobile Debate: Native vs. Hybrid App Development
The Great Mobile Debate: Native vs. Hybrid App DevelopmentThe Great Mobile Debate: Native vs. Hybrid App Development
The Great Mobile Debate: Native vs. Hybrid App DevelopmentNick Landry
 
Visual Studio 2015: novità per gli sviluppatori iOS, Android e Cross-Platform
Visual Studio 2015: novità per gli sviluppatori iOS, Android e Cross-PlatformVisual Studio 2015: novità per gli sviluppatori iOS, Android e Cross-Platform
Visual Studio 2015: novità per gli sviluppatori iOS, Android e Cross-PlatformStefano Ottaviani
 
Layer architecture of ios (1)
Layer architecture of ios (1)Layer architecture of ios (1)
Layer architecture of ios (1)dwipalp
 
Development of a mobile app for Android
Development of a mobile app for AndroidDevelopment of a mobile app for Android
Development of a mobile app for AndroidAlexJReid
 
MobApp development 01 application platform.pptx
MobApp development 01 application platform.pptxMobApp development 01 application platform.pptx
MobApp development 01 application platform.pptxsanaiftikhar23
 
iPhone Application Develpment With Iscope Digital
iPhone Application Develpment With Iscope DigitaliPhone Application Develpment With Iscope Digital
iPhone Application Develpment With Iscope DigitalIscope Digital
 
Developing a native mobile apps using Ionic&Cordova
Developing a native mobile apps using Ionic&CordovaDeveloping a native mobile apps using Ionic&Cordova
Developing a native mobile apps using Ionic&CordovaDamir Beylkhanov
 
Никита Корчагин - Introduction to Apple iOS Development.
Никита Корчагин - Introduction to Apple iOS Development.Никита Корчагин - Introduction to Apple iOS Development.
Никита Корчагин - Introduction to Apple iOS Development.DataArt
 
Building Native “apps” with Visual Studio 2015
Building Native “apps” with Visual Studio 2015Building Native “apps” with Visual Studio 2015
Building Native “apps” with Visual Studio 2015Mike Melusky
 
Mobeers waterloo-2011
Mobeers waterloo-2011Mobeers waterloo-2011
Mobeers waterloo-2011Brian LeRoux
 

Similar a iPhone OS: The Next Killer Platform (20)

Introduction to iOS Development
Introduction to iOS DevelopmentIntroduction to iOS Development
Introduction to iOS Development
 
Hybrid mobile application with Ionic
Hybrid mobile application with IonicHybrid mobile application with Ionic
Hybrid mobile application with Ionic
 
iOS App Development and Marketing
iOS App Development and MarketingiOS App Development and Marketing
iOS App Development and Marketing
 
Hybrid app development with ionic
Hybrid app development with ionicHybrid app development with ionic
Hybrid app development with ionic
 
Xamarin v.Now
Xamarin v.NowXamarin v.Now
Xamarin v.Now
 
Developing Applications on iOS
Developing Applications on iOSDeveloping Applications on iOS
Developing Applications on iOS
 
The Great Mobile Debate: Native vs. Hybrid App Development
The Great Mobile Debate: Native vs. Hybrid App DevelopmentThe Great Mobile Debate: Native vs. Hybrid App Development
The Great Mobile Debate: Native vs. Hybrid App Development
 
Visual Studio 2015: novità per gli sviluppatori iOS, Android e Cross-Platform
Visual Studio 2015: novità per gli sviluppatori iOS, Android e Cross-PlatformVisual Studio 2015: novità per gli sviluppatori iOS, Android e Cross-Platform
Visual Studio 2015: novità per gli sviluppatori iOS, Android e Cross-Platform
 
iOS platform
iOS platformiOS platform
iOS platform
 
How to become iPhone developer
How to become iPhone developerHow to become iPhone developer
How to become iPhone developer
 
Layer architecture of ios (1)
Layer architecture of ios (1)Layer architecture of ios (1)
Layer architecture of ios (1)
 
Development of a mobile app for Android
Development of a mobile app for AndroidDevelopment of a mobile app for Android
Development of a mobile app for Android
 
Android Technology
Android TechnologyAndroid Technology
Android Technology
 
MobApp development 01 application platform.pptx
MobApp development 01 application platform.pptxMobApp development 01 application platform.pptx
MobApp development 01 application platform.pptx
 
iPhone Application Develpment With Iscope Digital
iPhone Application Develpment With Iscope DigitaliPhone Application Develpment With Iscope Digital
iPhone Application Develpment With Iscope Digital
 
Developing a native mobile apps using Ionic&Cordova
Developing a native mobile apps using Ionic&CordovaDeveloping a native mobile apps using Ionic&Cordova
Developing a native mobile apps using Ionic&Cordova
 
Никита Корчагин - Introduction to Apple iOS Development.
Никита Корчагин - Introduction to Apple iOS Development.Никита Корчагин - Introduction to Apple iOS Development.
Никита Корчагин - Introduction to Apple iOS Development.
 
Building Native “apps” with Visual Studio 2015
Building Native “apps” with Visual Studio 2015Building Native “apps” with Visual Studio 2015
Building Native “apps” with Visual Studio 2015
 
Mobeers waterloo-2011
Mobeers waterloo-2011Mobeers waterloo-2011
Mobeers waterloo-2011
 
Cross-Platform Development
Cross-Platform DevelopmentCross-Platform Development
Cross-Platform Development
 

Más de Christopher Bartling

Más de Christopher Bartling (12)

JavaScript Test-Driven Development with Jasmine 2.0 and Karma
JavaScript Test-Driven Development with Jasmine 2.0 and Karma JavaScript Test-Driven Development with Jasmine 2.0 and Karma
JavaScript Test-Driven Development with Jasmine 2.0 and Karma
 
Acceptance Test-driven Development with Cucumber-jvm
Acceptance Test-driven Development with Cucumber-jvmAcceptance Test-driven Development with Cucumber-jvm
Acceptance Test-driven Development with Cucumber-jvm
 
JavaScript TDD with Jasmine and Karma
JavaScript TDD with Jasmine and KarmaJavaScript TDD with Jasmine and Karma
JavaScript TDD with Jasmine and Karma
 
Building Tropo Apps with Grails
Building Tropo Apps with GrailsBuilding Tropo Apps with Grails
Building Tropo Apps with Grails
 
CoffeeScript By Example
CoffeeScript By ExampleCoffeeScript By Example
CoffeeScript By Example
 
Acceptance Test Driven Development With Spec Flow And Friends
Acceptance Test Driven Development With Spec Flow And FriendsAcceptance Test Driven Development With Spec Flow And Friends
Acceptance Test Driven Development With Spec Flow And Friends
 
Introduction To Grails
Introduction To GrailsIntroduction To Grails
Introduction To Grails
 
Cucumber, Cuke4Duke, and Groovy
Cucumber, Cuke4Duke, and GroovyCucumber, Cuke4Duke, and Groovy
Cucumber, Cuke4Duke, and Groovy
 
Test Driven In Groovy
Test Driven In GroovyTest Driven In Groovy
Test Driven In Groovy
 
RESTful Web Services
RESTful Web ServicesRESTful Web Services
RESTful Web Services
 
Grails Overview
Grails OverviewGrails Overview
Grails Overview
 
Rich Web Clients 20081118
Rich Web Clients 20081118Rich Web Clients 20081118
Rich Web Clients 20081118
 

iPhone OS: The Next Killer Platform

Notas del editor