iOS Ecosystem

47
Pragma Night @ Talent Garden iOS Ecosystem Matteo Battaglio 1 1 giovedì 28 marzo 13

description

Introduction to the iOS Ecosystem: why develop for iOS, what are the requirements, the tools and the processes to know in order to enter this world

Transcript of iOS Ecosystem

Page 1: iOS Ecosystem

Pragma Night @ Talent Garden

iOS Ecosystem

Matteo Battaglio

1

1giovedì 28 marzo 13

Page 2: iOS Ecosystem

Pragma Night

Why iOS?

2

2giovedì 28 marzo 13

Page 3: iOS Ecosystem

Pragma Night

Reason #1: NumbersThe size of the mobile market is huge,

and growing exponentially

3

3giovedì 28 marzo 13

Page 4: iOS Ecosystem

Pragma Night

Reason #1: NumbersApple keeps holding a significant shareof the market, with a positive outlook

4

4giovedì 28 marzo 13

Page 5: iOS Ecosystem

Pragma Night

Reason #2: Consistency

• The iOS platform is highly consistent

• Just 3 different device families (iPhone, iPad, iPod)

• they target the high-end market

• the minimum set of features and APIs available to all is well known

5

5giovedì 28 marzo 13

Page 6: iOS Ecosystem

Pragma Night

Reason #2: ConsistencyMore than 80% of devices already run iOS 6

6

6giovedì 28 marzo 13

Page 7: iOS Ecosystem

Pragma Night

Reason #3: Environment

• 500+ milion iTunes accounts, with credit card

• the iOS customer is much more willing to pay than other platforms’ customer

Apple’s mission:create an environment around the user, not just sell products

7

7giovedì 28 marzo 13

Page 8: iOS Ecosystem

Pragma Night

Reason #3: Environment

• Apple’s highly-controlled environment limits unwanted phenomenons

• piracy

• fraudulent apps

• crappy apps

• Developers are less threatened than other platforms’ developers

8

8giovedì 28 marzo 13

Page 9: iOS Ecosystem

Pragma Night

Reason #4: Resources

• iOS frameworks and APIs are of first-class quality

• The documentation is structured and exhaustive

• Lots of books, articles, videos and tutorials

• High-quality developer community

9

9giovedì 28 marzo 13

Page 10: iOS Ecosystem

Pragma Night

Reason #4: Resources

• Development tools by Apple

• Xcode is a full featured IDE

• Interface Builder is great for designing user interfaces

• Debugger and profiler make it easy to find anomalies

• iOS Simulator is super fast

10

10giovedì 28 marzo 13

Page 11: iOS Ecosystem

Pragma Night

Reason #5: Fun!

• iOS devices are equipped with all sorts of sensors

• their computational power is enough even for the more advanced tasks

• always connected to the Internet

There is no limit to the imagination!

11

11giovedì 28 marzo 13

Page 12: iOS Ecosystem

Pragma Night

Reason #5: Fun!

Most popular app categories

1. Games ~ 140000 active apps @ $0.89 avg.2. Education ~ 90000 active apps3. Entertainment ~ 75000 active apps4. Lifestyle ~ 70000 active apps5. Books ~ 55000 active apps

@ $1.56 avg.

12

12giovedì 28 marzo 13

Page 13: iOS Ecosystem

Pragma Night

Drawbacks

• Not-so-cheap hardware

• iOS-dedicated events almost absent

• Dependance upon a single company and its decisions (non disclosure agreements, Xcode and SDK update policies, etc)

13

13giovedì 28 marzo 13

Page 14: iOS Ecosystem

Pragma Night

Hidden complexity

• iPhone

• iPad

• iPod

14

Just 3 different devices?

14giovedì 28 marzo 13

Page 15: iOS Ecosystem

Pragma Night

Devices

iPhone 3GS

iPhone 4

iPhone 4s

iPhone 5

iPod 4th

iPod 5th

iPad 2

iPad 3

iPad 4

iPad Mini

15

15giovedì 28 marzo 13

Page 16: iOS Ecosystem

Pragma Night

Display

iPhone 3GS iPhone 4 / 4SiPod 4th gen

iPhone 5 iPod 5th gen

320x480 px 640x480 px 640x1136 px

