iOS platform

Preview:

Citation preview

IOSPlatform Architecture & Development Options

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

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.

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

iDevices

• 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

• 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

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.

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

iOS Architecture

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

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

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

• 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

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

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

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?

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?

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

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

Questions?

Recommended