iPhone OS

From Wikipedia, the free encyclopedia

Jump to: navigation, search
iPhone OS

iPhone OS version 2.2
Company / developer Apple Inc.
OS family Mac OS X / Unix-like
Working state Current
Source model Closed source (with open source components)
Latest stable release 2.2.1 (5H11) / 2009-1-27; 69 days ago
Latest unstable release 3.0 Beta 2 / 2009-4-1; 5 days ago
Supported platforms ARMv6 (iPhone and iPod Touch)
Kernel type Hybrid
Default user interface Cocoa Touch (Multi-touch, GUI)
License Proprietary EULA
Website iPhone Dev Center

The iPhone OS or OS X iPhone is the operating system developed by Apple Inc. for the iPhone and iPod Touch.[1][2] Like Mac OS X, from which it was derived, it uses the Darwin foundation.[3] iPhone OS has four abstraction layers: the Core OS layer, the Core Services layer, the Media layer, and the Cocoa Touch layer. The operating system takes less than half a gigabyte (GB) of the device's total memory storage.[4]

This operating system did not have an official name until the release of the first beta version of the iPhone SDK on March 6, 2008. Before then, Apple marketing literature simply stated that the "iPhone uses OS X," a reference to Apple's desktop operating system, Mac OS X.[5]

As of 17 March 2009 (2009 -03-17), there are over 25,000 applications officially available for the iPhone and Apple's App Store has provided more than 800 million application downloads.

Contents

[edit] User interface

The iPhone OS's user interface is based on the concept of direct manipulation, using multi-touch gestures. Interface control elements consist of sliders, switches, and buttons. The response to user input is supposed to be immediate to provide a fluid interface. Interaction with the OS includes gestures such as swiping, tapping, pinching, and reverse pinching. Additionally, using internal accelerometers, rotating the device on its y-axis alters the screen orientation in some applications.

A home screen ("Springboard") with application icons, and a dock at the bottom of the screen, showing icons for the applications the user accesses the most, is presented when the device is turned on or whenever the home button is pressed. The screen has a status bar across the top to display data, such as time, battery level, and signal strength. The rest of the screen is devoted to the current application. There is no concept of starting or quitting applications, only opening an application from the home screen, and leaving the application to return to the home screen. It is possible to force an application to quit by holding down the home button, however. While some multitasking is permitted it is not obtrusive or obvious. Third-party apps are quit when left, but with the 3.0 software update, notifications will be able to be pushed from Apple's servers to the iPhone or iPod touch. Many of the included applications were designed to work together; allowing for the sharing or cross-propagation of data from one application to another (e.g., a phone number can be selected from an email and saved as a contact or dialed for a phone call.)

[edit] Application support

The central processing unit used in the iPhone and iPod Touch is an ARM-based processor instead of the x86 (and previous PowerPC or MC680x0) processors used in Apple's Macintosh computers, and it uses OpenGL ES 1.1[6] rendering by the PowerVR 3D graphics hardware accelerator co-processor[7]. Mac OS X applications cannot be copied to and run on an iPhone OS device. They need to be written and compiled specifically for the iPhone OS and the ARM architecture. However, the Safari web browser supports "web applications," as noted below. Authorized third-party native applications are available for devices with iPhone OS 2.0 through Apple's App Store.

[edit] Included applications

In version 2.2, the iPhone home screen contains these default applications: SMS (Text messaging), Calendar, Photos, Camera, YouTube, Stocks, Maps (Google Maps with Assisted GPS), Weather, Clock, Calculator, Notes, Settings, iTunes (with access to the iTunes Music Store and iTunes Podcast Directory), App Store and Contacts. Four other applications delineate the iPhone's main purposes: Phone, Mail, Safari, and iPod.[8]

The iPod Touch retains many of the same applications that are present by default on the iPhone, with the exception of the Phone, SMS, and Camera apps. The "iPod" App present on the iPhone is split into two apps on the iPod Touch: Music, and Videos. The bottom row of applications is also used to delineate the iPod Touch's main purposes: Music, Videos, Photos, and iTunes.

[edit] Web applications

At the 2007 Apple Worldwide Developers Conference Apple announced that the iPhone and iPod Touch will support third-party "applications" via the Safari web browser, referred to as web applications. The applications can be created using web technologies such as AJAX.[9]

[edit] Unsupported third-party native applications

