ios platform & architecture

65
Apple Apple

Upload: krishguttha

Post on 16-Jan-2015

833 views

Category:

Technology


2 download

DESCRIPTION

 

TRANSCRIPT

Page 1: iOS Platform & Architecture

AppleApple

Page 2: iOS Platform & Architecture

The History of Apple, Inc.

Page 3: iOS Platform & Architecture

Why “Apple”?Steve Jobs, Steve Wozniak, and Mike Markkula formed

Apple Computer on April 1, 1976, after

taking out a $250,000 loan. At the time, the

company to beat was Atarti, and “Apple” came before them alphabetically, and also therefore in the phone book.

Page 4: iOS Platform & Architecture

Jobs and Woz

First met in 1971; Jobs was 16, Wozniak was 21Steve Wozniak built a computer to run on the

6502 chip from MOS technology, but Jobs had the idea to sell it

Page 5: iOS Platform & Architecture

Apple IFirst demonstrated in April

1976Used a TV as a display

Many machines had no display

Cassette interfaceUsed fewer parts than anything in its class

Apple Computer’s first logo, designed by Ronald Wayne, shows Isaac Newton

underneath an apple tree.

Page 6: iOS Platform & Architecture

Apple IIFirst introduced in 1977

Recognized by many as being the first “computer”Production ended in 1993; Apple had sold over two

million unitsUnlike Apple I, this version included graphics

Page 7: iOS Platform & Architecture

1984: Macintosh

Page 8: iOS Platform & Architecture

Introduced on January 24, 1984, the Macintosh was

the world’s first truly personal computer, with a

user-friendly Graphical User Interface (GUI).Introduced desktop

publishing with Adobe PageMaker

Macintosh’s first icons were created by graphic designer Susan Kare.

Created an entire Mac Family:MacPlus (1986)Mac SE and Mac II

(1987)Mac Classic and Mac

LC (1990)Macintosh Portable

(1989)PowerBook (1991)

Page 9: iOS Platform & Architecture

AIM AllianceIn 1991, Apple

Computer, IBM, and Motorola joined to

create the PowerPC processors

Apple & IBM created two side projects

called Taligent and Kaleida Labs.

Page 10: iOS Platform & Architecture

Started Power Macintosh line in 1994 using PReP (PowerPC Reference Platform)

Produced the first hand-held PDA, the Newton, in 1993

Did not take off for Apple, but was the forerunner for PalmPilot and Palm PC

AIM Alliance

Page 11: iOS Platform & Architecture

Power StruggleJobs was fired in 1985 by

the board of directors, but after three

unsuccessful CEOs throughout the early-mid 90s, was brought back in

1997 and assumed the position of interim CEO.

Page 12: iOS Platform & Architecture

iMac is BornJobs first recreated desktop, combining

the monitor and CPU into one

Sold over one million units a year

Introduced Apple’s new emphasis on

design and aesthetics

Page 13: iOS Platform & Architecture

Mac OS X

Jobs also created an entirely new operating system

Wanted to emphasize the “digital lifestyle”

Page 14: iOS Platform & Architecture

iPodIntroduced on

October 23, 20015GB hard drive; 1000

songsApple had already

registered the name for a group of internet

kiosks that were never implemented

In July 2005, iPod’s U.S. market share was estimated at 74%

January 2007, Apple reported record annual earnings of $7.1 billion, 48% of which was from iPod sales.

Page 15: iOS Platform & Architecture

iPod + iTunes

Launched in 2003; had 2 million downloads in 16 days

Over 2 billion songs sold1.2 billion songs sold in 2006 alone

Page 16: iOS Platform & Architecture

Apple, Inc.In January, Steve Jobs

announced the company would

change it’s name to Apple, Inc. to

incorporate their many endeavors

Page 17: iOS Platform & Architecture

Technical Specifications

Screen size 3.5 inches

Screen

resolution

320 by 480 at 160 ppi

Input method Multi-touch

Operating

system

OS X

Storage 4GB or 8GB

GSM Quad-band (MHz: 850, 900, 1800, 1900)

Wireless data Wi-Fi (802.11b/g) + EDGE + Bluetooth 2.0

Camera 2.0 mega pixels

