SlideShare a Scribd company logo
1 of 89
Download to read offline
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 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

What's hot

POLARIS App Player Introduction
POLARIS App Player Introduction POLARIS App Player Introduction
POLARIS App Player Introduction
Hyeokgon Ryu
 
Road Map to iOS Development
Road Map to iOS DevelopmentRoad Map to iOS Development
Road Map to iOS Development
Hilal Baig
 

What's hot (20)

Getting Predictable - Pragmatic Approach for Mobile Development - Devday.lk ...
Getting Predictable - Pragmatic Approach for Mobile Development  - Devday.lk ...Getting Predictable - Pragmatic Approach for Mobile Development  - Devday.lk ...
Getting Predictable - Pragmatic Approach for Mobile Development - Devday.lk ...
 
Mobile Test Automation
Mobile Test AutomationMobile Test Automation
Mobile Test Automation
 
[Binh nguyen] Mobile Application Automation Testing iOS and Android
[Binh nguyen] Mobile Application Automation Testing iOS and Android [Binh nguyen] Mobile Application Automation Testing iOS and Android
[Binh nguyen] Mobile Application Automation Testing iOS and Android
 
Google APIs for NSBM Students
Google APIs for NSBM StudentsGoogle APIs for NSBM Students
Google APIs for NSBM Students
 
SauceCon19: Fashionable XCUITest for iOS App
SauceCon19: Fashionable XCUITest for iOS App SauceCon19: Fashionable XCUITest for iOS App
SauceCon19: Fashionable XCUITest for iOS App
 
Test Driven Development - Workshop
Test Driven Development - WorkshopTest Driven Development - Workshop
Test Driven Development - Workshop
 
Microsoft’s HockeyApp - Mobile Application Testing Tool
Microsoft’s HockeyApp - Mobile Application Testing ToolMicrosoft’s HockeyApp - Mobile Application Testing Tool
Microsoft’s HockeyApp - Mobile Application Testing Tool
 
Cross Platform Mobile Test Automation using Selenium WebDriver by Perfecto Mo...
Cross Platform Mobile Test Automation using Selenium WebDriver by Perfecto Mo...Cross Platform Mobile Test Automation using Selenium WebDriver by Perfecto Mo...
Cross Platform Mobile Test Automation using Selenium WebDriver by Perfecto Mo...
 
What's New with Perfecto? - Mid-Year Edition
What's New with Perfecto? - Mid-Year EditionWhat's New with Perfecto? - Mid-Year Edition
What's New with Perfecto? - Mid-Year Edition
 
Testdroid: Release Perfect Apps with Mobile Visual Testing in the Cloud
Testdroid: Release Perfect Apps with Mobile Visual Testing in the Cloud Testdroid: Release Perfect Apps with Mobile Visual Testing in the Cloud
Testdroid: Release Perfect Apps with Mobile Visual Testing in the Cloud
 
Publishing to Tizen using the Automated Conversion/Repackaging of Existing An...
Publishing to Tizen using the Automated Conversion/Repackaging of Existing An...Publishing to Tizen using the Automated Conversion/Repackaging of Existing An...
Publishing to Tizen using the Automated Conversion/Repackaging of Existing An...
 
POLARIS App Player Introduction
POLARIS App Player Introduction POLARIS App Player Introduction
POLARIS App Player Introduction
 
How to Reliably Measure and Optimize Graphics Performance of Your Android Games
How to Reliably Measure and Optimize Graphics Performance of Your Android GamesHow to Reliably Measure and Optimize Graphics Performance of Your Android Games
How to Reliably Measure and Optimize Graphics Performance of Your Android Games
 
Road Map to iOS Development
Road Map to iOS DevelopmentRoad Map to iOS Development
Road Map to iOS Development
 
One Test To Rule Them All - Conquer Android and iOS With One Script
One Test To Rule Them All - Conquer Android and iOS With One ScriptOne Test To Rule Them All - Conquer Android and iOS With One Script
One Test To Rule Them All - Conquer Android and iOS With One Script
 
Mobile Day - Intel XDK & Testing
Mobile Day - Intel XDK & TestingMobile Day - Intel XDK & Testing
Mobile Day - Intel XDK & Testing
 
OpenMobile ACL bringing Android apps to TIZEN
OpenMobile ACL bringing Android apps to TIZENOpenMobile ACL bringing Android apps to TIZEN
OpenMobile ACL bringing Android apps to TIZEN
 
Mobile DevOps - Get faster release cycles & higher quality android & ios apps
Mobile DevOps - Get faster release cycles & higher quality android & ios appsMobile DevOps - Get faster release cycles & higher quality android & ios apps
Mobile DevOps - Get faster release cycles & higher quality android & ios apps
 
Android Automation & Testing
Android Automation & TestingAndroid Automation & Testing
Android Automation & Testing
 
Mobile devops transformation
Mobile devops transformationMobile devops transformation
Mobile devops transformation
 

Similar to IOS ecosystem

