SlideShare a Scribd company logo
iOS Ecosystem
Paolo Tagliani
@pablosproject
#pragma me
• Paolo Tagliani (@PablosProject)
• iOS Developer @Superpartes Innovation Campus
• Founder of #pragma mark
• various stuff…
• @PablosProject
• http://www.pablosproject.com
• https://www.facebook.com/paolo.tagliani
• https://github.com/pablosproject
• More…
Agenda
Context
Mobile Market
AppStore
Environment
iOS Devices
Programming
languages
SDK
Distribution
Apple
Developer
Programs
Distribution
Profile
Beta
Tools
Xcode
Simulator
Instruments
Context
Mobile Market
The size of the mobile market is huge,

and growing exponentially
Top smartphone vendors
Source: IDC Worldwide Mobile Phone Tracker
700 Million
iPhones sold
March 2015
225 Million
iPads sold
October 2014
Smartphone OS Market Share
Source: idc.com
Smartphone OS Market Share
Source: idc.com
Period Android iOS Others
Q1 2015 78.0% 18.3% 3.7%
Q1 2014 81.2% 15.2% 3.6%
Q1 2013 75.5% 16.9% 7.6%
Developer Revenue
• 1.200.000 Applications (June 2014)
• 75.000.000.000+ downloads
• 800 million iTunes accounts, with credit card
• the iOS customer is much more willing to pay than
other platforms customer
App Store
• 1.200.000 Applications (June 2014)
• 75.000.000.000+ downloads
• 800 million iTunes accounts, with credit card
• the iOS customer is much more willing to pay than
other platforms customer
App Store
World largest
credit card
database
App Store Revenue
App Store Consistency
• Apple’s highly-controlled environment limits
unwanted phenomenons
• piracy
• fraudulent apps
• crappy apps
• Every App must pass an approval process
• Good for environment, not so good for
developers (and clients)
App Review
• Every App must pass an approval process
• Good for environment, not so good for
developers (and clients)
App Review
http://appreviewtimes.com/
Requirements
iOS development is
easy!
iOS development is
easy!
Prerequisites
A Mac computer
running OS X 10.9.4 or later
Xcode
(latest version)
Membership requirements
• Apple ID (free)
• Apple Developer Program (ADP) subscription
Skill requirements
• Object Oriented Programming
• C language (optional)
• Objective-C language
• iOS SDK
• Apple guidelines
• Provisioning procedures
June 2014
Environment
IOS ecosystem
IOS ecosystem
IOS ecosystem
IOS ecosystem
IOS ecosystem
IOS ecosystem
IOS ecosystem
IOS ecosystem
IOS ecosystem
IOS ecosystem
IOS ecosystem
IOS ecosystem
IOS ecosystem
IOS ecosystem
IOS ecosystem
IOS ecosystem
IOS ecosystem
IOS ecosystem
IOS ecosystem
IOS ecosystem
IOS ecosystem
iOS version stats
Earlier
2%iOS 7
20%
iOS 8
78%
As measured by the App Store on March 30, 2015.
Programming languages
Objective- C
• Created by Brad Cox in 1983
• Superset of C
• Tailored for Cocoa development
Objective- C
Objective- C
TIOBE Index
Objective- C
Stack Overflow 2015 Survey
Swift
Swift
• Modern
• Designed for safety
• Fast and powerful
• Interactive playgrounds
Swift
• Modern
• Designed for safety
• Fast and powerful
• Interactive playgrounds
SDK
iOS
• Mobile operating system

ARM 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
Cocoa Touch frameworks
UIKit
New frameworks
New frameworks
WatchKit
PhotoKit
HealthKit
HomeKit
Metal
Distribution
Distribution
Apple developer program
iOS Developer
Program
99$/year
App Store
100 devices
iOS Developer
University Program
free
NO App Store
200 devices
iOS Developer
Enterprise Program
299$/year
NO App Store
∞ devices
Concepts
• Certificate

univocally identifies an actor
• Device

Devices must be enabled for testing
• App ID

Unique identifier for the app
• Provisioning profile

Asset which encloses the three concepts above
Certificates
• Development Certificate
Each person in the team has his own
• Distribution Certificate

There’s one for the whole company (or single
developer)

Devices
• Purpose

devices are used during development and testing
• Name + UDID

Unique Device IDentifier, 40 char-long string

e.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 (only disabled)
App IDs
• Bundle Identifier

unique identifier for the app
• Reverse domain name

e.g. com.mycompany.BestAppEver
• Wildcard character

e.g. com.mycompany.*
App IDs
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
Provisioning Profile
• Development Provisioning Profile
‣ App ID
‣ (Development) certificate list (1 or more)
‣ Device list
Provisioning Profile
• Development Provisioning Profile
‣ App ID
‣ (Development) certificate list (1 or more)
‣ Device list
Provisioning Profile
• Distribution Provisioning Profile
‣ Distribution method (App Store or AdHoc)
‣ App ID
‣ (Distribution) certificate
‣ Device list (only in case of AdHoc deployment)
Ad hoc distribution
App Store Distribution
WTF?!
Beta distribution
• Can distribuite to testers before going on store
• Internal testers:
• Up to 25 testers
• No review
• External testers:
• Up to 1000 testers
• Beta review
Beta distribution
Tools
Xcode
Xcode
• Integrated Development Environment
• Objective-C / Objective-C++ / C++ / C
• LLVM and GCC compilers and debuggers
• Interface Builder
• Source Control (Subversion / Git)
• Apple developer documentation
Simulator
• iPhone / iPhone Retina (3.5” / 4” / 4.7” / 5.5”) /
iPad / iPad Retina
• Gestures, Orientation change, Memory Warnings
• GPS
• Apps: Safari, Photos, Contacts, Settings, Game
Center, News Stand
• Fast! (It’s x86 and runs x86 apps, no ARM
emulation)
Simulator
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
Instruments
Resources
Apple documentation
• iOS developer library
• Swift blog
• Apple developer forums
• WWDC videos
Books
• Programming in Objective-C
• Cocoa Design Patterns
• Pro Multithreading and Memory Management
for iOS and Mac OS X
Video
• NSScreencast
• Ray Wenderlich
• lynda.com
Vibrant community
• #pragma mark
• Cocoapods
• StackOverflow
• Conferences
Questions?

More Related Content

IOS ecosystem