Battery Talk / Video / Browsing - Up to 5 hours

Audio playback - Up to 16 hours

Dimensions 4.5 x 2.4 x 0.46 inches / 115 x 61 x 11.6mm

Weight 4.8 ounces / 135 grams

Page 18: iOS Platform & Architecture

iPhone Comparison Chart

iPhone 516GB/32GB/64GB

iPhone 4S16GB/ 32GB/64GB

iPhone 416GB/ 32GB

iPhone 3GS16GB/ 32GB

iPhone 3G8GB/ 16GB

iPhone4GB/8GB

Songs Held

4,000/8,000/16,000

4,000/ 8,000/16,000

4,000/ 8,000

4,000/8,000 2,000/ 4,000

1,000/ 2,000

Screen Size** 4 3.5 3.5 3.5 3.5 3.5

Resolution 1136x640 960x640 960x640 480x320 480x320 480x320

Processor Apple A6 Apple A5 1 Ghz Apple A4 600 Mhz Samsung ARM Cortex-A8

412 Mhz Samsung ARM

412 Mhz Samsung ARM

Connectivity Wi-Fi, 4G LTE, UMTS/HSDPA/ HSUPA/3G, GSM, CDMA, Bluetooth

Wi-Fi, UMTS/ HSDPA/ HSUPA/3G, GSM, CDMA, Bluetooth

Wi-Fi, UMTS/ HSDPA/ HSUPA/3G, GSM, CDMA, Bluetooth

Wi-Fi, UMTS/3G,GSM, Bluetooth

Wi-Fi, UMTS/3G,GSM, Bluetooth

Wi-Fi, GSM, EDGE, Bluetooth

Carrier AT&T, Sprint,Verizon

AT&T, Sprint,Verizon

AT&T,Verizon

AT&T AT&T AT&T

A-GPS? Yes Yes Yes Yes Yes No

Max. OS iOS 6 iOS 6 iOS 6 iOS 5 iOS 4, limited iOS 3

Camera 2 cameras: 8 Megapixel& 720p HD

2 cameras: 8 Megapixel& VGA

2 cameras: 5 Megapixel& VGA

3 Megapixel 2 Megapixel 2 Megapixel

RecordsVideo?

1080p HDat 30 fps

1080p HDat 30 fps

720p HDat 30 fps

VGAat 30 fps

No No

FaceTime Yes Yes Yes No No No

Siri Yes Yes No No No No

Weight (ounces)

3.95 4.9 4.8 4.8 4.7 4.8

Size** 4.87 x 2.31x .30

4.5 x 2.31x .37

4.51 x 2.31x .37

4.5 x 2.4x .48

4.5 x 2.4x .48

4.5 x 2.4x .46

Battery Life(in hours)

Talk: 8Video: 10Web: 10Audio: 40

Talk: 8Video: 10Web: 9Audio: 40

Talk: 7Video: 10Web: 10Audio: 40

Talk: 5Video: 10Web: 9Audio: 30

Talk: 5Video: 7Web: 5Audio: 24

Talk: 8Video: 7Web: 6 Audio: 24

Colors Black, White Black, White Black, White Black, White Black, White Black

Pricew/contract

US$199/$299/$399

US$199/ $299/$399, later$99

$199/ $299, later $99, and then free

$199/ $299,later $49, and then free

$199/ $299

$499/ $599,later $399

Page 19: iOS Platform & Architecture

FaceTime Yes Yes Yes No No No

Siri Yes Yes No No No No

Weight (ounces)

3.95 4.9 4.8 4.8 4.7 4.8

Size** 4.87 x 2.31x .30

4.5 x 2.31x .37

4.51 x 2.31x .37

4.5 x 2.4x .48

4.5 x 2.4x .48

4.5 x 2.4x .46

Battery Life(in hours)

Talk: 8Video: 10Web: 10Audio: 40

Talk: 8Video: 10Web: 9Audio: 40

Talk: 7Video: 10Web: 10Audio: 40

Talk: 5Video: 10Web: 9Audio: 30

Talk: 5Video: 7Web: 5Audio: 24

Talk: 8Video: 7Web: 6 Audio: 24

Colors Black, White Black, White Black, White Black, White Black, White Black

Pricew/contract

US$199/$299/$399