Currently, the iPhone and iPod Touch can only officially install full programs through the App Store.[10] However, from version 1.0 unauthorized third-party native applications are available.[11] Such applications face the possibility of being broken by any iPhone OS update, though Apple has stated it will not design software updates specifically to break native applications (other than applications that perform SIM unlocking).[12] The main distribution methods for these applications are the Installer and Cydia utilities, which can be installed on the iPhone after major methods of jailbreaking.

[edit] iPhone SDK

iPhone SDK included in Xcode 3.1 final.

On October 17, 2007, in an open letter posted to Apple's "Hot News" weblog, Steve Jobs announced that a software development kit (SDK) would be made available to third-party developers in February 2008.[13] The SDK was released on March 6th, 2008, and allows developers to make applications for the iPhone and iPod Touch, as well as test them in an "iPhone simulator". However, loading an application onto the devices is only possible after paying an iPhone Developer Program fee. Since the release of Xcode 3.1, Xcode is the development environment for the iPhone SDK.

Developers are able to set any price above a set minimum for their applications to be distributed through the App Store, of which they will receive a 70% share. Alternately, they may opt to release the application for free and need not pay any costs to release or distribute the application except for the membership fee.[14]

[edit] SDK history

The iPhone SDK was officially announced on March 6, 2008, at an Apple Town Hall meeting.[15] The first Beta release of the SDK, with iPhone OS version 1.2b1 (build 5A147p), was made available immediately, while the launch of the App Store required a firmware update which was released on July 11, 2008. This update was free for iPhone users; however, the update costs $9.99 for iPod Touch owners.

Date released OS version SDK details
March 27, 2008 iPhone OS 2.0b2 Beta 2 Release for iPhone OS version 2.0b2 (build 5A225c),[16] which added Interface Builder, an application for building graphical user interfaces for iPhone applications.[17]
April 8, 2008 iPhone OS 2.0b3 Beta 3 Release for iPhone OS version 2.0b3 (build 5A240d).[18]
April 23, 2008 iPhone OS 2.0b4 Beta 4 Release for iPhone OS version 2.0b4 (build 5A258f). This version of the SDK supports OpenGL 3D graphics, primarily used to make games,[19] and indications that some applications will be allowed to run in the background (as the iPod, Phone, and Mail applications do), something that Apple had previously stated was not possible.
May 6, 2008 iPhone OS 2.0b5 Beta 5 Release for iPhone OS version 2.0b5 (build 5A274d).[20]
May 29, 2008 iPhone OS 2.0b6 Beta 6 Release for iPhone OS version 2.0b6 (build 5A292g). The code in this update gave hints about updates to Apple's .Mac[21] service and also gave a first reference to the upcoming version of Mac OS X, version 10.6 Snow Leopard.[22]
June 9, 2008 iPhone OS 2.0b7 Beta 7 Release for iPhone OS version 2.0b7 (build 5A331), which unlocked Apple's .Mac replacement, MobileMe. This release was for WWDC, Apple's developer's conference, which is noted as part of the name of the iPhone OS beta download.
June 26, 2008 iPhone OS 2.0b8 Beta 8 Release for iPhone OS version 2.0b8 (build 5A345).[23]
July 24, 2008 iPhone OS 2.1 Beta 1 Release for iPhone OS version 2.1 (build 5F90).[24] Apple notes that applications built using the 2.1 SDK will not run on the iPhone 2.0 software, and will not yet be accepted into the App Store.
July 30, 2008 iPhone OS 2.1 Beta 2 Release for iPhone OS version 2.1.[25]
August 8, 2008 iPhone OS 2.1 Beta 3 Release for iPhone OS version 2.1.[26]
September 25, 2008 iPhone OS 2.2 Beta 1 Release for iPhone OS version 2.2 (Build 5G29).[27]
November 20, 2008 iPhone OS 2.2 Release for iPhone OS version 2.2 (build 9M2621).
January 27, 2009 iPhone OS 2.2.1 Release for iPhone OS version 2.2.1 (build 9M2621a).[28]
March 17, 2009 iPhone OS 3.0 Beta 1 Preview of iPhone OS version 3.0 and SDK 3.0 beta release.[29]
April 1, 2009 iPhone OS 3.0 Beta 2 Release for iPhone OS version 3.0.[30]

[edit] SDK contents

As the iPhone is based on a variant of the same XNU kernel that is found in Mac OS X, the tool chain used for developing on the iPhone is also based on Xcode.[3]

The SDK is broken down into the following sets:[31]

Along with the Xcode toolchain, the SDK contains the iPhone Simulator, a program used to emulate the look and feel of the iPhone on the developer's desktop. Originally called the Aspen Simulator, it was renamed with the Beta 2 release of the SDK. Note that the iPhone Simulator is not an emulator and runs code generated for an x86 target.

