ios ecosystem

Post on 19-May-2015

1.647 Views

Category:

Technology

0 Downloads

Preview:

Click to see full reader

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

Pragma Night @ Talent Garden

iOS Ecosystem

Matteo Battaglio

1

1giovedì 28 marzo 13

Pragma Night

Why iOS?

2

2giovedì 28 marzo 13

Pragma Night

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

and growing exponentially

3

3giovedì 28 marzo 13

Pragma Night

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

4

4giovedì 28 marzo 13

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

Pragma Night

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

6

6giovedì 28 marzo 13

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

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

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

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

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

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

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

Pragma Night

Hidden complexity

• iPhone

• iPad

• iPod

14

Just 3 different devices?

14giovedì 28 marzo 13

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

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

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

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

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

Pragma Night

Requirements

20

20giovedì 28 marzo 13

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

Pragma Night

Skill requirements

• Object Oriented Programming

• C language

• Objective-C language & iOS SDK

• Apple guidelines

• Provisioning procedures

22

22giovedì 28 marzo 13

Pragma Night

Membership requirements

• Apple ID (free)

• Apple Developer Program (ADP) subscription

23

23giovedì 28 marzo 13

Pragma Night

Apple Developer Program

24

24giovedì 28 marzo 13

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

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

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

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

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

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

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

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

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

Pragma Night

SDK

34

34giovedì 28 marzo 13

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

Pragma Night

Cocoa Touch frameworks

36

UIKit

36giovedì 28 marzo 13

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

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

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

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

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

Pragma Night

Resources

42

42giovedì 28 marzo 13

Pragma Night

Resources

• Events

• Videos

• Books

43

43giovedì 28 marzo 13

Pragma Night

Events

• Apple WWDC

• Apple Tech Talk World Tour

• NSConference

• Pragma mark :)

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

44

44giovedì 28 marzo 13

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

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

Pragma Night

Thank You!

matteo.battaglio@pragmamark.org

47giovedì 28 marzo 13

top related