Mobile Testing Challenges Lighting Talk with www.softtest.ie
Mobile Testing Challenges Lighting Talk with www.softtest.ieMobile Testing Challenges Lighting Talk with www.softtest.ie
Mobile Testing Challenges Lighting Talk with www.softtest.ie
David O'Dowd
 
Appcelerator Titanium Intro
Appcelerator Titanium IntroAppcelerator Titanium Intro
Appcelerator Titanium Intro
Nicholas Jansma
 
SumitK's mobile app dev using drupal as base ststem
SumitK's mobile app dev using drupal as base ststemSumitK's mobile app dev using drupal as base ststem
SumitK's mobile app dev using drupal as base ststem
Sumit Kataria
 

Similar to IOS ecosystem (20)

iOS App Development and Marketing
iOS App Development and MarketingiOS App Development and Marketing
iOS App Development and Marketing
 
Mobile Testing Challenges Lighting Talk with www.softtest.ie
Mobile Testing Challenges Lighting Talk with www.softtest.ieMobile Testing Challenges Lighting Talk with www.softtest.ie
Mobile Testing Challenges Lighting Talk with www.softtest.ie
 
iOS Development Survival Guide for the .NET Guy
iOS Development Survival Guide for the .NET GuyiOS Development Survival Guide for the .NET Guy
iOS Development Survival Guide for the .NET Guy
 
Wearable Development Ecosystem
Wearable Development EcosystemWearable Development Ecosystem
Wearable Development Ecosystem
 
Hybrid app development with ionic
Hybrid app development with ionicHybrid app development with ionic
Hybrid app development with ionic
 
Build Your First iPhone or Android App with Telerik AppBuilder
Build Your First iPhone or Android App with Telerik AppBuilderBuild Your First iPhone or Android App with Telerik AppBuilder
Build Your First iPhone or Android App with Telerik AppBuilder
 
DevOps for AI Apps
DevOps for AI AppsDevOps for AI Apps
DevOps for AI Apps
 
Appcelerator Titanium Intro
Appcelerator Titanium IntroAppcelerator Titanium Intro
Appcelerator Titanium Intro
 
Developing a native mobile apps using Ionic&Cordova
Developing a native mobile apps using Ionic&CordovaDeveloping a native mobile apps using Ionic&Cordova
Developing a native mobile apps using Ionic&Cordova
 
WWDC 15 - Apple's Developer Event @ 8-12 June, 2015
WWDC 15 - Apple's Developer Event @ 8-12 June, 2015WWDC 15 - Apple's Developer Event @ 8-12 June, 2015
WWDC 15 - Apple's Developer Event @ 8-12 June, 2015
 
Android Application Development Training by NITIN GUPTA
Android Application Development Training by NITIN GUPTA Android Application Development Training by NITIN GUPTA
Android Application Development Training by NITIN GUPTA
 
CI/CD for mobile at HERE
CI/CD for mobile at HERECI/CD for mobile at HERE
CI/CD for mobile at HERE
 
Shifting landscape of mobile automation, and the future of Appium - Jonathan ...
Shifting landscape of mobile automation, and the future of Appium - Jonathan ...Shifting landscape of mobile automation, and the future of Appium - Jonathan ...
Shifting landscape of mobile automation, and the future of Appium - Jonathan ...
 
SumitK's mobile app dev using drupal as base ststem
SumitK's mobile app dev using drupal as base ststemSumitK's mobile app dev using drupal as base ststem
SumitK's mobile app dev using drupal as base ststem
 
Android Tutorial
Android TutorialAndroid Tutorial
Android Tutorial
 
The Big Easy: Native Mobile App Development with Appcelerator Titanium and Ja...
The Big Easy: Native Mobile App Development with Appcelerator Titanium and Ja...The Big Easy: Native Mobile App Development with Appcelerator Titanium and Ja...
The Big Easy: Native Mobile App Development with Appcelerator Titanium and Ja...
 
Embarcadero's Connected Development
Embarcadero's Connected DevelopmentEmbarcadero's Connected Development
Embarcadero's Connected Development
 
5 Mobile App Trends & What They Mean for Dev & Testing
5 Mobile App Trends & What They Mean for Dev & Testing5 Mobile App Trends & What They Mean for Dev & Testing
5 Mobile App Trends & What They Mean for Dev & Testing
 
SRV312 DevOps on AWS: Building Systems to Deliver Faster
SRV312 DevOps on AWS: Building Systems to Deliver FasterSRV312 DevOps on AWS: Building Systems to Deliver Faster
SRV312 DevOps on AWS: Building Systems to Deliver Faster
 
Building iPhone/Andriod Apps with Titanium Appcelerator for a Rails Backend
Building iPhone/Andriod Apps with Titanium Appcelerator for a Rails BackendBuilding iPhone/Andriod Apps with Titanium Appcelerator for a Rails Backend
Building iPhone/Andriod Apps with Titanium Appcelerator for a Rails Backend
 

Recently uploaded

Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 

Recently uploaded (20)

Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot ModelNavi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu SubbuApidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 

IOS ecosystem