iOS platform

21
IOS Platform Architecture & Development Options

Transcript of iOS platform

Page 1: iOS platform

IOSPlatform Architecture & Development Options

Page 2: iOS platform

Overview

• Introduction• iOS Architecture

• COCOA Touch Layer• Media Layer• Core Services Layer• Core OS Layer

• Platform Characteristics• Native Apps vs. Web Apps vs. Hybrid Apps• iOS Application Development Options

Page 3: iOS platform

Introduction• iOS is Apple’s mobile operating system.• Originally released for iPhone and iPod Touch, it has been

extended to support devices like iPad and Apple TV.• Derived from OSX, with which it shares the Darwin

foundation and is therefore a UNIX-like operating system by nature.

• Darwin is an open source POSIX compliant operating system released by Apple Inc. in 2000.

• The user-interface of iOS is based on concept of direct manipulation, using multi-touch gestures.

Page 4: iOS platform

History• Unveiled with the iPhone at the MacWorld Conference &

Expo, January 9, 2007 and released in June, 2007.• On March 6, 2008, Apple released the first beta of native

Software Development Kit (SDK), along with a new name for the operating system : “iPhone OS”.

• In June, 2010, Apple rebranded iPhone OS as “iOS”.Version Build Release Date Highest version for

3.1.3 (Discontinued) 7E18 February 2, 2010 iPhone, iPod Touch

4.2.1 (Discontinued) 8C148 November 22, 2010 iPhone 3G, iPod Touch

5.1.1 (Discontinued) 9B206 May 7, 2012 iPod Touch, iPad

5.1 (Current) 10A406E September 24, 2012 Apple TV

6.0 (Current) 10A403 (Golden Master) , 10A405, 10A406

September 12, 2012 iPhone 3GS, iPhone 4, iPhone 4S, iPhone 5, iPod Touch, iPad, iPad 2

Page 5: iOS platform

iDevices

Page 6: iOS platform

• iPhone & iPod• Display: 3.5in, 4in• Resolution: 320x480(HVGA) at 163ppi, 640x960 at 326ppi,

1136x640• Aspect Ratio: 2:3, 16:9• Storage: 4GB, 8GB, 16GB, 32GB, 64GB• Processor: 620MHz, 833MHz, 1GHz Apple A4, 1GHz dual-core

Apple A5, Apple A6• Bus Frequency and width: 103MHz (32-bit), 100MHz (32-bit),

100MHz (64-bit), 250MHz (64-bit)• Memory: 128MB, 256MB, 512MB, 1GB• Devices: iPhone 3G, iPhone 3GS, iPhone 4, iPhone 4S, iPhone

5, iPod Touch

Page 7: iOS platform

• iPad• Display: 9.7in, 4:3 aspect ratio• Resolution: 1024x768• Storage: 16GB, 32GB, 64GB• Processor: 1GHz ARM Cortex-A8, 1GHz dual-core ARM

Cortex-A9• Bus Frequency and width: 100MHz (64-bit), 250MHz (64-bit)• Memory: 256MB, 512MB, 1GB• Devices: iPad, iPad2, iPad3

• Apple TV• Storage: 8GB• Memory: 256MB, 512MB• Devices: Apple TV 4.0, Apple TV 5.0

Page 8: iOS platform

Hardware• Proximity Sensor

deactivates the display and touchscreen when the device is brought near the face during a call.

• 3-axis Accelerometer

senses the orientation of the phone and changes the display accordingly.

• Ambient Light Sensor

adjusts the display brightness which in turn saves battery power.

• Gyroscopic Sensor

enhances the perception of how the phone is moved.

Page 9: iOS platform

Platform Characteristics• The Display is Paramount regardless of its size• Device Orientation can change• Apps Respond to Gestures, Not Clicks• People Interact with One App at a Time• Preferences are available in Settings• Onscreen User Help Is Minimal• Most iOS Apps Have a Single Window• Two Types of Software Run in iOS

• iOS Apps• Web Content

• Safari on iOS Provides the Web Interface

Page 10: iOS platform

iOS Architecture

Page 11: iOS platform

Cocoa Touch Layer• Auto Layout• Storyboards• Document Support• Multitasking• Printing• UI State Preservation• Apple Push Notification Service• Local Notifications• Gesture Recognizers• Peer-to-Peer Services