116 ppi 326 ppi 332 ppi

16

16giovedì 28 marzo 13

Page 17: iOS Ecosystem

Pragma Night

Display

iPad 1 / 2 iPad 3 / 4 iPad mini

1024x768 px 2048x1536 px 1024x768 px

132 dpi 264 dpi 162 dpi

17

17giovedì 28 marzo 13

Page 18: iOS Ecosystem

Pragma Night

Processor / RAM

ARMv7ARMv7ARMv7ARMv7 ARMv7sARMv7s

1 GB iPad 3 iPhone 5 iPad 4

512 MB iPhone 4iPhone 4S

iPad 2iPod 5th

256 MB iPhone 3GsiPod 3rd

iPad 1iPod 4th

18

18giovedì 28 marzo 13

Page 19: iOS Ecosystem

Pragma Night

Device Specs

• GSM Arenahttp://www.gsmarena.com/apple-phones-48.php

• The iPhoneWikihttp://theiphonewiki.com/wiki/

• iPhone Dev Wikihttp://iphonedevwiki.net/index.php/Main_Page

19

19giovedì 28 marzo 13

Page 20: iOS Ecosystem

Pragma Night

Requirements

20

20giovedì 28 marzo 13

Page 21: iOS Ecosystem

Pragma Night

Phisical requirements

• A Mac (iMac, Mac mini, MacBook family)

• OS X (10.7+)

• Xcode (4.0+)

• An iOS device (not mandatory, but recommended)

• The iOS Simulator can’t be used to simulate some features (e.g. push notifications, in-app purchases)

21

21giovedì 28 marzo 13

Page 22: iOS Ecosystem

Pragma Night

Skill requirements

• Object Oriented Programming

• C language

• Objective-C language & iOS SDK

• Apple guidelines

• Provisioning procedures

22

22giovedì 28 marzo 13

Page 23: iOS Ecosystem

Pragma Night

Membership requirements

• Apple ID (free)

• Apple Developer Program (ADP) subscription

23

23giovedì 28 marzo 13

Page 24: iOS Ecosystem

Pragma Night

Apple Developer Program

24

24giovedì 28 marzo 13

Page 25: iOS Ecosystem

Pragma Night

Apple Developer Program

Name Price Deployment

iOS Developer Program $99/year App Store / 100 devices

iOS Developer Enterprise Program $299/year NO App Store / ∞ devices

iOS Developer University Program free NO App Store / 200 people

25

Developer Programs

25giovedì 28 marzo 13

Page 26: iOS Ecosystem

Pragma Night

ADP Sections• Member Center

• manage users

• ADP subscription and renewal

• iOS Provisioning Portal

• development and distribution certificates

• adding and removing devices

• iTunes Connect

• app submissions

• tracking sales and trends

• handling payments

26

26giovedì 28 marzo 13

Page 27: iOS Ecosystem

Pragma Night

Concepts

• Certificateunivocally identifies an actor

• DeviceDevices must be enabled for testing

• App IDUnique identifier for the app

• Provisioning profileAsset which encloses the three concepts above

27

27giovedì 28 marzo 13

Page 28: iOS Ecosystem

Pragma Night

Certificates

• Development CertificateEach person in the team has his own

• Distribution CertificateThere’s one for the whole company (or single developer)

28

28giovedì 28 marzo 13

Page 29: iOS Ecosystem

Pragma Night

Devices

• Purposedevices are used during development and testing

• Name + UDIDUnique Device IDentifier, 40 char-long stringe.g. 67a43b0925c7a8050ad788591ace81d1bda81bed

• Limits

1. The ADP allows for a maximum of 100 devices

2. A device can’t be removed from the list until the next renewal of the subscription

29

29giovedì 28 marzo 13

Page 30: iOS Ecosystem

Pragma Night

App IDs

• Bundle Identifierunique identifier for the app

• Reverse domain namee.g. com.mycompany.BestAppEver

• Wildcard charactere.g. com.mycompany.*

30

30giovedì 28 marzo 13

Page 31: iOS Ecosystem

Pragma Night

Provisioning Profile

• What is it?it’s a resource (a file) which bundles the App ID, the device list and the certificates of the developers of the team

• What does it provide?it is bundled with the app and is used to authorize the execution of the app on the devices and its deployment and distribution

