SlideShare una empresa de Scribd logo
1 de 18
Descargar para leer sin conexión
iPhone App Development
        Overview
                 Brian Knittel


       Brian Knittel Consulting
Software Engineering and Architectures



                April 27, 2009

       Please do not distribute without permission
Who I am

    Clients: Cisco, Scientific Atlanta, MIPS, etc.




    Specialties



       Mobile/Embedded: iPhone, Cable set-tops, etc.
       Video, Audio, Graphics, & Networking
       Cable TV Networks
       Architectures and Design
       Top to bottom, human interface to drivers
    Currently working on my own iPhone Apps

Overview

Application Landscape
 Crowded, varied, and wide open
Application Production
 As easy as iTunes
iPhone Technologies
 Objective-C
 Dynamic Connectivity
 Expansive and expanding Dev Env and Toolkits
Application Landscape - Numbers

    Over 25,000 Apps




    30M iPhones and iPod Touches




    Over 1 Billion downloaded Apps



      –   Guess $37M from 19M Apps
    Top selling Crash Bandicoot game



      –   About $6M from 1M sold
App Categories

    Books                      Navigation
                          


    Business                   News
                          


    Education                  Photography
                          


    Entertainment              Productivity
                          


    Finance                    Reference
                          


    Games                      Social Networking
                          


    Healthcare & Fitness       Sports
                          


    Lifestyle                  Travel
                          


    Medical                    Utilities
                          


    Music                      Weather
                          
Top 10 All Time Apps

Paid                        Free
Crash Bandicoot       1M    Facebook
Koi Pond             944K   Google Earth
Enigmo game          850K   Pandora Radio
Bejeweled 2 game     815K   Tap Tap Revenge
                            Shazam
iBeer                780K
                            Pac Man Lite
Moto Chaser game     745K   Backgrounds
Pocket Guitar        710K   Touch Hockey
Flick Fishing game   670K   Labyrinth Lite
Tetris               635K   Flashlite
Texas Hold'em        600K
Cool Apps (my opinion)

                              Free
Built in
                                        Wikipanion
          Phone/Contacts
                                        SnapTell
          Mail
                                        Translator
          iPod
                                        Weather Channel
          Maps                         Urban Spoon
          Calendar                     Mint.com
          Photos                       Kindle
          Web Browser                  Facebook
          Stocks                       Pandora Radio
          Text (messaging)             Shazam
          Camera                       Skype
          Clock (timer,                FarFinder
           world, ...)                  WebMD
Application Distribution Channel

    iTunes Store – as easy as selling music




    Apple takes 30%, sends you a check monthly



           Free is free
    Free to develop using the Simulator - ADC




    $99 to develop for iPhone and ship products




    My application is in progress



           Developed in 4 months (Inc. learning curve)
           Still needs refinements, SQA
New for 3.0 Release in June
     




    Peer to Peer over Bluetooth




    Subscription and Pay for Features




    SW access to HW Plugins




    Push – Signal to Apps that are not running




    Cut, Copy, & Paste




    Spotlight Search of iPhone contents




    Voice Memos

•Rumors of two new iPhones and
    an iPod Touch in June