US$199/ $299/$399, later$99

$199/ $299, later $99, and then free

$199/ $299,later $49, and then free

$199/ $299

$499/ $599,later $399

iphone Comparison Table

Page 20: iOS Platform & Architecture

The iOS Platform

From iOS reference LibraryiPhone Human Interface Guidelines

http://developer.apple.com/library/ios/#documentation/UserExperience/Conceptual/MobileHIG/DevelopingSoftware/DevelopingSoftware.html

Page 21: iOS Platform & Architecture
Page 22: iOS Platform & Architecture
Page 23: iOS Platform & Architecture
Page 24: iOS Platform & Architecture
Page 25: iOS Platform & Architecture
Page 26: iOS Platform & Architecture
Page 27: iOS Platform & Architecture
Page 28: iOS Platform & Architecture
Page 29: iOS Platform & Architecture
Page 30: iOS Platform & Architecture
Page 31: iOS Platform & Architecture

Apple provides a complete ecosystem for developers, so you can focus on

making incredible apps.

Page 32: iOS Platform & Architecture

Xcode Xcode IDEIDE

Tools you’ll love to Tools you’ll love to useuse.

Page 33: iOS Platform & Architecture

Xcode FeaturesXcode FeaturesAssistant EditorThe Assistant button splits the editor in two, creating a secondary pane that automatically displays files that are most helpful to you, based on your current work, for instance displaying the corresponding header file to your current source file.

Source EditorWrite code using a professional editor with advanced code completion, code folding, syntax highlighting, and message bubbles that display warning, errors, and other context-sensitive information inline with your code.

Interface Builder Built-InDesign and test your user interface without writing a line of code, prototyping in minutes, then graphically connect your interface to the source within the Xcode editor.

iOS SimulatorWith the iOS SDK, Xcode can build, install, run, and debug Cocoa Touch applications in a Mac-based iOS Simulator for a rocket-fast development workflow.

Integrated Build SystemHandles the most complex builds, scaling to maximize the power of multi-core Macs, and will automatically sign, provision, and install iPhone apps onto a connected device.

CompilersFrom within Xcode or Terminal, you have a complete set of open-source C, C++, and Objective-C compilers optimized by Apple, scalable for fast multi-core compiles.

Page 34: iOS Platform & Architecture

Graphical DebuggerDebug your Mac, iOS Simulator, or USB-connected iPhone application directly within the Xcode editor as data tips show variable values with a mouse hover.

Static AnalysisFind bugs in your code before the application is even run by letting Xcode’s built-in static analyzer try out thousands of possible code paths in a few seconds, reporting potential bugs that could have remained hidden or nearly impossible to replicate.

OrganizerThe Organizer is a single window for managing projects, SCM repositories, app archives, and devices — including one-click setup of new iOS devices. The Organizer is also where you go to submit your Mac or iPhone app to the App Store.

SnapshotsBefore performing a big, risky operation on your project simply make a Snapshot (or let Xcode do it automatically for you) to save your good state, confidently knowing you can easily restore it later.

RefactoringRestructure your Objective-C application in a single operation, changing object hierarchies or names for all occurrences within your code and user interface designs.

Complete DocumentationSearch for anything within Xcode and the documentation viewer will find it, either on your Mac or on the Apple Developer website.

Version EditorXcode’s Version editor displays a running timeline of commits, helps you determine blame, and graphically goes back in time to compare source files, with full support for Subversion and Git source control (SCM) systems.

Page 35: iOS Platform & Architecture

Live IssuesJust like a word processor highlights spelling errors, Live Issues highlights common coding mistakes, without the need to click ‘build’ first.

Fix-itBeyond just reporting errors, Xcode is intelligent enough to fix the problem for you. When you make a coding mistake, Xcode will immediately alert you, and a single keyboard shortcut will instantly “fix-it” for you, so you won’t miss a beat while coding.

Quick HelpStreamlined documentation on API usage, definitions, or sample code are available within the Utility area of Xcode, without taking focus away from your code.

Page 36: iOS Platform & Architecture

InstrumentsInstrumentsData RecordingTell Instruments which application to analyze, which instruments to use, and simply click the big red button as data is collected and stored for further analysis.