• How long does it last?It is valid for one year, after which it must be renewed

31

31giovedì 28 marzo 13

Page 32: iOS Ecosystem

Pragma Night

Provisioning Profile

•Development Provisioning Profile

‣ App ID ‣ (Development) certificate list‣ Device list

•Distribution Provisioning Profile

‣ Distribution method (App Store or AdHoc)‣ App ID‣ (Distribution) certificate‣ Device list (only in case of AdHoc deployment)

32

32giovedì 28 marzo 13

Page 33: iOS Ecosystem

Step by step

MMADP $$ Certificates

MDistributionCertificate

DevelopmentCertificates O

MMTeam Devices

MDevicesCustomers OMM

M M

New APP App ID Provisioning OMM

Xcode Install Build & sign

33giovedì 28 marzo 13

Page 34: iOS Ecosystem

Pragma Night

SDK

34

34giovedì 28 marzo 13

Page 35: iOS Ecosystem

Pragma Night

iOS

• Mobile operating systemARM architecture, multitasking, Cocoa Touch, multi-touch GUI

• Kernel XNU (like MAC OS X)Originally developed by NeXT for the NeXTSTEP OS, it is a hybrid kernel combining Mach and BSD components, and an object-oriented API for drivers

• Initially known as iPhone OS

35

35giovedì 28 marzo 13

Page 36: iOS Ecosystem

Pragma Night

Cocoa Touch frameworks

36

UIKit

36giovedì 28 marzo 13

Page 37: iOS Ecosystem

Pragma Night

iOS SDK

• Libraries and development tools

• First release in March 2008

• Side by side with Xcode e Mac OS

37

37giovedì 28 marzo 13

Page 38: iOS Ecosystem

Pragma Night

Tools

• XcodeThe natural environment for app development

• iOS SimulatorThe handy way of running and testing apps

• InstrumentsThe perfect tool for code analysis and profiling

38

38giovedì 28 marzo 13

Page 39: iOS Ecosystem

Pragma Night

Xcode

• Integrated Development Environment

• Objective-C / Objective-C++ / C++ / C

• LLVM and GCC compilers and debuggers

• Interface Builder

• Source Control (Subversion / Git)

• Apple’s developer documentation

39

39giovedì 28 marzo 13

Page 40: iOS Ecosystem

Pragma Night

Simulator

• iPhone / iPhone Retina (3.5” / 4”) / iPad / iPad Retina

• Gestures, Orientation change, Memory Warnings

• GPS (iOS 5+ Simulator)

• Apps: Safari, Photos, Contacts, Settings, Game Center, News Stand

• Fast! (It’s x86 and runs x86 apps, no ARM emulation)

40

40giovedì 28 marzo 13

Page 41: iOS Ecosystem

Pragma Night

Instruments

• Application performance analyzer and visualizer

• Integrated with Xcode

• Tracks user events, CPU activity, memory allocations, releases and leaks, file I/O, network activity, graphics and OpenGL

41

41giovedì 28 marzo 13

Page 42: iOS Ecosystem

Pragma Night

Resources

42

42giovedì 28 marzo 13

Page 43: iOS Ecosystem

Pragma Night

Resources

• Events

• Videos

• Books

43

43giovedì 28 marzo 13

Page 44: iOS Ecosystem

Pragma Night

Events

• Apple WWDC

• Apple Tech Talk World Tour

• NSConference

• Pragma mark :)

http://lanyrd.com/topics/ios/

44

44giovedì 28 marzo 13

Page 45: iOS Ecosystem

Pragma Night

Videos

• NSScreencast.com

• WWDC 2010 / 2011 / 2012 (ADP members only)

• iOS Development Videos (ADP members only)

• Lynda.com

• iDeveloper.tv

• Udemy.com

• University courses on iOS (published on iTunes U)

45

45giovedì 28 marzo 13

Page 46: iOS Ecosystem

Pragma Night

Books

• Programming in Objective-C

• Cocoa Design Patterns

• Pro Multithreading and Memory Management for iOS and Mac OS X

46

46giovedì 28 marzo 13

Page 47: iOS Ecosystem

Pragma Night

Thank You!

[email protected]

47giovedì 28 marzo 13