Massimo Oliviero
iOS Getting Started
a quick start guide for developers & students
Slide 2
Slide 2 text
iOS Bootcamp @ ITIS
Chi sono
• Software Developer & Trainer
email: [email protected]
web: http://www.massimooliviero.net
twitter: @maxoly
• Co-founder & CEO di Cappery S.r.l.
web: http://www.cappery.com
• Co-founder di #pragma mark
web: http://pragmamark.org
Slide 3
Slide 3 text
iOS Bootcamp @ ITIS
Agenda
• Introduzione
• Requisiti
• Apple Developer Program
• Device
• SDK
• Risorse
Slide 4
Slide 4 text
iOS Bootcamp @ ITIS
Sondaggio
?
Slide 5
Slide 5 text
iOS Bootcamp @ ITIS
Introduzione
Slide 6
Slide 6 text
iOS Bootcamp @ ITIS
Timeline
06/2007
iPhone OS
1.0
07/2008
iPhone OS
2.0
07/2009
iPhone OS
3.0
06/2010
iOS 4.0
11/2010
iOS 4.2.1
iPhone + iPad
10/2011
iOS 5.0
iCloud
OTA
Twitter
Notif. Center
Siri
09/2012
iOS 6.0
Maps
Passbook
Facebook
turn-by-turn
navigation
(new) Siri
Multitasking
Fast-app switching
App Folders
iBooks
Game Center
Tethering
iAd
03/2008
iPhone SDK
1.0
Slide 7
Slide 7 text
iOS Bootcamp
Mercato
• +365 milioni di device iOS
• +250 milioni di iPhone
• +100 milioni di iPad
• 80% iOS 6
Source: Apple & Wikipedia
Slide 8
Slide 8 text
iOS Bootcamp
App Store
• +500 milioni di account iTunes
• +775.000 applicazioni sullo store
• +40 miliardi di download
• +130.000 developers
• +7 miliardi $ agli sviluppatori
• 155 paesi
http://en.wikipedia.org/wiki/App_Store_(iOS)
Apple WWDC -http://148apps.biz/app-store-metrics/
http://www.businessinsider.com/apple-we-had-20-billion-app-downloads-last-year-2013-1
Slide 9
Slide 9 text
iOS Bootcamp
Classifica
1. Games
2. Education
3. Entertainment
4. Lifestyle
5. Books
Slide 10
Slide 10 text
iOS Bootcamp
Think different
I contro del mondo Apple
• hardware costoso
• unico evento ufficiale la WWDC
• politica di update Xcode & SDK
• risorse sotto NDA
Slide 11
Slide 11 text
iOS Bootcamp
Think different
I pro del mondo Apple
• WWDC di qualità
• risorse di qualità (soprattutto la docs)
• strumenti curati e performanti
• iOS SDK
Slide 12
Slide 12 text
iOS Bootcamp @ ITIS
TIOBE: Top 10 January 2013
Source: http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html
Slide 13
Slide 13 text
iOS Bootcamp @ ITIS
TIOBE: Long Term Trends
Source: http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html
Slide 14
Slide 14 text
iOS Bootcamp @ ITIS
TIOBE: Objective-C
Source: http://www.tiobe.com/index.php/paperinfo/tpci/Objective-C.html
Programming Language of the Year
Slide 15
Slide 15 text
iOS Bootcamp @ ITIS
Requisiti
Slide 16
Slide 16 text
iOS Bootcamp @ ITIS
Requisiti
• Apple ID (gratuito)
• Computer Apple (iMac, MacBook)
• Apple Developer Program (per distribuire)
• Mac OS X (ovviamente)
• Xcode (gratis dal Mac App Store)
• Device (iPod, iPad o iPhone)
Slide 17
Slide 17 text
iOS Bootcamp @ ITIS
Requisiti
• Conoscere il paradigma OOP
• Conoscere il linguaggio C
• Conoscere l’Objective-C & SDK
• Conoscere le guideline Apple
Slide 18
Slide 18 text
iOS Bootcamp @ ITIS
Requisiti
Per fare delle prove non è necessario:
• Possedere un device
• Acquistare un Apple Developer Program
Slide 19
Slide 19 text
iOS Bootcamp @ ITIS
Apple Developer
Program
Slide 20
Slide 20 text
iOS Bootcamp @ ITIS
Apple Developer Program
• sottoscrizione di un anno che da accesso a tutte le
risorse tecniche e consente di pubblicare le
proprie app sull’App Store
• a pagamento (circa 80 € all’anno) ed è acquistabile
online sul il sito Apple
• acquistabile da aziende, privati ed università
Slide 21
Slide 21 text
iOS Bootcamp @ ITIS
iOS Developer
Program
$99/year App Store / 100 device
iOS Developer
Enterprise Program
$299/year NO App Store / ∞ device
iOS Developer
University Program
free NO App Store / 200 person
Apple Developer Program
Slide 22
Slide 22 text
iOS Bootcamp @ ITIS
Apple Developer Program
• Member Center
gestione utenti, sottoscrizioni e rinnovi
• iOS Provisioning Portal
certificati, device abilitati, app
• iTunes Connect
app submission, sales and trends e pagamenti
Slide 23
Slide 23 text
iOS Bootcamp
Concetti
• Certificati
Identificano univocamente un attore
• Devices
Elenco dei device abilitati al testing
• App IDs
Identificativi univoci delle app
• Provisioning
E’ un asset che unisce i tre concetti precedenti
iOS Bootcamp
Device Specs
• GSM Arena
http://www.gsmarena.com/apple-phones-48.php
• the iPhoneWiki
http://theiphonewiki.com/wiki/
• iPhone Dev Wiki
http://iphonedevwiki.net/index.php/Main_Page
Slide 31
Slide 31 text
iOS Bootcamp @ ITIS
SDK
Slide 32
Slide 32 text
iOS Bootcamp @ ITIS
iOS
• Sistema opertivo mobile
archietture ARM, multitasking, CocoaTouch, multi-
touch GUI
• Kernel XNU (stesso del MAC OS X)
sviluppato inizialmente da NeXT per il NeXTSTEP
os è un kernel ibrido
•Inizialmente conosciuto come iPhone
Slide 33
Slide 33 text
iOS Bootcamp @ ITIS
iOS SDK
• Librerie e strumenti di sviluppo
• Prima release Marzo 2008
• Side by side con Xcode e Mac OS
Slide 34
Slide 34 text
iOS Bootcamp @ ITIS
Strumenti
• Xcode
L’ambiente di sviluppo naturale per le applicazioni.
• Simulator
Lo strumento di test e debug per definizione.
• Profiler
L’applicazione per l’analisi e la profilazione del
codice.
Slide 35
Slide 35 text
iOS Bootcamp @ ITIS
Xcode
• Ambiente di sviluppo (IDE)
• Objective-C / Objective-C++ / C++ / C
• Source Control (Subversion / Git)
• Interface Builder
iOS Bootcamp @ ITIS
Instruments
• Strumento di analisi dell’applicazione
• Traccia e profila le attività del codice
• Integrato con Xcode
• Individua problemi di memoria, di prestazioni e di
consumo eccessivo delle risorse (batteria,
memoria, CPU etc)
Slide 38
Slide 38 text
iOS Bootcamp @ ITIS
Demo
Slide 39
Slide 39 text
iOS Bootcamp @ ITIS
Risorse
Slide 40
Slide 40 text
iOS Bootcamp @ ITIS
Risorse
• Eventi
• Video
• Libri
• Blog
Slide 41
Slide 41 text
iOS Bootcamp @ ITIS
Eventi
• Apple WWDC
• Apple Tech Talk World Tour
• NSConference
• Pragma mark :)
http://lanyrd.com/topics/ios/
Slide 42
Slide 42 text
iOS Bootcamp @ ITIS
Video
• NSScreencast.com
• WWDC 2010 / 2011 / 2012 (only ADP)
• iOS Development Videos (only ADP)
• Lynda.com
• iDeveloper.tv
• Udemy.com
• Corso iOS - Università di pisa (iTunes)
Slide 43
Slide 43 text
iOS Bootcamp @ ITIS
Libri
• Programming in Objective-C
• Cocoa Design Patterns
• Pro Multithreading and Memory Management