déjeuner technologiques - introduction to ios development & app marketing

50
iOS Programming From the first line of code to publication on store Clément SAUVAGE Founder & Lead Developper @ Kalokod iOS, OS X Developer Lille 1 University - November 5th 2013 Les déjeuners technologiques

Upload: clement-sauvage

Post on 09-May-2015

255 views

Category:

Technology


3 download

DESCRIPTION

Slides of my talk about iOS development & app marketing, given at Lille 1 University on 11/05/2013. And yes ! I love the smurfps ! :)

TRANSCRIPT

Page 1: Déjeuner Technologiques - Introduction to iOS Development & App Marketing

iOS Programming!From the first line of code to publication on store

Clément SAUVAGE!Founder & Lead Developper @ Kalokod !

iOS, OS X Developer

Lille 1 University - November 5th 2013

Les déjeuners technologiques

Page 2: Déjeuner Technologiques - Introduction to iOS Development & App Marketing

What about the talk ?

iOS developement

Mobile App Marketing

Page 3: Déjeuner Technologiques - Introduction to iOS Development & App Marketing

Who am I ?

Clément Sauvage 22 years oldSupinfo Student

iOS & OS X DeveloperFounder & Lead Dev of KalokodCocoa SpeakerOpenClassrooms Obj-C & iOS content author

Organizer of Cocoaheads Lille Meeting

Page 4: Déjeuner Technologiques - Introduction to iOS Development & App Marketing

Slides available on my SlideShare & SpeakerDeck profile at the end of the talk

Sources code available on my GitHub Profile tonight

Page 5: Déjeuner Technologiques - Introduction to iOS Development & App Marketing

iOS developement

Page 6: Déjeuner Technologiques - Introduction to iOS Development & App Marketing
Page 7: Déjeuner Technologiques - Introduction to iOS Development & App Marketing

Thanks Captain Obvious

Page 8: Déjeuner Technologiques - Introduction to iOS Development & App Marketing

A system to rule them all

Page 9: Déjeuner Technologiques - Introduction to iOS Development & App Marketing

One Programming Language

Objective C-

Page 10: Déjeuner Technologiques - Introduction to iOS Development & App Marketing

One Programming Language

Objective C

I don’t like POO at all

Categories Protocols

OOPClasses/Objects!Polymorphism!Inheritance /!\!…

Messages(Inherited from SmallTalk)

Page 11: Déjeuner Technologiques - Introduction to iOS Development & App Marketing

PHP

C++

C #

JavaPerl

C Language

Entity

Entity

Entity

Entity

Entity

Page 12: Déjeuner Technologiques - Introduction to iOS Development & App Marketing

Objective-C!Superset

C Language

Page 13: Déjeuner Technologiques - Introduction to iOS Development & App Marketing

Objective-C!Superset

C Language

!!

API Cocoa!!

Foundation Kit UIKit

CoreData!CoreGraphics!

…!

Page 14: Déjeuner Technologiques - Introduction to iOS Development & App Marketing

!!

API Cocoa!!

Foundation Kit UIKit

CoreData!CoreGraphics!

…!

Page 15: Déjeuner Technologiques - Introduction to iOS Development & App Marketing

!!

API Cocoa!!

Foundation Kit UIKit

CoreData!CoreGraphics!

…!

Page 16: Déjeuner Technologiques - Introduction to iOS Development & App Marketing

Historical reminders

1976 : Creation of Apple Computer, Inc.1985-86 : Jobs set up NeXT1996 : Apple bought NeXT for USD 41 000 0002001 (03/24) Apple release Mac OS X (10.1) Cheetah

Page 17: Déjeuner Technologiques - Introduction to iOS Development & App Marketing

Developer Toolbox

XCode 5!(Build 5A2053)

Available

Mac App Store ! Dev platform

Page 18: Déjeuner Technologiques - Introduction to iOS Development & App Marketing

Foundation Kit Essentials

Data Wrappers

String *myStringNSMutableNSDate *myString NSNumber *aNumber

Page 19: Déjeuner Technologiques - Introduction to iOS Development & App Marketing

Foundation Kit Essentials

Working with collections

Array *myArrayDictionnary *myDict

Set *mySetNSNS

NS

Page 20: Déjeuner Technologiques - Introduction to iOS Development & App Marketing

Foundation Kit Essentials

Working with collections

Array *myArrayDictionnary *myDict

Set *mySetNSNS

NSMutableMutable

Mutable

Page 21: Déjeuner Technologiques - Introduction to iOS Development & App Marketing

Developer Toolbox

Foundation Kit Demo

Find project on Github

Page 22: Déjeuner Technologiques - Introduction to iOS Development & App Marketing

How to develop an app

One pattern to rule them all

MVCModel View Controller

Page 23: Déjeuner Technologiques - Introduction to iOS Development & App Marketing

How to develop an app

One pattern to rule them all

Model

Controller View

Page 24: Déjeuner Technologiques - Introduction to iOS Development & App Marketing

How to develop an app

@interface

@implementation

Careful ! ViewController isn’t View & Controller!but a controller only !

Page 25: Déjeuner Technologiques - Introduction to iOS Development & App Marketing

Interface Design

There’s 2 ways to design your UI

CodeInterface builder & Storyboards

Page 26: Déjeuner Technologiques - Introduction to iOS Development & App Marketing

Interface Design with Storyboards

-

+Quickly set a UI Straightforward impl. for small apps ≠ XIBs for ≠ localizations Adjust the layout

Difficult to merge conflicts in a team environment Impossible to describe dynamic views XIBs lack customizations Harder to debug

Page 27: Déjeuner Technologiques - Introduction to iOS Development & App Marketing