Visual ComparisonAs data is recorded and displayed over time it is easy to see relationships, both between different types of collected data, or the same data collected over multiple runs.

Drill DownInspect data spikes on the graph to see what code is executing at the time, then easily jump into Xcode to fix the problem.

Play BackCreate an ad-hoc test harness by recording a user interacting with your application, then play back the recording to see how your code changes affect the performance.

Instrument LibraryChoose any of the bundled instruments in the library from low-level CPU, network, or file activity, to advanced graphics and user-event instruments.

Zombie DetectionHard-to-find application errors and crashes can be trapped within Instruments when an application tries to access memory no longer available.

Source ViewDrill down through data points, sort to find the most CPU-consuming methods, and view the code directly within the Instruments UI to pinpoint the problem.

Page 37: iOS Platform & Architecture

Low-Overhead SamplingWithout launching the Instruments application it is possible to begin sampling performance data with a simple keypress, using very low overhead to collect high-fidelity information.

Custom InstrumentsCreate your own Instruments using DTrace and the Instruments custom builder.

System TraceTaking up very little resources, Instruments records information about all the processes on your system, revealing performance bottlenecks caused as processes interact.

Page 38: iOS Platform & Architecture

IOSIOSiOS is the world’s most advanced mobile operating system, continually redefining what people can do with a mobile device. Together, the iOS SDK and Xcode IDE make it easy for developers to create revolutionary mobile apps.

Page 39: iOS Platform & Architecture

Cocoa TouchCocoa Touch

FoundationThe building blocks of any Cocoa app, including collection classes and all the base objects used throughout Cocoa.

UIKitFor iOS, the Cocoa Touch frameworks focus on touch-based interfaces and optimization. The UIKit provides the basic tools and infrastructure you

need to implement graphical, event-driven apps in iOS.

Page 40: iOS Platform & Architecture

Below is a small sampling of the available frameworks included in Cocoa Touch:

Audio and VideoCore AudioOpenALMedia LibraryAV Foundation

Networking and InternetBonjourWebKitBSD Sockets

Data ManagementCore DataSQLite

Graphics and AnimationCore AnimationOpenGL ESQuartz 2D

User ApplicationsAddress BookCore LocationMap KitStore Kit

Page 41: iOS Platform & Architecture

Device Characteristics• An iOS-based device is not a desktop or laptop computer, and an iPhone

application is not the same as a desktop application. • Designing software for iOS-based devices requires a state of mind that

may or may not be second nature to you. • In particular, if the bulk of your experience lies in developing desktop

applications, you should be aware of the significant differences between designing software for a mobile device and for a computer.

Page 42: iOS Platform & Architecture

Devices Supported

Page 43: iOS Platform & Architecture

Design Considerations

Screen Size is Compact• Use the compact screen size as a motivation to focus the user interface

on the essentials. • You don’t have the room to include design elements that aren’t absolutely

necessary, and crowding user interface elements makes your application unattractive and difficult to use.

Page 44: iOS Platform & Architecture

Video Formats• iPad/iPhone/iPod Supported Video Formats• H.264 video up to 720p, 30 frames per second, Main Profile level 3.1

with AAC-LC audio up to 160 Kbps, 48kHz, stereo audio in .m4v, .mp4, and .mov file formats;

• MPEG-4 video, up to 2.5 Mbps, 640 by 480 pixels, 30 frames per second, Simple Profile with AAC-LC audio up to 160 Kbps, 48kHz, stereo audio in .m4v, .mp4, and .mov file formats;

• Motion JPEG (M-JPEG) up to 35 Mbps, 1280 by 720 pixels, 30 frames per second, audio in ulaw, PCM stereo audio in .avi file format

• http://www.aneesoft.com/tutorials/ipad-supported-video-format.html• http://www.ilounge.com/index.php/articles/comments/the-complete-guide

-to-ipod-video-formats-and-display-resolutions/

Page 45: iOS Platform & Architecture

TV Formats• iPad Supported TV Formats• Support for 1024 by 768 pixels with Dock Connector to VGA Adapter; • 576p and 480p with Apple Component AV Cable; • 576i and 480i with Apple Composite AV Cable

Page 46: iOS Platform & Architecture

