iOS Ecosystem
Upcoming SlideShare
Loading in...5
×
 

iOS Ecosystem

on

  • 1,484 views

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

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

Statistics

Views

Total Views
1,484
Views on SlideShare
1,479
Embed Views
5

Actions

Likes
2
Downloads
16
Comments
0

2 Embeds 5

http://www.linkedin.com 3
https://twitter.com 2

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

CC Attribution-ShareAlike LicenseCC Attribution-ShareAlike License

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

iOS Ecosystem iOS Ecosystem Presentation Transcript

  • iOS Ecosystem Matteo Battaglio Pragma Night @ Talent Garden 1giovedì 28 marzo 13 1
  • Why iOS? 2 Pragma Nightgiovedì 28 marzo 13 2
  • Reason #1: Numbers The size of the mobile market is huge, and growing exponentially 3 Pragma Nightgiovedì 28 marzo 13 3
  • Reason #1: Numbers Apple keeps holding a significant share of the market, with a positive outlook 4 Pragma Nightgiovedì 28 marzo 13 4
  • 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 Nightgiovedì 28 marzo 13 5
  • Reason #2: Consistency More than 80% of devices already run iOS 6 6 Pragma Nightgiovedì 28 marzo 13 6
  • 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 Nightgiovedì 28 marzo 13 7
  • 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 Nightgiovedì 28 marzo 13 8
  • 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 Nightgiovedì 28 marzo 13 9
  • 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 Nightgiovedì 28 marzo 13 10
  • 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 Nightgiovedì 28 marzo 13 11
  • 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 Nightgiovedì 28 marzo 13 12
  • 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 Nightgiovedì 28 marzo 13 13
  • Hidden complexity • iPhone • iPad • iPod Just 3 different devices? 14 Pragma Nightgiovedì 28 marzo 13 14
  • Devices iPhone 3GS iPod 4th iPad 2 iPhone 4 iPod 5th iPad 3 iPhone 4s iPad 4 iPhone 5 iPad Mini 15 Pragma Nightgiovedì 28 marzo 13 15
  • 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 Nightgiovedì 28 marzo 13 16
  • Display iPad 1 / 2 iPad 3 / 4 iPad mini 1024x768 px 2048x1536 px 1024x768 px 132 dpi 264 dpi 162 dpi 17 Pragma Nightgiovedì 28 marzo 13 17
  • Processor / RAM ARMv7 ARMv7s 1 GB iPad 3 iPhone 5 iPad 4 iPhone 4S 512 MB iPhone 4 iPad 2 iPod 5th iPhone 3Gs iPad 1 256 MB iPod 3rd iPod 4th 18 Pragma Nightgiovedì 28 marzo 13 18
  • 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 Nightgiovedì 28 marzo 13 19
  • Requirements 20 Pragma Nightgiovedì 28 marzo 13 20
  • 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 Nightgiovedì 28 marzo 13 21
  • Skill requirements • Object Oriented Programming • C language • Objective-C language & iOS SDK • Apple guidelines • Provisioning procedures 22 Pragma Nightgiovedì 28 marzo 13 22
  • Membership requirements • Apple ID (free) • Apple Developer Program (ADP) subscription 23 Pragma Nightgiovedì 28 marzo 13 23
  • Apple Developer Program 24 Pragma Nightgiovedì 28 marzo 13 24
  • 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 Nightgiovedì 28 marzo 13 25
  • 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 Nightgiovedì 28 marzo 13 26
  • 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 Nightgiovedì 28 marzo 13 27
  • 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 Nightgiovedì 28 marzo 13 28
  • 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 Nightgiovedì 28 marzo 13 29
  • 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 Nightgiovedì 28 marzo 13 30
  • 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 Nightgiovedì 28 marzo 13 31
  • 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 Nightgiovedì 28 marzo 13 32
  • 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 & signgiovedì 28 marzo 13 33
  • SDK 34 Pragma Nightgiovedì 28 marzo 13 34
  • 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 Nightgiovedì 28 marzo 13 35
  • Cocoa Touch frameworks UIKit 36 Pragma Nightgiovedì 28 marzo 13 36
  • iOS SDK • Libraries and development tools • First release in March 2008 • Side by side with Xcode e Mac OS 37 Pragma Nightgiovedì 28 marzo 13 37
  • 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 Nightgiovedì 28 marzo 13 38
  • 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 Nightgiovedì 28 marzo 13 39
  • 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 Nightgiovedì 28 marzo 13 40
  • 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 Nightgiovedì 28 marzo 13 41
  • Resources 42 Pragma Nightgiovedì 28 marzo 13 42
  • Resources • Events • Videos • Books 43 Pragma Nightgiovedì 28 marzo 13 43
  • Events • Apple WWDC • Apple Tech Talk World Tour • NSConference • Pragma mark :) http://lanyrd.com/topics/ios/ 44 Pragma Nightgiovedì 28 marzo 13 44
  • 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 Nightgiovedì 28 marzo 13 45
  • Books • Programming in Objective-C • Cocoa Design Patterns • Pro Multithreading and Memory Management for iOS and Mac OS X 46 Pragma Nightgiovedì 28 marzo 13 46
  • Thank You! matteo.battaglio@pragmamark.org Pragma Nightgiovedì 28 marzo 13 47