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.
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
Apple IFirst demonstrated in April 1976 Used 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.
Apple II First introduced in 1977 Recognized by many as being the first “computer”Production ended in 1993; Apple had sold over two million units Unlike Apple I, this version included graphics
Introduced on January 24, 1984, the Macintosh was the world’s first truly personalcomputer, with a user-friendlyGraphical User Interface (GUI).Introduced desktop publishing with Adobe PageMaker Created an entire Mac Family: MacPlus (1986) Mac SE and Mac II (1987) Mac Classic and Mac LC (1990) Macintosh’s first icons were created by graphic Macintosh Portable designer Susan Kare. (1989) PowerBook (1991)
AIM Alliance In 1991, Apple Computer, IBM, and Motorola joined to create the PowerPC processors Apple & IBM created two side projects called Taligent and Kaleida Labs.
AIM Alliance Started Power Macintosh line in 1994 using PReP (PowerPC Reference Platform) Produced the first hand-held PDA, the Newton, in 1993Did not take off for Apple, but was the forerunner for PalmPilot and Palm PC
Power StruggleJobs was fired in 1985 by the board of directors, but after three unsuccessful CEOs throughout the early-mid90s, was brought back in 1997 and assumed the position of interim CEO.
iMac is Born Jobs 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
Mac OS XJobs also created an entirely new operating system Wanted to emphasize the “digital lifestyle”
iPod Introduced on October In July 2005, iPod’s 23, 2001 U.S. market share was 5GB hard drive; 1000 estimated at 74% songs January 2007, Apple Apple had already reported record annualregistered the name for a earnings of $7.1 billion, group of internet kiosks 48% of which was from that were never iPod sales. implemented
iPod + iTunesLaunched in 2003; had 2 million downloads in 16 days Over 2 billion songs sold 1.2 billion songs sold in 2006 alone
Apple, Inc. In January, Steve Jobsannounced the companywould change it’s name to Apple, Inc. to incorporate their many endeavors
TechnicalSpecifications Screen size 3.5 inches Screen 320 by 480 at 160 ppi resolution Input method Multi-touch Operating OS X system 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
iPhone iPhone 5 iPhone 4S iPhone 4 iPhone 3GS iPhone 3G iPhoneComparison 16GB/32GB/ 16GB/ 16GB/ 16GB/ 8GB/ 4GB/8GBChart 64GB 32GB/ 32GB 32GB 16GB 64GBSongs 4,000/8,000/ 4,000/ 4,000/ 4,000/8,000 2,000/ 1,000/ 16,000 8,000/ 8,000 4,000 2,000Held 16,000Screen 4 3.5 3.5 3.5 3.5 3.5Size**Resolution 1136x640 960x640 960x640 480x320 480x320 480x320Processor Apple A6 Apple A5 1 Ghz Apple A4 600 Mhz 412 Mhz 412 Mhz Samsung Samsung ARM Samsung ARM ARM Cortex-A8Connectivity Wi-Fi, Wi-Fi, Wi-Fi, Wi-Fi, Wi-Fi, Wi-Fi, 4G LTE, UMTS/ UMTS/ UMTS/3G, UMTS/3G, GSM, UMTS/HSDPA/ HSDPA/ HSDPA/ GSM, GSM, EDGE, HSUPA/3G, HSUPA/3G, HSUPA/3G, Bluetooth Bluetooth Bluetooth GSM, CDMA, GSM, CDMA, GSM, CDMA, Bluetooth Bluetooth BluetoothCarrier AT&T, Sprint, AT&T, Sprint, AT&T, AT&T AT&T AT&T Verizon Verizon VerizonA-GPS? Yes Yes Yes Yes Yes NoMax. OS iOS 6 iOS 6 iOS 6 iOS 5 iOS 4, limited iOS 3Camera 2 cameras: 2 cameras: 2 cameras: 3 Megapixel 2 Megapixel 2 Megapixel 8 Megapixel 8 Megapixel 5 Megapixel & 720p HD & VGA & VGARecords 1080p HD 1080p HD 720p HD VGA No NoVideo? at 30 fps at 30 fps at 30 fps at 30 fpsFaceTime Yes Yes Yes No No No
FaceTime Yes Yes Yes No No NoSiri Yes Yes No No No NoWeight 3.95 4.9 4.8 4.8 4.7 4.8(ounces)Size** 4.87 x 2.31 4.5 x 2.31 4.51 x 2.31 4.5 x 2.4 4.5 x 2.4 4.5 x 2.4 x .30 x .37 x .37 x .48 x .48 x .46Battery Life Talk: 8 Talk: 8 Talk: 7 Talk: 5 Talk: 5 Talk: 8(in hours) Video: 10 Video: 10 Video: 10 Video: 10 Video: 7 Video: 7 Web: 10 Web: 9 Web: 10 Web: 9 Web: 5 Web: 6 Audio: 40 Audio: 40 Audio: 40 Audio: 30 Audio: 24 Audio: 24Colors Black, White Black, White Black, White Black, White Black, White BlackPrice US$199/$29 US$199/ $199/ $199/ $199/ $499/w/contract 9/ $299/ $299, $299, $299 $599, $399 $399, later later $99, later $49, later $399 $99 and then free and then free iphone Comparison Table
The iOS Platform From iOS reference Library iPhone Human Interface Guidelineshttp://developer.apple.com/library/ios/#documentation/UserExperience/Conceptual/MobileHIG/DevelopingSoftware/DevelopingSoftware.html
Apple provides a complete ecosystem fordevelopers, so you can focus on making incredible apps.
Xcode FeaturesAssistant EditorThe Assistant button splits the editor in two, creating a secondary pane that automatically displays files that aremost helpful to you, based on your current work, for instance displaying the corresponding header file to yourcurrent source file.Source EditorWrite code using a professional editor with advanced code completion, code folding, syntax highlighting, andmessage 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 connectyour 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 iOSSimulator 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 compilersoptimized by Apple, scalable for fast multi-core compiles.
Graphical DebuggerDebug your Mac, iOS Simulator, or USB-connected iPhone application directly within the Xcode editor as data tipsshow 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 ofpossible code paths in a few seconds, reporting potential bugs that could have remained hidden or nearly impossibleto 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 theApp Store.SnapshotsBefore performing a big, risky operation on your project simply make a Snapshot (or let Xcode do it automatically foryou) 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 occurrenceswithin 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 AppleDeveloper website.Version EditorXcode’s Version editor displays a running timeline of commits, helps you determine blame, and graphically goes backin time to compare source files, with full support for Subversion and Git source control (SCM) systems.
Live IssuesJust like a word processor highlights spelling errors, Live Issues highlights common coding mistakes, without the need toclick ‘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 beatwhile 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.
InstrumentsData RecordingTell Instruments which application to analyze, which instruments to use, and simply click the big red button as datais 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 collecteddata, 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 fixthe problem.Play BackCreate an ad-hoc test harness by recording a user interacting with your application, then play back the recording tosee 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 advancedgraphics and user-event instruments.Zombie DetectionHard-to-find application errors and crashes can be trapped within Instruments when an application tries to accessmemory no longer available.Source ViewDrill down through data points, sort to find the most CPU-consuming methods, and view the code directly within theInstruments UI to pinpoint the problem.
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, revealingperformance bottlenecks caused as processes interact.
IOSiOS is the world’s most advanced mobile operating system, continuallyredefining what people can do with a mobile device. Together, the iOSSDK and Xcode IDE make it easy for developers to createrevolutionary mobile apps.
Cocoa Touch UIKit For 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.FoundationThe building blocks of any Cocoa app, including collection classesand all the base objects used throughout Cocoa.
Below is a small sampling of the available frameworks included in Cocoa Touch:Audio and Video Data ManagementCore Audio Core DataOpenAL SQLiteMedia LibraryAV FoundationNetworking and Internet Graphics andBonjour AnimationWebKit Core AnimationBSD Sockets OpenGL ES Quartz 2D User Applications Address Book Core Location Map Kit Store Kit
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.
Design ConsiderationsScreen 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.
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-ipo
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
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
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.
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.
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.
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.
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
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.
Web-only Content• You have a few different options when it comes to providing web-only content to iOS users:
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.
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.
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.
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.
Three Application Styles• Productivity• Utility• Immersive
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.
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.
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.
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.
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.