Audio Formats • iPad Supported Audio Formats• Frequency response: 20Hz to 20,000Hz • Audio formats supported: HE-AAC (V1), AAC (16 to 320 Kbps),

Protected AAC (from iTunes Store), MP3 (16 to 320 Kbps), MP3 VBR, Audible (formats 2, 3, and 4), Apple Lossless, AIFF, and WAV

• User-configurable maximum volume limit

Page 47: iOS Platform & Architecture

Design Considerations• Memory is Limited• Memory is a critical resource in iOS.• iOS virtual memory model does not include disk swap space, you must

take care to avoid allocating more memory than is available on the device

• When low-memory conditions occur, iOS warns the running application and may terminate the application if the problem persists.

• Be sure your application is responsive to memory usage warnings and cleans up memory in a timely manner.

• As you design your application, strive to reduce the application’s memory.

Page 48: iOS Platform & Architecture

Design Considerations• People See One Screen at a Time• One of the biggest differences between the iOS environment and the

computer environment is the window paradigm. With the exceptions of some modal views, users see a single application screen at a time on an iOS-based device. iPhone applications can contain as many different screens as necessary, but users access and see them sequentially, not simultaneously.

• If the desktop version of your application requires users to see several windows simultaneously, you need to decide if there’s a different way users can accomplish the same task in a single screen or a sequence of screens. If not, you should focus your iPhone application on a single subtask of your computer application, instead of trying to replicate a wider feature set.

Page 49: iOS Platform & Architecture

People Interact with 1 Application at a Time• Only one application is visible in the foreground at a time. • When people switch from one application to another, the previous

application quits and its user interface goes away. • Prior to iOS 4.0, this meant that the quitting application was immediately

removed from memory. • In iOS 4.0 and later, the quitting application transitions to the

background, where it may or may not continue running. • This feature, called multitasking, allows applications to remain in the

background until they are launched again or until they are terminated.

• Otherwise you need to save your program data and execution state• Use the Sandbox to do so.

Page 50: iOS Platform & Architecture

Onscreen User Help is Minimal• Mobile users don’t have the time to read through a lot of help content

before they can use your application. What’s more, you don’t want to give up valuable space to display or store it. A hallmark of the design of iOS-based devices is ease of use, so it’s crucial that you meet users’ expectations and make the use of your application immediately obvious. There are a few things you can do to achieve this:• Use standard controls correctly. Users are familiar with the

standard controls they see in the built-in applications, so they already know how to use them in your application.

• Be sure the path through the information you present is logical and easy for users to predict. In addition, be sure to provide markers, such as back buttons, that users can use to find out where they are and how to retrace their steps.

Page 51: iOS Platform & Architecture

What Are Your Options?• You can create:

• An iPhone application, which is an application you develop using the iOS SDK to run natively on iOS-based devices.

• Web-only content, including web applications, which are websites that behave like built-in iPhone applications.

• A hybrid application, which is an iPhone application that provides access to web content primarily through a web-content viewing area, but includes some iOS user interface elements.

• iOS is also the development platform for the iPad and iPod Touch

Page 52: iOS Platform & Architecture

iPhone Applications• iPhone applications resemble the built-in applications on iOS-based

devices in that they reside on the device itself and take advantage of features of the iOS environment. • Users install iPhone applications on their devices and use them just

as they use built-in applications, such as Stocks, Maps, Calculator, and Mail.

• An iPhone application is quick to launch and easy to use. • Whether the application enables a task like sending email or provides

entertainment to users, it is characterized by responsiveness, simplicity, and a beautiful, streamlined user interface.

Page 53: iOS Platform & Architecture

Web-only Content• You have a few different options when it comes to providing web-only

content to iOS users:

Page 54: iOS Platform & Architecture

Web applications• Webpages that provide a focused solution to a task and conform to

certain display guidelines are known as web applications, because they behave similarly to the built-in iOS applications.

• A web application, like all web-only content, runs in Safari on iOS; users do not install it on their devices, instead they go to the web application’s URL.

Page 55: iOS Platform & Architecture

Optimized WebPages• Webpages that are optimized for Safari on iOS display and operate as

designed • Flash Player is not supported in this environment.

• Recent announcements lead to an expectation for future support• But for now any elements that rely on unsupported technologies, such

