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.

04f0d6320769600aa628a27e3697e367?s=128

sarperdag

June 04, 2012
Tweet

Transcript

  1. None
  2. Sarp Erdag

  3. None
  4. 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!)
  5. 585,000 apps in the App Store More than 25 billion

    downloads
  6. Average download per app: 40.000

  7. iOS Device Stats: 315 Million Sold, 62 Million In Q4

    2011 Alone
  8. Around 1.000.000 iOS devices in Turkey

  9. 2500 apps created by Turkish developers

  10. 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/
  11. None
  12. App Distribution 1. Ad-Hoc (up to 100) 2. App Store

    3. Enterprise App Store
  13. 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
  14. Approval 1. Takes 7-10 days 2. App Review Guidelines 3.

    Strict and random
  15. How to Market?

  16. • Users can find your app by searching: • Company

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

    chars) • App description (max 4000) chars • 5 screenshots App Store SEO
  18. • 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
  19. • 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
  20. • iAds • Google Ads • AdMob • Turkcell mobil

    reklam Advertising
  21. Development

  22. • Latest SDK version = 5.1 • Xcode & iOS

    simulator (not emulator!) • Appcelerator Titanium (Wunderlist) • PhoneGap • RubyMotion • AppMakr • Parse and Kinvey
  23. Human Interface Design Guidelines

  24. 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
  25. 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
  26. HIG

  27. Status Bar

  28. Navigation Bar

  29. Toolbar

  30. Tab Bar

  31. Popover (iPad)

  32. Split View (iPad)

  33. TableView

  34. Grouped TableView

  35. Webview

  36. Alert

  37. Action Sheet

  38. Modal View

  39. Pickers

  40. Please, Don’t!

  41. Others Network activity indicator Label Page Indicator Progress Indicator Search

    Bar Segmented Control Slider Switch
  42. Notifications Badges Notifications

  43. Icon

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

    corners • No transparent icons allowed
  45. Icon/App consistency

  46. Don’t include words

  47. None
  48. None
  49. Graphics • Make everything 24bit PNG • Add @2x versions

    for retina • Use unretinizer or iconify!
  50. • Pttrns.com • Mobile-Patterns.com UI Design Patterns

  51. Hello World! with IB

  52. Objective-C

  53. Objective-C basics • Object Oriented • Methods (not functions) •

    Instance Variables • Accessors (get and set methods) • Properties • Directives
  54. Objective-C basics • Categories • Logging • Delegates

  55. Methods [self.view setBackgroundColor:bgColor]; - (void)increaseAmount:(int)increase : (NSString*)string{ amount = amount

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

    caption; NSString* photographer; } @property (retain) NSString* caption; @property (retain) NSString* photographer; @end
  57. 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
  58. 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
  59. Logging NSLog(@"Logging something!");

  60. Memory Management IF YOU USE ALLOC, RETAIN or COPY THEN

    YOU NEED TO RELEASE
  61. ARC ARC doesn't completely free you from worrying about memory

    management
  62. What is Cocoa? A suite of object-oriented software libraries, a

    runtime system, and an integrated development environment.
  63. Cocoa Architecture

  64. Hello World! with Code

  65. None
  66. Xcode basics • Projects & Workspaces • Targets • Schemas

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

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

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

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

    SVProgressHUD • Helpers • SVWebViewController