iPhone App Development Overview

  • 1,372 views
Uploaded on

 

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
1,372
On Slideshare
0
From Embeds
0
Number of Embeds
1

Actions

Shares
Downloads
0
Comments
0
Likes
3

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 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