3. Reason #1: Numbers
The size of the mobile market is huge,
and growing exponentially
3 Pragma Night
giovedì 28 marzo 13 3
4. Reason #1: Numbers
Apple keeps holding a significant share
of the market, with a positive outlook
4 Pragma Night
giovedì 28 marzo 13 4
5. 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 Pragma Night
giovedì 28 marzo 13 5
6. Reason #2: Consistency
More than 80% of devices already run iOS 6
6 Pragma Night
giovedì 28 marzo 13 6
7. Reason #3: Environment
Apple’s mission:
create an environment around
the user, not just sell products
• 500+ milion iTunes accounts,
with credit card
• the iOS customer is much
more willing to pay than
other platforms’ customer
7 Pragma Night
giovedì 28 marzo 13 7
8. 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 Pragma Night
giovedì 28 marzo 13 8
9. 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 Pragma Night
giovedì 28 marzo 13 9
10. 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 Pragma Night
giovedì 28 marzo 13 10
11. 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 Pragma Night
giovedì 28 marzo 13 11
12. Reason #5: Fun!
Most popular app categories
1. Games ~ 140000 active apps @ $0.89 avg.
2. Education ~ 90000 active apps
3. Entertainment ~ 75000 active apps
@ $1.56 avg.
4. Lifestyle ~ 70000 active apps
5. Books ~ 55000 active apps
12 Pragma Night
giovedì 28 marzo 13 12
13. 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 Pragma Night
giovedì 28 marzo 13 13
14. Hidden complexity
• iPhone
• iPad
• iPod
Just 3 different devices?
14 Pragma Night
giovedì 28 marzo 13 14
15. Devices
iPhone 3GS iPod 4th iPad 2
iPhone 4 iPod 5th iPad 3
iPhone 4s iPad 4
iPhone 5 iPad Mini
15 Pragma Night
giovedì 28 marzo 13 15
16. Display
iPhone 4 / 4S iPhone 5
iPhone 3GS
iPod 4th gen iPod 5th gen
320x480 px 640x480 px 640x1136 px
116 ppi 326 ppi 332 ppi
16 Pragma Night
giovedì 28 marzo 13 16
19. 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
19 Pragma Night
giovedì 28 marzo 13 19
20. Requirements
20 Pragma Night
giovedì 28 marzo 13 20
21. 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 Pragma Night
giovedì 28 marzo 13 21
22. Skill requirements
• Object Oriented Programming
• C language
• Objective-C language & iOS SDK
• Apple guidelines
• Provisioning procedures
22 Pragma Night
giovedì 28 marzo 13 22
23. Membership requirements
• Apple ID (free)
• Apple Developer Program (ADP) subscription
23 Pragma Night
giovedì 28 marzo 13 23
24. Apple Developer
Program
24 Pragma Night
giovedì 28 marzo 13 24
25. Apple Developer Program
Developer Programs
Name Price Deployment
iOS Developer
$99/year App Store / 100 devices
Program
iOS Developer
$299/year NO App Store / ∞ devices
Enterprise Program
iOS Developer
free NO App Store / 200 people
University Program
25 Pragma Night
giovedì 28 marzo 13 25
26. 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 Pragma Night
giovedì 28 marzo 13 26
27. 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
27 Pragma Night
giovedì 28 marzo 13 27
28. Certificates
• Development Certificate
Each person in the team has his own
• Distribution Certificate
There’s one for the whole company (or single
developer)
28 Pragma Night
giovedì 28 marzo 13 28
29. 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
29 Pragma Night
giovedì 28 marzo 13 29
30. App IDs
• Bundle Identifier
unique identifier for the app
• Reverse domain name
e.g. com.mycompany.BestAppEver
• Wildcard character
e.g. com.mycompany.*
30 Pragma Night
giovedì 28 marzo 13 30
31. 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 Pragma Night
giovedì 28 marzo 13 31
32. 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 Pragma Night
giovedì 28 marzo 13 32
33. Step by step
ADP $$ Certificates
MM
Development Distribution
O
MCertificates Certificate
MM Team Devices
MM Customers Devices
O
M MM
New APP App ID Provisioning M O
M
Xcode Install Build & sign
giovedì 28 marzo 13 33
35. 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
35 Pragma Night
giovedì 28 marzo 13 35
37. iOS SDK
• Libraries and development tools
• First release in March 2008
• Side by side with Xcode e Mac OS
37 Pragma Night
giovedì 28 marzo 13 37
38. Tools
• Xcode
The natural environment for app development
• iOS Simulator
The handy way of running and testing apps
• Instruments
The perfect tool for code analysis and profiling
38 Pragma Night
giovedì 28 marzo 13 38
39. 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 Pragma Night
giovedì 28 marzo 13 39
40. 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 Pragma Night
giovedì 28 marzo 13 40
41. 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 Pragma Night
giovedì 28 marzo 13 41
42. Resources
42 Pragma Night
giovedì 28 marzo 13 42
43. Resources
• Events
• Videos
• Books
43 Pragma Night
giovedì 28 marzo 13 43
44. Events
• Apple WWDC
• Apple Tech Talk World Tour
• NSConference
• Pragma mark :)
http://lanyrd.com/topics/ios/
44 Pragma Night
giovedì 28 marzo 13 44
45. 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 Pragma Night
giovedì 28 marzo 13 45
46. Books
• Programming in Objective-C
• Cocoa Design Patterns
• Pro Multithreading and Memory Management
for iOS and Mac OS X
46 Pragma Night
giovedì 28 marzo 13 46
47. Thank You!
matteo.battaglio@pragmamark.org
Pragma Night
giovedì 28 marzo 13 47