The SDK requires an Intel Mac running Mac OS X Leopard. Other operating systems, including Microsoft Windows and older versions of Mac OS X, are not supported.

[edit] Licensing

The SDK itself is a free download, but in order to release software, one must enroll in the iPhone Developer Program, a step requiring payment and Apple's approval. As of March 2009, cost of enrollment in the iPhone development program is 99$US (this cost varies from country to country). Signed keys are given to upload the application to Apple's App Store. Applications can be distributed in three ways: through the App Store, through enterprise deployment to a company's employees only, and on an "Ad-hoc" basis to up to 100 iPhones. Once distributed through the App Store, a developer can request up to 50 promotional codes that can be used to freely distribute a commercial application he has developed.

This distribution model for iPhone software appears to make it impossible to release software based upon code licensed with GPLv3. Any code that modifies code licensed under GPLv3 must also be licensed as GPLv3. Also, a developer is not able to distribute an application licensed under the GPLv3 without also distributing the signing keys (which Apple owns) to allow upload of modified versions of that software to be run.[32]

[edit] Core Location

Core Location is a software framework in Mac OS X. It is primarily used by applications on the iPhone OS 2.0 for detection of the device's location.

It was announced as part of the iPhone Software Roadmap event on March 6, 2008,[33] and was made available as part of the iPhone SDK.

[edit] Java

Apple has not announced any plans to enable Java to run on the iPhone. Sun Microsystems announced plans to release a Java Virtual Machine (JVM) for iPhone OS, based on the Java Platform, Micro Edition version of Java. This would enable Java applications to run on iPhone and iPod Touch.[34]

Soon after the announcement, developers familiar with the SDK's terms of agreement believed that by not allowing 3rd-party applications to run in the background (answer a phone call and still run the application, for example),[35] allowing an application to download code from another source, or allowing an application to interact with a 3rd-party application (Safari with JVM, for example), it could hinder development of the JVM without Apple's cooperation[36]. It is clear that Java running on the iPhone is outside the bounds of the iPhone SDK Agreement. The guideline in question is rule 3.3.2, which reads:

3.3.2 — An Application may not itself install or launch other executable code by any means, including without limitation through the use of a plug-in architecture, calling other frameworks, other APIs or otherwise. No interpreted code may be downloaded and used in an Application except for code that is interpreted and run by Apple’s Published APIs and built-in interpreter(s).

However, some iPhone users have shown that it was possible to install and use a J2ME stack on a iPhone, though it involved jailbreaking[37][38].

It has also been revealed that there were talks between Sun and Apple concerning the availability of Java on the iPhone, and that Sun was working in that intent with a company called Innaworks[39][40]. Curiously, the ARM processor used in the iPhone includes an environment for accelerated Java execution built into the hardware[41].

[edit] Flash

The iPhone OS does not support Flash. Adobe has announced plans to release a version of its Flash Lite software as a third-party application for the iPhone, though it has not yet launched. Furthermore, Flash Lite supports only a subset of the features of standard Flash. Unofficially, Flash videos can be viewed by using a jailbroken iPhone with certain third-party applications.

[edit] SVG

Mobile Safari supports SVG starting with the iPhone firmware 2.1. The SVG support features scripting and most of the static parts of the SVG 1.1. specification. SMIL animation is not yet supported for SVG graphics. It will be delivered after the Webkit SMIL implementation is mature enough. In addition to SVG, the HTML Canvas is supported.

[edit] Hacking and jailbreaking

The iPhone OS has been subject to a variety of different hacks for a variety of reasons, centered around adding functionality not supported by Apple.

With the advent of iPhone OS 2.0, the focus of the jailbreaking community has shifted somewhat. Prior to iPhone 2.0's release, jailbreaking was the only way to allow third-party applications on the device. Now with iPhone 2.0, native applications are allowed under certain rules imposed by Apple. This has lead to the jailbreaking community focusing on providing functionality disallowed on the device, under Apple's SDK terms. These functions include background applications, or the ability for third-party applications to run after appearing to have closed, and the ability to alter the applications written for the device by Apple. Some began attempts to disable Apple's kill switch[42], although these efforts were largely abandoned once the kill switch was proven to only disable Core Location[citation needed].