as plug-ins, Flash, and Java) are excepted. • In addition, an optimized webpage correctly scales content for the device

screen and is often designed to detect when it is being viewed on iOS-based devices, so that it can adjust the content it provides accordingly.

Page 56: iOS Platform & Architecture

Compatible WebPages• Webpages that are compatible with Safari on iOS display and operate as

designed (with the exception of any elements that rely on unsupported technologies, such as plug-ins, Flash, and Java). • A compatible webpage does not tend to take extra steps to optimize

the viewing experience on iOS-based devices, but the device usually displays the page successfully.

• If you have an existing website or web application, first ensure that it works well on iOS-based devices. • Also, you should consider creating a custom icon users can put on

their Home screens using the Web Clip feature. • In effect, this allows users to keep on their Home Screens a

bookmark to your website that looks like a native application icon.

Page 57: iOS Platform & Architecture

Hybrid Applications• With iOS, you can create an application that combines features of native

applications and webpages. • A hybrid application is a native iPhone application that provides most

of its structure and functionality through a web viewing area, but also tends to contain standard iOS user interface elements.• A hybrid application gives users access to web content with an

element called a web view (described in “Web Views”). • Precisely how you use a web view in your application is up to you, but

it’s important to avoid giving users the impression that your application is merely a mini web browser.

• A hybrid application should behave and appear like a native iPhone application; it should not draw attention to the fact that it depends upon web sources.

Page 58: iOS Platform & Architecture

Three Application Styles• Productivity• Utility• Immersive

Page 59: iOS Platform & Architecture

Productivity Applications• A productivity application enables tasks that are based on the

organization and manipulation of detailed information. • People use productivity applications to accomplish important tasks.• Mail is a good example of a productivity application.• Productivity applications often organize user data hierarchically. In this

way, people can find information by making progressively more specific choices until they arrive at the desired level of detail. iOS provides table elements that make this process extremely efficient on iOS devices (see “Table Views” for more information about these user interface elements). Figure 1-1 shows an example of this type of data organization.

• Productivity applications tend to use multiple views, usually displaying one level of the hierarchy per view.

Page 60: iOS Platform & Architecture

Utility Applications• A utility application performs a simple task that requires a minimum of

user input. • People open a utility application to see a quick summary of

information or to perform a simple task on a limited number of objects. • The Weather application is a good example of a utility application

because it displays a narrowly focused amount of information in an easy-to-scan summary.

• A utility application tends to organize information into a flattened list of items; users do not usually need to drill down through a hierarchy of information.

Page 61: iOS Platform & Architecture

Weather App

Page 62: iOS Platform & Architecture

Immersive Applications• An immersive application offers a full-screen, visually rich environment

that’s focused on the content and the user’s experience with that content.

• People often use immersive applications to have fun, whether playing a game, viewing media-rich content, or performing a simple task.

• Alternatively, an application that replicates the experience of using a bubble level works well in a graphics-rich, full-screen environment, even though it doesn’t fit the definition of a game. • In such an application, as in a game, the user’s focus is on the visual

content and the experience, not on the data behind the experience. Figure 1-5 shows an example of an immersive application that replicates an actual experience and enables a simple task.

Page 63: iOS Platform & Architecture

Bubble Level App

Page 64: iOS Platform & Architecture

Choosing an Application and a Style• Think of an App you might like to develop.

• For fun – any topic• For sale –

• check the App Store first to see if there are other similar apps.• Study them to see if you can do better.• Try again for a new idea

• After hearing about productivity, utility, and immersive application styles, think about the type of information your application displays and the task it enables. • In theory, the type of application you should create is obvious to you

and you’re ready to get started; in practice, it’s not always that simple• Remember what we already know about human interface design and

add in the new challenges of the mobile device.

Page 65: iOS Platform & Architecture

When You Have an Existing Computer Application

• Don’t just port it to iOS. • User want to open your application, use it briefly, and move on to

something else. If your application relies on the user’s undivided attention for long stretches of time, you need to rethink its structure and goals if you want to bring it to iOS.

• Reporting vs Editing• Apply the 80-20 rule to the design of your application. • Focus your iPhone application on the features that meet the needs of the

greatest number of people.