Slide 1

Slide 1 text

No content

Slide 2

Slide 2 text

Sarp Erdag

Slide 3

Slide 3 text

No content

Slide 4

Slide 4 text

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!)

Slide 5

Slide 5 text

585,000 apps in the App Store More than 25 billion downloads

Slide 6

Slide 6 text

Average download per app: 40.000

Slide 7

Slide 7 text

iOS Device Stats: 315 Million Sold, 62 Million In Q4 2011 Alone

Slide 8

Slide 8 text

Around 1.000.000 iOS devices in Turkey

Slide 9

Slide 9 text

2500 apps created by Turkish developers

Slide 10

Slide 10 text

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/

Slide 11

Slide 11 text

No content

Slide 12

Slide 12 text

App Distribution 1. Ad-Hoc (up to 100) 2. App Store 3. Enterprise App Store

Slide 13

Slide 13 text

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

Slide 14

Slide 14 text

Approval 1. Takes 7-10 days 2. App Review Guidelines 3. Strict and random

Slide 15

Slide 15 text

How to Market?

Slide 16

Slide 16 text

• Users can find your app by searching: • Company Name • App Name • Keywords (max 100 chars) App Store SEO

Slide 17

Slide 17 text

• Company Name • App Name • Keywords (max 100 chars) • App description (max 4000) chars • 5 screenshots App Store SEO

Slide 18

Slide 18 text

• 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

Slide 19

Slide 19 text

• 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

Slide 20

Slide 20 text

• iAds • Google Ads • AdMob • Turkcell mobil reklam Advertising

Slide 21

Slide 21 text

Development

Slide 22

Slide 22 text

• Latest SDK version = 5.1 • Xcode & iOS simulator (not emulator!) • Appcelerator Titanium (Wunderlist) • PhoneGap • RubyMotion • AppMakr • Parse and Kinvey

Slide 23

Slide 23 text

Human Interface Design Guidelines

Slide 24

Slide 24 text

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

Slide 25

Slide 25 text

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

Slide 26

Slide 26 text

HIG

Slide 27

Slide 27 text

Status Bar

Slide 28

Slide 28 text

Navigation Bar

Slide 29

Slide 29 text

Toolbar

Slide 30

Slide 30 text

Tab Bar

Slide 31

Slide 31 text

Popover (iPad)

Slide 32

Slide 32 text

Split View (iPad)

Slide 33

Slide 33 text

TableView

Slide 34

Slide 34 text

Grouped TableView

Slide 35

Slide 35 text

Webview

Slide 36

Slide 36 text

Alert

Slide 37

Slide 37 text

Action Sheet

Slide 38

Slide 38 text

Modal View

Slide 39

Slide 39 text

Pickers

Slide 40

Slide 40 text

Please, Don’t!

Slide 41

Slide 41 text

Others Network activity indicator Label Page Indicator Progress Indicator Search Bar Segmented Control Slider Switch

Slide 42

Slide 42 text

Notifications Badges Notifications

Slide 43

Slide 43 text

Icon

Slide 44

Slide 44 text

Icon • Apple adds gloss automatically • Apple adds rounded corners • No transparent icons allowed

Slide 45

Slide 45 text

Icon/App consistency

Slide 46

Slide 46 text

Don’t include words

Slide 47

Slide 47 text

No content

Slide 48

Slide 48 text

No content

Slide 49

Slide 49 text

Graphics • Make everything 24bit PNG • Add @2x versions for retina • Use unretinizer or iconify!

Slide 50

Slide 50 text

• Pttrns.com • Mobile-Patterns.com UI Design Patterns

Slide 51

Slide 51 text

Hello World! with IB

Slide 52

Slide 52 text

Objective-C

Slide 53

Slide 53 text

Objective-C basics • Object Oriented • Methods (not functions) • Instance Variables • Accessors (get and set methods) • Properties • Directives

Slide 54

Slide 54 text

Objective-C basics • Categories • Logging • Delegates

Slide 55

Slide 55 text

Methods [self.view setBackgroundColor:bgColor]; - (void)increaseAmount:(int)increase : (NSString*)string{ amount = amount + increase; amountLabel.text = [NSString stringWithFormat:@"%d TL", amount]; }

Slide 56

Slide 56 text

Class Header #import @interface Photo : NSObject { NSString* caption; NSString* photographer; } @property (retain) NSString* caption; @property (retain) NSString* photographer; @end

Slide 57

Slide 57 text

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

Slide 58

Slide 58 text

Category #import @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

Slide 59

Slide 59 text

Logging NSLog(@"Logging something!");

Slide 60

Slide 60 text

Memory Management IF YOU USE ALLOC, RETAIN or COPY THEN YOU NEED TO RELEASE

Slide 61

Slide 61 text

ARC ARC doesn't completely free you from worrying about memory management

Slide 62

Slide 62 text

What is Cocoa? A suite of object-oriented software libraries, a runtime system, and an integrated development environment.

Slide 63

Slide 63 text

Cocoa Architecture

Slide 64

Slide 64 text

Hello World! with Code

Slide 65

Slide 65 text

No content

Slide 66

Slide 66 text

Xcode basics • Projects & Workspaces • Targets • Schemas • Debug / Release Modes • IB • Tools

Slide 67

Slide 67 text

Xcode basics • Code signing • Organizer • Build settings • Frameworks • Bundling • .ipa file

Slide 68

Slide 68 text

iOS Simulator • Not an emulator • Resetting • Location detection • Push notifications do not work • Non-retina by default

Slide 69

Slide 69 text

MVC

Slide 70

Slide 70 text

Open Source Libraries • AFNetworking • JSONKit • EGOCache • SVProgressHUD • Helpers • SVWebViewController