iphone app development overview

18
iPhone App Development Overview Brian Knittel Brian Knittel Consulting Software Engineering and Architectures April 27, 2009 Please do not distribute without permission

Upload: brianknittel

Post on 30-Nov-2014

2.402 views

Category:

Documents


0 download

DESCRIPTION

 

TRANSCRIPT

Page 1: iPhone App Development Overview

iPhone App Development OverviewBrian Knittel

Brian Knittel ConsultingSoftware Engineering and Architectures

April 27, 2009

Please do not distribute without permission

Page 2: iPhone App Development Overview

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

Page 3: iPhone App Development Overview

Overview

Application LandscapeCrowded, varied, and wide open

Application ProductionAs easy as iTunes

iPhone TechnologiesObjective-CDynamic ConnectivityExpansive and expanding Dev Env and Toolkits

Page 4: iPhone App Development Overview

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

Page 5: iPhone App Development Overview

App Categories

Books Business Education Entertainment Finance Games Healthcare & Fitness Lifestyle Medical Music

Navigation News Photography Productivity Reference Social Networking Sports Travel Utilities Weather

Page 6: iPhone App Development Overview

Top 10 All Time Apps

Paid Crash BandicootKoi PondEnigmo gameBejeweled 2 game

iBeer

Moto Chaser gamePocket GuitarFlick Fishing gameTetrisTexas Hold'em

Free FacebookGoogle EarthPandora RadioTap Tap Revenge ShazamPac Man LiteBackgroundsTouch HockeyLabyrinth LiteFlashlite

1M944K850K815K

780K

745K710K670K635K600K

Page 7: iPhone App Development Overview

Cool Apps (my opinion)

Built in Phone/Contacts Mail iPod Maps Calendar Photos Web Browser Stocks Text (messaging) Camera Clock (timer,

world, ...)

Free Wikipanion SnapTell Translator Weather Channel Urban Spoon Mint.com Kindle Facebook Pandora Radio Shazam Skype FarFinder WebMD

Page 8: iPhone App Development Overview

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

Page 9: iPhone App Development Overview

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

Page 10: iPhone App Development Overview

•Rumors of two new iPhones and an iPod Touch in June

iPhone “mini”: $99-$149no wireless, 4 or 8 GB, 2 MP camera, slimmeriPhone “3G+”: $199 2x speed 3G (7.2Mbs) and wireless 802.11n3.2 MP camera, video recording, compassFaster CPU, 32 GB option, (256 MB memory?)iPod Touch “3” – Add some iPhone capabilities?Bluetooth? Camera? Microphone?

Page 11: iPhone App Development Overview

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

Page 12: iPhone App Development Overview

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

Page 13: iPhone App Development Overview

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

Page 14: iPhone App Development Overview

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

Page 15: iPhone App Development Overview

Protocol Example

@protocol UIApplicationDelegate<NSObject>@optional

- (void)applicationDidFinishLaunching:(UIApplication *)application;

...@end

Page 16: iPhone App Development Overview

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)

Page 17: iPhone App Development Overview

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/

Page 18: iPhone App Development Overview

Summary

Application LandscapeCrowded, varied, and wide open

Application ProductionAs easy as iTunes

iPhone TechnologiesObjective-CDynamic ConnectivityExpansive and expanding Dev Env and Toolkits