Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Introduction to the App Store and iOS Development

Introduction to the App Store and iOS Development

A crash course I gave for a software development company in Istanbul.

sarperdag

June 04, 2012
Tweet

More Decks by sarperdag

Other Decks in Programming

Transcript

  1. What is an “App”? • Not a mobile web site!

    • Something you want to carry in your pocket! • Something you need to interact frequently. • Bigger suite, broken into little pieces. (Facebook app = bad) (Camera app = good!)
  2. Most popular apps Rank Paid apps Free apps 1 Angry

    Birds Facebook 2 Fruit Ninja Pandora Radio 3 Doodle Jump Words With Friends Free 4 Cut the Rope Skype 5 Angry Birds Seasons The Weather Channel 6 Words With Friends Google Search 7 Tiny Wings Google Earth 8 Angry Birds Rio Angry Birds Free 9 Pocket God Shazam 10 Camera+ Netflix Retrieved May 14, 2012. http://www.macobserver.com/tmo/article/apple_names_all-time_top_app_store_apps/
  3. Prices FREE! PAID • Min Price = $0.99 • Revenue

    per application = $8,700 • Apple takes 30% revenue • In app purchases • No other forms of payment allowed OR
  4. • Users can find your app by searching: • Company

    Name • App Name • Keywords (max 100 chars) App Store SEO
  5. • Company Name • App Name • Keywords (max 100

    chars) • App description (max 4000) chars • 5 screenshots App Store SEO
  6. • Can choose the publish date • Ratings are reset

    when an update is released. • Astoturfing is illegal. • No way to track download locations. • Most sales in weekends. App Store SEO
  7. • Apple might choose your app in the features apps

    section. • If featured, it takes 1 to 2 weeks. • Increases sales by 20% App Store SEO
  8. • Latest SDK version = 5.1 • Xcode & iOS

    simulator (not emulator!) • Appcelerator Titanium (Wunderlist) • PhoneGap • RubyMotion • AppMakr • Parse and Kinvey
  9. HIG • People Interact with One App at a Time

    • The comfortable minimum size of tappable UI elements is 44 x 44 points. • Preferences should be in Settings app • Onscreen User Help is Minimal
  10. HIG • People expect immediate feedback when they operate a

    control, and they appreciate status updates during lengthy operations. (Eg: Instagram for uploading photo) • People us apps in one hand, and gesturing with the thumb of the same hand • Consider Adding Physicality and Realism
  11. HIG

  12. Icon • Apple adds gloss automatically • Apple adds rounded

    corners • No transparent icons allowed
  13. Graphics • Make everything 24bit PNG • Add @2x versions

    for retina • Use unretinizer or iconify!
  14. Objective-C basics • Object Oriented • Methods (not functions) •

    Instance Variables • Accessors (get and set methods) • Properties • Directives
  15. Methods [self.view setBackgroundColor:bgColor]; - (void)increaseAmount:(int)increase : (NSString*)string{ amount = amount

    + increase; amountLabel.text = [NSString stringWithFormat:@"%d TL", amount]; }
  16. Class Header #import <Cocoa/Cocoa.h> @interface Photo : NSObject { NSString*

    caption; NSString* photographer; } @property (retain) NSString* caption; @property (retain) NSString* photographer; @end
  17. Class Implementation #import "Photo.h" @implementation Photo @synthesize caption; @synthesize photographer;

    - (id) init { if ( self = [super init] ) { self.caption = @"Default Caption"; self.photographer = @"Default Photographer"; } return self; } - (void) dealloc { [self.caption release]; [self.photographer release]; [super dealloc]; } - (NSString*)description { return [NSString stringWithFormat:@"Photo caption: %@, photographer: %@", self.caption, self.photographer]; } @end
  18. Category #import <Cocoa/Cocoa.h> @interface NSString (Utilities) - (BOOL) isURL; @end

    #import "NSString-Utilities.h" @implementation NSString (Utilities) - (BOOL) isURL { if ( self.length < 7 ) return NO; NSRange range = NSMakeRange(0,7); NSString* prefix = [self substringWithRange:range]; if ( [prefix isEqualToString:@"http://"] ) return YES; else return NO; } @end
  19. What is Cocoa? A suite of object-oriented software libraries, a

    runtime system, and an integrated development environment.
  20. Xcode basics • Projects & Workspaces • Targets • Schemas

    • Debug / Release Modes • IB • Tools
  21. Xcode basics • Code signing • Organizer • Build settings

    • Frameworks • Bundling • .ipa file
  22. iOS Simulator • Not an emulator • Resetting • Location

    detection • Push notifications do not work • Non-retina by default
  23. MVC

  24. Open Source Libraries • AFNetworking • JSONKit • EGOCache •

    SVProgressHUD • Helpers • SVWebViewController