Interface Design with IB & Story

Page 28: Déjeuner Technologiques - Introduction to iOS Development & App Marketing

Interface Design with IB & Story

DemoCreating a simple app w/ storyboard

Page 29: Déjeuner Technologiques - Introduction to iOS Development & App Marketing

Interface Design with code

+

-

Easier to merge conflicts and diff lines of code than it is a XIB file Trace code in debug mode / defensive programming Faster view creation More control

Visualize the UI More time to layout your views

Page 30: Déjeuner Technologiques - Introduction to iOS Development & App Marketing

Interface Design with code

//---- Create red rect UIView CGFloat width = self.view.bounds.size.width; //Grab width of main (blue) view ! CGFloat height = self.view.bounds.size.height; //Grab height of main (blue) view UIView *infoPanel = [[UIView alloc]initWithFrame: CGRectMake(width*0.02, height*0.84, width*0.96, height*0.15)]; infoPanel.backgroundColor = [UIColor redColor]; [self.view addSubview:infoPanel]; !! //---- AutoLayout methods goes here !

Page 31: Déjeuner Technologiques - Introduction to iOS Development & App Marketing

Interface Design

So… what should I use ?

Page 32: Déjeuner Technologiques - Introduction to iOS Development & App Marketing

Interface Design

No fixed answer !

Multiple factors

Team project or alone cowboy?!How much time do you have ?!

Have you a precise idea of your UI ? !If team, is there a designer in it ?

Page 33: Déjeuner Technologiques - Introduction to iOS Development & App Marketing

Bibliographie selective

Gaël DURAND - Abdelhalim RAFRAFI ! 829 pages Livre (broché) - 17 x 21 cm ISBN : 978-2-7460-7717-1

Page 34: Déjeuner Technologiques - Introduction to iOS Development & App Marketing

Bibliographie selective

Aaron HILLEGASS - Joe CONWAY !590 pages Big Nerd Ranch Guides; 3 edition ISBN : 978-0321821522

Page 35: Déjeuner Technologiques - Introduction to iOS Development & App Marketing

Bibliographie selective

Clément Sauvage !

280 - 550 pages ISBN : ???-??????????

Sortie : Late November - Early December 2013

Objective-C iOS 7

Page 36: Déjeuner Technologiques - Introduction to iOS Development & App Marketing

Bibliographie selective

Available on March 2014!Currently iOS 6 version

Page 37: Déjeuner Technologiques - Introduction to iOS Development & App Marketing

iOS App Marketing

Page 38: Déjeuner Technologiques - Introduction to iOS Development & App Marketing

Publishing your app

Illus

trat

ions

© C

lair

e M

illet

- c

estu

nmac

.com

Imp from Cupertino

Marketing, HI, App Review Guideline

Page 39: Déjeuner Technologiques - Introduction to iOS Development & App Marketing

Publishing your app

Illus

trat

ions

© C

lair

e M

illet

- c

estu

nmac

.com

1. Terms and conditions 2. Functionality 3. Metadata 4. Location 5. Push Notifications 6. Game Center 7. Advertising 8. Trademarks and trade dress 9. Media content 10. User interface 11. Purchasing and currencies 12. Scraping and aggregation 13. Damage or injury 14. Personal attacks 15. Violence 16. Objectionable content 17. Privacy 18. Pornography 19. Religion, culture, and ethnicity 20. Contests, sweepstakes, lotteries, raffles, and gambling 21. Charities and contributions 22. Legal requirements 23. Passbook 24. Kids Apps

Page 40: Déjeuner Technologiques - Introduction to iOS Development & App Marketing

Publishing your app

Illus

trat

ions

© C

lair

e M

illet

- c

estu

nmac

.com

Page 41: Déjeuner Technologiques - Introduction to iOS Development & App Marketing

Publishing your app

Illus

trat

ions

© C

lair

e M

illet

- c

estu

nmac

.com

Page 42: Déjeuner Technologiques - Introduction to iOS Development & App Marketing

Publishing your app

Illus

trat

ions

© C

lair

e M

illet

- c

estu

nmac

.com

Page 43: Déjeuner Technologiques - Introduction to iOS Development & App Marketing

User Feedback

Page 44: Déjeuner Technologiques - Introduction to iOS Development & App Marketing

User Feedback

Page 45: Déjeuner Technologiques - Introduction to iOS Development & App Marketing

User Feedback

Page 46: Déjeuner Technologiques - Introduction to iOS Development & App Marketing

Monetizing your app

Free + Pub

Free + Subscription

Paid app

Freemium

30% / 70%

Page 47: Déjeuner Technologiques - Introduction to iOS Development & App Marketing

Statistics

900 000 000 iDevices (June 2013)1st Professional OS (SPC +)70 % under iOS 71 000 000 App on store (october 2013)USD 30 000 000 000 for developersGlobally 2,69€/month/user

Page 48: Déjeuner Technologiques - Introduction to iOS Development & App Marketing

Selected Bibliography

App Savvy de Ken Yarmosh 352 pages!O'Reilly Media, Inc, USA (2 novembre 2010)!English!ISBN-10: 1449389767

Page 49: Déjeuner Technologiques - Introduction to iOS Development & App Marketing

Selected Bibliography

TapWorthy by Josh Clark Broché: 320 pages!Editeur : O'Reilly Media, Inc, USA; !Édition : 1 (13 juillet 2010)!English!ISBN-13: 978-1449381653!

Page 50: Déjeuner Technologiques - Introduction to iOS Development & App Marketing

Thank you !

@clementsauvage!@kalokod_ http://www.kalokod.com

Clément Sauvage

csauvage