iPhone “mini”: $99-$149
no wireless, 4 or 8 GB, 2 MP camera, slimmer
iPhone “3G+”: $199
2x speed 3G (7.2Mbs) and wireless 802.11n
3.2 MP camera, video recording, compass
Faster CPU, 32 GB option, (256 MB memory?)
iPod Touch “3” – Add some iPhone capabilities?
Bluetooth? Camera? Microphone?
iPhone Technologies – Objective C

    Objective C (similar to C#)



         Based on Small talk, developed in early 80's
     



         Goal: Simple Object Oriented Coding
     



         Strict superset of C, mix with C or C++
     



         Polymorphic, Single Inheritance, no Templates
     



         Dynamic Typing, Binding, and Loading
     



         Interface (class) definition, and Implementation
     



         Loosely typed when you want it
     
Xcode Development Environment

    Interface Builder for configuring Human I/F




    Full IDE for Simulator and iPhone HW




 Instruments – Memory (leaks, guard-bands, &



object allocation), Performance, Timing, Graphics,
and lots more
    Fine Grain Performance Analysis – Shark




    Same tools as for Mac development




          Also used internally by Apple
      
Objective-C Example
@interface DemoAppDelegate : NSObject <UIApplicationDelegate> {
 UIWindow * window;
 DemoViewController *viewController;
}
@property (nonatomic, retain) IBOutlet UIWindow * window;
@property (nonatomic, retain) IBOutlet DemoViewController *viewController;
@end
@implementation DemoAppDelegate
@synthesize window;
@synthesize viewController;
- (void)applicationDidFinishLaunching:(UIApplication *)app {
   [window addSubview:viewController.view];
   [window makeKeyAndVisible];
}
@end
Object-C Connectability

•   Outlet – IB Connectable External Variable
•   Protocol – Method set responded to by many
    classes
•   Delegate – Protocol-Outlet combination
•   Target-Action – Dynamic External Methods
•   Notifications – Central Message Dispatch
•   Model-View-Controller Design Pattern
Protocol Example

@protocol UIApplicationDelegate<NSObject>
@optional
- (void)applicationDidFinishLaunching:
  (UIApplication *)application;
...
@end
Toolkits and Frameworks
        




    HI widgets: Menus, Touch I/F, Animations, etc




    WebView, ScrollView, ImageView, URLs




    Mostly the same as for Mac development




    iPhone specific




      – UI widgets (UIKit)
      – Touch I/F
      – Accelerometer
      – Location (GPS)
References

iPhone Dev Center    http://developer.apple.com/iphone/
  Videos - Getting Started & iPhone Tech Talk World Tour
  Coding How-to's
  Sample Code
  iPhone Reference Library
  Apple Developer Forums and Google
Stanford iPhone Application Programming
  http://www.stanford.edu/class/cs193p/
Summary

Application Landscape
 Crowded, varied, and wide open
Application Production
 As easy as iTunes
iPhone Technologies
 Objective-C
 Dynamic Connectivity
 Expansive and expanding Dev Env and Toolkits

Más contenido relacionado

Similar a iPhone App Development Overview

콘텐츠 플랫폼 구조 분석
콘텐츠 플랫폼 구조 분석콘텐츠 플랫폼 구조 분석
콘텐츠 플랫폼 구조 분석Jaehyeuk Oh
 
Programing for the iPhone
Programing for the iPhonePrograming for the iPhone
Programing for the iPhoneMike Qaissaunee
 
How To Build The Open Mesh 09
How To Build The Open Mesh 09How To Build The Open Mesh 09
How To Build The Open Mesh 09Marc Canter
 
Mobile App Developers - DevBatch Mobile Apps Portfolio
Mobile App Developers - DevBatch Mobile Apps PortfolioMobile App Developers - DevBatch Mobile Apps Portfolio
Mobile App Developers - DevBatch Mobile Apps PortfolioDevBatch Inc.
 
Developing the MIT Mobile Web
Developing the MIT Mobile WebDeveloping the MIT Mobile Web
Developing the MIT Mobile Webshu beta
 
Mobile internet campaigns
Mobile internet campaignsMobile internet campaigns
Mobile internet campaignsReinoud Bosman
 
It's all about the Apps!
It's all about the Apps!It's all about the Apps!
It's all about the Apps!Scott Kehoe
 
Mobile Tech Pres
Mobile Tech PresMobile Tech Pres
Mobile Tech PresJordan Epp
 
How To Create The Killer Location Aware Social Networking Application
How To Create The Killer Location Aware Social Networking ApplicationHow To Create The Killer Location Aware Social Networking Application
How To Create The Killer Location Aware Social Networking ApplicationMobileMonday Tel-Aviv
 
Philly ete-2011
Philly ete-2011Philly ete-2011
Philly ete-2011davyjones
 
Un Amore di Hardware
Un Amore di HardwareUn Amore di Hardware
Un Amore di HardwareLeandro Agro'
 
Introduction to mobile programming with Androids.
Introduction to mobile programming with Androids. Introduction to mobile programming with Androids.
Introduction to mobile programming with Androids. Maksim Golivkin
 
Smartphone Reporting Done Smarter
Smartphone Reporting Done SmarterSmartphone Reporting Done Smarter
Smartphone Reporting Done SmarterVictor Hernandez
 
Aleksandar Vacić - iOS App Development iz Srbije
Aleksandar Vacić - iOS App Development iz SrbijeAleksandar Vacić - iOS App Development iz Srbije
Aleksandar Vacić - iOS App Development iz SrbijeMobile Monday Srbija
 
SmartPhone Design and Delivery
SmartPhone Design and DeliverySmartPhone Design and Delivery
SmartPhone Design and DeliveryJason Diehl
 
Absolute Beginners Guide to iPhone dev
Absolute Beginners Guide to iPhone devAbsolute Beginners Guide to iPhone dev
Absolute Beginners Guide to iPhone devBarry Ezell
 

Similar a iPhone App Development Overview (20)

콘텐츠 플랫폼 구조 분석
콘텐츠 플랫폼 구조 분석콘텐츠 플랫폼 구조 분석
콘텐츠 플랫폼 구조 분석
 
Programing for the iPhone
Programing for the iPhonePrograming for the iPhone
Programing for the iPhone
 
How To Build The Open Mesh 09
How To Build The Open Mesh 09How To Build The Open Mesh 09
How To Build The Open Mesh 09
 
Mobile App Developers - DevBatch Mobile Apps Portfolio
Mobile App Developers - DevBatch Mobile Apps PortfolioMobile App Developers - DevBatch Mobile Apps Portfolio
Mobile App Developers - DevBatch Mobile Apps Portfolio
 
Developing the MIT Mobile Web
Developing the MIT Mobile WebDeveloping the MIT Mobile Web
Developing the MIT Mobile Web
 
Mobile internet campaigns
Mobile internet campaignsMobile internet campaigns
Mobile internet campaigns
 
Programmable watches
Programmable watchesProgrammable watches
Programmable watches
 
It's all about the Apps!
It's all about the Apps!It's all about the Apps!
It's all about the Apps!
 
Mobile Tech Pres
Mobile Tech PresMobile Tech Pres
Mobile Tech Pres
 
How To Create The Killer Location Aware Social Networking Application
How To Create The Killer Location Aware Social Networking ApplicationHow To Create The Killer Location Aware Social Networking Application
How To Create The Killer Location Aware Social Networking Application
 
Philly ete-2011
Philly ete-2011Philly ete-2011
Philly ete-2011
 
Un Amore di Hardware
Un Amore di HardwareUn Amore di Hardware
Un Amore di Hardware
 
Introduction to mobile programming with Androids.
Introduction to mobile programming with Androids. Introduction to mobile programming with Androids.
Introduction to mobile programming with Androids.
 
Smartphone Reporting Done Smarter
Smartphone Reporting Done SmarterSmartphone Reporting Done Smarter
Smartphone Reporting Done Smarter
 
2012 Tech Trends
2012 Tech Trends2012 Tech Trends
2012 Tech Trends
 
Aleksandar Vacić - iOS App Development iz Srbije
Aleksandar Vacić - iOS App Development iz SrbijeAleksandar Vacić - iOS App Development iz Srbije
Aleksandar Vacić - iOS App Development iz Srbije
 
SmartPhone Design and Delivery
SmartPhone Design and DeliverySmartPhone Design and Delivery
SmartPhone Design and Delivery
 
Absolute Beginners Guide to iPhone dev
Absolute Beginners Guide to iPhone devAbsolute Beginners Guide to iPhone dev
Absolute Beginners Guide to iPhone dev
 
Titanium Mobile Intro
Titanium Mobile IntroTitanium Mobile Intro
Titanium Mobile Intro
 
I pad
I padI pad
I pad
 

iPhone App Development Overview

  • 1. iPhone App Development Overview Brian Knittel Brian Knittel Consulting Software Engineering and Architectures April 27, 2009 Please do not distribute without permission
  • 2. Who I am Clients: Cisco, Scientific Atlanta, MIPS, etc.  Specialties   Mobile/Embedded: iPhone, Cable set-tops, etc.  Video, Audio, Graphics, & Networking  Cable TV Networks  Architectures and Design  Top to bottom, human interface to drivers Currently working on my own iPhone Apps 
  • 3. Overview Application Landscape Crowded, varied, and wide open Application Production As easy as iTunes iPhone Technologies Objective-C Dynamic Connectivity Expansive and expanding Dev Env and Toolkits
  • 4. Application Landscape - Numbers Over 25,000 Apps  30M iPhones and iPod Touches  Over 1 Billion downloaded Apps  – Guess $37M from 19M Apps Top selling Crash Bandicoot game  – About $6M from 1M sold
  • 5. App Categories Books Navigation   Business News   Education Photography   Entertainment Productivity   Finance Reference   Games Social Networking   Healthcare & Fitness Sports   Lifestyle Travel   Medical Utilities   Music Weather  
  • 6. Top 10 All Time Apps Paid Free Crash Bandicoot 1M Facebook Koi Pond 944K Google Earth Enigmo game 850K Pandora Radio Bejeweled 2 game 815K Tap Tap Revenge Shazam iBeer 780K Pac Man Lite Moto Chaser game 745K Backgrounds Pocket Guitar 710K Touch Hockey Flick Fishing game 670K Labyrinth Lite Tetris 635K Flashlite Texas Hold'em 600K
  • 7. Cool Apps (my opinion) Free Built in  Wikipanion  Phone/Contacts  SnapTell  Mail  Translator  iPod  Weather Channel  Maps  Urban Spoon  Calendar  Mint.com  Photos  Kindle  Web Browser  Facebook  Stocks  Pandora Radio  Text (messaging)  Shazam  Camera  Skype  Clock (timer,  FarFinder world, ...)  WebMD
  • 8. Application Distribution Channel iTunes Store – as easy as selling music  Apple takes 30%, sends you a check monthly   Free is free Free to develop using the Simulator - ADC  $99 to develop for iPhone and ship products  My application is in progress   Developed in 4 months (Inc. learning curve)  Still needs refinements, SQA
  • 9. New for 3.0 Release in June  Peer to Peer over Bluetooth  Subscription and Pay for Features  SW access to HW Plugins  Push – Signal to Apps that are not running  Cut, Copy, & Paste  Spotlight Search of iPhone contents  Voice Memos 
  • 10. •Rumors of two new iPhones and an iPod Touch in June iPhone “mini”: $99-$149 no wireless, 4 or 8 GB, 2 MP camera, slimmer iPhone “3G+”: $199 2x speed 3G (7.2Mbs) and wireless 802.11n 3.2 MP camera, video recording, compass Faster CPU, 32 GB option, (256 MB memory?) iPod Touch “3” – Add some iPhone capabilities? Bluetooth? Camera? Microphone?
  • 11. iPhone Technologies – Objective C Objective C (similar to C#)  Based on Small talk, developed in early 80's  Goal: Simple Object Oriented Coding  Strict superset of C, mix with C or C++  Polymorphic, Single Inheritance, no Templates  Dynamic Typing, Binding, and Loading  Interface (class) definition, and Implementation  Loosely typed when you want it 
  • 12. Xcode Development Environment Interface Builder for configuring Human I/F  Full IDE for Simulator and iPhone HW  Instruments – Memory (leaks, guard-bands, &  object allocation), Performance, Timing, Graphics, and lots more Fine Grain Performance Analysis – Shark  Same tools as for Mac development  Also used internally by Apple 
  • 13. Objective-C Example @interface DemoAppDelegate : NSObject <UIApplicationDelegate> { UIWindow * window; DemoViewController *viewController; } @property (nonatomic, retain) IBOutlet UIWindow * window; @property (nonatomic, retain) IBOutlet DemoViewController *viewController; @end @implementation DemoAppDelegate @synthesize window; @synthesize viewController; - (void)applicationDidFinishLaunching:(UIApplication *)app { [window addSubview:viewController.view]; [window makeKeyAndVisible]; } @end
  • 14. Object-C Connectability • Outlet – IB Connectable External Variable • Protocol – Method set responded to by many classes • Delegate – Protocol-Outlet combination • Target-Action – Dynamic External Methods • Notifications – Central Message Dispatch • Model-View-Controller Design Pattern
  • 15. Protocol Example @protocol UIApplicationDelegate<NSObject> @optional - (void)applicationDidFinishLaunching: (UIApplication *)application; ... @end
  • 16. Toolkits and Frameworks  HI widgets: Menus, Touch I/F, Animations, etc  WebView, ScrollView, ImageView, URLs  Mostly the same as for Mac development  iPhone specific  – UI widgets (UIKit) – Touch I/F – Accelerometer – Location (GPS)
  • 17. References iPhone Dev Center http://developer.apple.com/iphone/ Videos - Getting Started & iPhone Tech Talk World Tour Coding How-to's Sample Code iPhone Reference Library Apple Developer Forums and Google Stanford iPhone Application Programming http://www.stanford.edu/class/cs193p/
  • 18. Summary Application Landscape Crowded, varied, and wide open Application Production As easy as iTunes iPhone Technologies Objective-C Dynamic Connectivity Expansive and expanding Dev Env and Toolkits