• GameKit framework

• Standard System View Controllers• UINavigatoinController, UITabBarController, UIPageView Controller etc.

• External Display Support

Page 12: iOS platform

Cocoa Touch Frameworks• AddressBookUI.framework• EventKitUI.framework: calendar- based events

• GameKit.framework• iAd.framework• MapKit.framework• MessageUI.framework• Twitter.framework• UIKit.framework

• Accelerometer data• The built-in camera (where present)• The user’s photo library• Device name and model information• Battery state information• Proximity sensor information

Page 13: iOS platform

Media Layer• Graphics Technologies

• Core Graphics (Quartz)• Core Animation• Core Image• OpenGL ES and GLKit• Core Text• Image I/O• Assets Library framework

• Audio Technologies• Media Layer framework• AV Foundation framework• Open AL• Core Audio framework• Supported file formats: AAC Protected (MP4), ALAC, A-law, IMA/ADPCM

(IMA4), Linear PCM, µ-law, DVI/Intel IMA ADPCM, Microsoft GSM 6.10, AES3-2003

Page 14: iOS platform

• Video Technologies• UIImagePickerController• Media Player framework• AV Foundation framework• Core Media• Supported file formats: .mov, .mp4, .m4v, .3gp• Compression Standards: H.264 video, up to 1.5Mbps, 640 by 480 pixels

H.264 video, up to 768Kbps, 320 by 240 pixels

MPEG-4 video, up to 2.5 Mbps, 640 by 480 pixels

• AirPlay: AirPlay is a technology that lets your application stream audio to Apple TV and to third-party AirPlay speakers and receivers. Support is built-in in:

• AV Foundation framework • Core Audio

Page 15: iOS platform

Core Services Layer• Frameworks

• Accounts Framework• Address Book Framework• Ad Support Framework• CFNetwork Framework• Core Data Framework• Core Foundation Framework• Core Location Framework• Core Media Framework• Core Motion Framework• Core Telephony Framework• Event Kit Framework• Foundation Framework• Newsstand Kit Framework• Pass Kit Framework• Quick Look Framework• Social Framework• Store Kit Framework• System Configuration

Framework

• High Level Features• iCloud Storage

• Automatic Reference Counting

• Block Objects

• Data Protection

• File-Sharing Support

• Grand Central Dispatch

• In-App Purchase

• SQLite

• XML Support

Page 16: iOS platform

Core OS Layer• Frameworks

• Accelerate Framework• Core Bluetooth Framework• External Accessory Framework• Generic Security Services Framework• Security Framework• System

• LibSystem library• Threading (POSIX threads)• Networking (BSD sockets)• File-system access• Standard I/O• Bonjour and DNS services• Locale information• Memory allocation• Math computations

Page 17: iOS platform

Native Apps vs. Web Apps vs. Hybrid Apps

• Criteria Aspects• User Interface• Development• Capabilities• Monetization• Installation/Updates• Versioning• Strengths• Weaknesses

•What is a Web App?

•What is a Native App?

•What is a Hybrid App?

Page 18: iOS platform

How to decide?• Does the mobile app require the use of any special

device features (i.e., camera, the camera’s flash, accelerometer, etc.)?

• What’s my budget?• Does the mobile app need to be Internet-enabled?• Do I need to target all mobile devices or just certain

devices?• What programming languages do I already know?• How important is speed and performance?• How will this app be monetized effectively?

Page 19: iOS platform

Development Options

• Apple Xcode: objective-C• Ansca Corona: Lua• DragonFire: C, C++• Novell Mono Touch: C#• Genuitec MobiOne: JavaScript/HTML/CSS• Appcelerator Titanium Mobile:

JavaScript/HTML/CSS• RhoMobile: JavaScript/HTML/CSS• PhoneGap: JavaScript/HTML/CSS• ApplicationCraft

Page 20: iOS platform

iOS SDK• Tools shipped with SDK:

• Xcode• Professional text editor• Debugger• GCC Compiler

• Interface Builder• For creating user interface

• Instruments• For optimizing applications

• Dash Code• For creating web applications for safari

• iPhone simulator

Page 21: iOS platform

Questions?