There has been a notable shift away from jailbreaking with the new App Store's debut, in most part due to users' acceptance of Apple's compromise on opening up the platform[citation needed], although there has still been substantial interest from the jailbreaking community, especially with the release of Pwnage Tool from the "iPhone Dev Team" which was released soon after firmware 2.0 for the iPod Touch and iPhone. Some jailbreakers also attempt to pirate paid App Store applications; this new focus has caused some strife within the jailbreaking community.

The other major focus of jailbreaking since 2.0 has been to reverse the SIM Lock that is forced onto most iPhones. The first generation iPhone can be fully unlocked with the iPhone Dev Team's BootNeuter application, and the iPhone 3G can be unlocked with a new beta effort dubbed "yellowsn0w"[43] and quickPWN 2.2.1.

More recently, many efforts have been focused on broadening the Bluetooth capabilites of the iPhone. However, many of the efforts stopped due to the preview of the iPhone 3.0 OS on March 17, 2009, which included among other features, enhanced Bluetooth capabilities.

[edit] Firmware version history

The version history of iPhone OS spans from its release on June 29, 2007 to the present day.

[edit] References

  1. ^ Apple Inc. (March 6, 2008). "Apple Announces iPhone 2.0 Software Beta". Apple.com. Apple Inc.. http://www.apple.com/pr/library/2008/03/06iphone.html. Retrieved on 2008-03-07. 
  2. ^ Apple Developer Connection (February 29, 2008). "iPhone Human Interface Guidelines: Introduction". Apple.com. Apple Inc.. http://developer.apple.com/iphone/library/documentation/UserExperience/Conceptual/MobileHIG/Introduction/chapter_1_section_1.html. Retrieved on 2008-03-07. 
  3. ^ a b Gary, Benson (2008-03-07). "iPhone SDK - Overview (the SDK, not the Event)". http://nessence.wordpress.com/2008/03/07/iphone-sdk-overview/. Retrieved on 2008-03-10. 
  4. ^ Haslam, Karen (January 12, 2007). "Macworld Expo: Optimised OS X sits on 'versatile' flash". Macworld. http://www.macworld.co.uk/ipod-itunes/news/index.cfm?newsid=16927. Retrieved on 2007-10-15. 
  5. ^ iPhone - Features - OS X - Apple Inc., Archived version from 2007-10-06
  6. ^ Dr. Dobb's. "OpenGL and Mobile Devices: Round 2 (OpenGL ES for the iPhone and iPod Touch)". http://www.ddj.com/mobile/209600498. 
  7. ^ iPhone Dev Center
  8. ^ Apple Inc. (2008-07-10). "iPhone Applications". http://docs.info.apple.com/article.html?artnum=306003. Retrieved on 2008-07-11. 
  9. ^ Ziegler, Chris. Apple announces third-party software details for iPhone, Engadget, (2007-06-11). Retrieved on 2007-06-20.
  10. ^ Baig, Edward C. Apple's iPhone isn't perfect, but it's worthy of the hype, USA Today, (2007-06-26). Retrieved on 2007-06-28.
  11. ^ Healey, Jon (2007-08-06). "Hacking the iPhone". Los Angeles Times. http://www.latimes.com/news/opinion/la-oew-healey6aug06,0,3456267.story. Retrieved on 2007-08-06. 
  12. ^ Apple's Joswiak: We Don't Hate iPhone Coders
  13. ^ Jobs, Steve (2007-10-17). "Third Party Applications on the iPhone". Apple Inc.. http://developer.apple.com/iphone/devcenter/third_party_apps.php. 
  14. ^ "Introducing the iPhone Developer Program". Apple Inc.. http://developer.apple.com/iphone/program/details.html. 
  15. ^ Block, Ryan (2008-03-06). "Live from Apple's iPhone SDK press conference". Engadget. Weblogs, Inc.. http://www.engadget.com/2008/03/06/live-from-apples-iphone-press-conference/. Retrieved on 2008-12-12. 
  16. ^ Dan, Moren (2008-03-27). "iPhone SDK: now with 100% more Interface Builder". Macworld. http://iphone.macworld.com/2008/03/iphone_sdk_now_with_100_more_i.php. Retrieved on 2008-03-27. 
  17. ^ "Interface Builder". Apple Inc.. http://developer.apple.com/tools/interfacebuilder.html. Retrieved on 2008-03-27. 
  18. ^ Apple Seeds New iPhone OS 2.0 Beta (5A240d), SDK Update (Beta 3) - MacRumors 2008-04-08.
  19. ^ iPhone SDK Beta 4 Now Available, Comes with OpenGL ES 3D Graphics Support - Gizmodo.
  20. ^ iPhone SDK Beta 5 Now Up: Bug Fixes, Updated OS Support - Gizmodo.
  21. ^ MacRumors - Apple's .Mac Service to be Renamed, Revamped? - MacRumors 2008-05-30.
  22. ^ Mac OS 10.6 reference in iPhone SDK beta 6 - MacRumors 2008-05-29.
  23. ^ Apple Inc. (June 26, 2008). "iPhone SDK beta release 8 - Download Notes". Apple.com. Apple Inc.. http://adcdownload.apple.com/iphone/iphone_sdk__beta_8__9m2199/iphone_sdk_beta8_readme.pdf. Retrieved on 2008-06-27. 
  24. ^ "iPhone SDK 2.1 beta release 1 released". Gearlive.com. Gearlive. July 25, 2008. http://www.gearlive.com/news/article/q208-apple-beta-testing-iphone-21-firmware/. Retrieved on 2008-07-25. 
  25. ^ MacRumors (July 30, 2008). "Apple Seeds 2nd Beta of iPhone 2.1 Firmware to Developers". http://www.macrumors.com/2008/07/30/apple-seeds-2nd-beta-of-iphone-2-1-firmware-to-developers/. 
  26. ^ MacRumors (August 8, 2008). "Apple Releases iPhone Firmware 2.1 Beta 3". http://www.macrumors.com/iphone/2008/08/08/apple-releases-iphone-firmware-2-1-beta-3/. 
  27. ^ The iPhone - iPhone OS 2.2 Developers beta released
  28. ^ iPhone DevCenter
  29. ^ http://engadget.com/2009/03/12/iphone-os-3-0-is-coming-march-17th/
  30. ^ Martin, David (2009-04-01). "Apple releases iPhone OS 3 beta 2 to developers". CNET Reviews. http://reviews.cnet.com/8301-19512_7-10209154-233.html. Retrieved on 2009-04-03. 
  31. ^ Arnold, Kim (2008-03-06). "Apple Releases iPhone SDK, Demos Spore, Instant Messaging". MacRumors.com. http://www.macrumors.com/2008/03/06/apple-releases-iphone-sdk-demos-spore-instant-messaging/. Retrieved on 2008-03-10. 
  32. ^ Willis, Nathan (2008-04-15). "The iPhone SDK and free software: not a match". Linux.com. http://www.linux.com/feature/131752. Retrieved on 2008-06-05. 
  33. ^ http://www.macworld.com/article/132400/2008/03/iphonesdk.html
  34. ^ Krill, Paul (2008-03-08). "Sun: We'll put Java on the iPhone". Infoworld. http://www.infoworld.com/article/08/03/07/sun-iphone-java_1.html. Retrieved on 2008-03-08. 
  35. ^ Krazit, Tom (2008-03-07). "The iPhone SDK: The day after". CNet. http://www.news.com/8301-13579_3-9888722-37.html. Retrieved on 2008-03-29. 
  36. ^ Krill, Paul (2008-03-14). "Sun's plan for Java on iPhone could hit roadblock". The Industry Standard. http://www.thestandard.com/news/2008/03/14/suns-plan-java-iphone-could-hit-roadblock. Retrieved on 2008-03-29. 
  37. ^ Guisi, Bruno (2008-05-25). "First steps with iPhone and Java". http://weblogs.java.net/blog/brunogh/archive/2008/05/java_on_iphone.html. Retrieved on 2008-08-31. 
  38. ^ Chakraborty, Angsuman (2008-06-10). "How To Install, Compile, Run Java On iPhone". http://blog.taragana.com/index.php/archive/how-to-install-compile-run-java-on-iphone/. Retrieved on 2008-08-31. 
  39. ^ Kizito Kasozi, Emmanuel (2008-04-28). "Apple, Sun Talks Gives Hope for Java on iPhone". ibtimes.com. http://www.ibtimes.com/articles/20080428/apple-sun-java-iphone.htm. Retrieved on 2008-08-31. 
  40. ^ "Innaworks announces Java Development Solution for iPhone". Innaworks. 2008-03-28. http://www.innaworks.com/News.html#News-AlcheMoForIPhoneBeta. Retrieved on 2008-08-31. 
  41. ^ Ryan, Block (2007-07-01). "iPhone processor found: 620MHz ARM CPU.". engadget.com. http://www.engadget.com/2007/07/01/iphone-processor-found-620mhz-arm/. Retrieved on 2009-01-02. 
  42. ^ Apple iPhone 'kill switch' discovered - Telegraph
  43. ^ Don't eat yellowsn0w!

[edit] See also

[edit] External links

Personal tools