際際滷

際際滷Share a Scribd company logo
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

More Related Content

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