Jump to content

IOS: Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
Codegear (talk | contribs)
Line 48: Line 48:
Currently, the iPhone and iPod touch can only officially install full programs through the App Store.<ref>Baig, Edward C. [http://www.usatoday.com/tech/columnist/edwardbaig/2007-06-26-iphone-review_N.htm Apple's iPhone isn't perfect, but it's worthy of the hype], ''[[USA Today]]'', ([[2007-06-26]]){{accessdate|2007-06-28}}</ref> However, many unauthorized third-party native applications are now available.<ref>{{cite news|last=Healey|first=Jon|title=Hacking the iPhone|publisher=''[[Los Angeles Times]]''|date=2007-08-06|url=http://www.latimes.com/news/opinion/la-oew-healey6aug06,0,3456267.story|accessdate=2007-08-06}}</ref> 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 lock|SIM unlocking]]).<ref>[http://www.gearlog.com/2007/09/apples_joswiak_we_dont_hate_ip.php Apple's Joswiak: We Don't Hate iPhone Coders]</ref> These are available through the Installer or Cydia applications, which can be installed on the iPhone after major methods of jailbreaking.
Currently, the iPhone and iPod touch can only officially install full programs through the App Store.<ref>Baig, Edward C. [http://www.usatoday.com/tech/columnist/edwardbaig/2007-06-26-iphone-review_N.htm Apple's iPhone isn't perfect, but it's worthy of the hype], ''[[USA Today]]'', ([[2007-06-26]]){{accessdate|2007-06-28}}</ref> However, many unauthorized third-party native applications are now available.<ref>{{cite news|last=Healey|first=Jon|title=Hacking the iPhone|publisher=''[[Los Angeles Times]]''|date=2007-08-06|url=http://www.latimes.com/news/opinion/la-oew-healey6aug06,0,3456267.story|accessdate=2007-08-06}}</ref> 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 lock|SIM unlocking]]).<ref>[http://www.gearlog.com/2007/09/apples_joswiak_we_dont_hate_ip.php Apple's Joswiak: We Don't Hate iPhone Coders]</ref> These are available through the Installer or Cydia applications, which can be installed on the iPhone after major methods of jailbreaking.


==iPhone SDK==
[==iPhone SDK==
[[Image:IPhone SDK - New Project.png|thumb|right|iPhone SDK included in Xcode 3.1 final.]]
[[Image:IPhone SDK - New Project.png|thumb|right|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.<ref>{{cite web |last=Jobs| first=Steve |authorlink=Steve Jobs|url=http://developer.apple.com/iphone/devcenter/third_party_apps.php |title=Third Party Applications on the iPhone |publisher=[[Apple Inc.]] |date=2007-10-17}}</ref> 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 a iPhone Developer Program fee.
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.<ref>{{cite web |last=Jobs| first=Steve |authorlink=Steve Jobs|url=http://developer.apple.com/iphone/devcenter/third_party_apps.php |title=Third Party Applications on the iPhone |publisher=[[Apple Inc.]] |date=2007-10-17}}</ref> 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 a iPhone Developer Program fee.
Line 76: Line 76:


On [[August 8]], [[2008]], Apple released the Beta 3 update to the 2.1 SDK, and iPhone OS version 2.1.<ref>{{cite web | url=http://www.macrumors.com/iphone/2008/08/08/apple-releases-iphone-firmware-2-1-beta-3/}} </ref>
On [[August 8]], [[2008]], Apple released the Beta 3 update to the 2.1 SDK, and iPhone OS version 2.1.<ref>{{cite web | url=http://www.macrumors.com/iphone/2008/08/08/apple-releases-iphone-firmware-2-1-beta-3/}} </ref>

On [[September 25]], [[2008]], Apple released the first Beta SDK (labeled Build 9M2611) for targeting iPhone OS version 2.2 (Build 5G29).<ref>[http://iphone.cazisoft.com/2008/09/iphone-os-22-developers-beta-released.html The iPhone - iPhone OS 2.2 Developers beta released]</ref>


====SDK contents====
====SDK contents====
Line 152: Line 154:
=== SVG ===
=== 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. [[Synchronized_Multimedia_Integration_Language|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 (HTML element)|Canvas]] is supported.
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. [[Synchronized_Multimedia_Integration_Language|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 (HTML element)|Canvas]] is supported.
]


== Hacking and Jailbreaking ==
== Hacking and Jailbreaking ==

Revision as of 11:47, 26 September 2008

iPhone OS
File:IPhonehomescreen.PNG
iPhone OS version 2.1 on a first generation iPhone
DeveloperApple Inc.
OS familyMac OS X/Darwin/NEXTSTEP
Working stateCurrent
Source modelClosed source (with open source components)
Latest release2.1 (5F138/5F137/5F136) / September 9, 2008 (2008-09-09)
Latest preview,
PlatformsARMv6 (iPhone and iPod touch)
Kernel typeHybrid
Default
user interface
Cocoa Touch (Multi-touch, GUI)
LicenseProprietary EULA
Official websiteiPhone Dev Center

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 runs OS X", a reference to iPhone OS's ancestor, Mac OS X.[5]

As of September 9, 2008, there are over 3,000 applications officially available for the iPhone, not including the ones built into the iPhone.

Version history

The latest released version of iPhone OS is 2.1, announced at Apple's Let's Rock keynote presentation. It was released on September 9, 2008 for the iPod touch and on September 12, 2008 for the iPhone and iPhone 3G.

iTunes is used to manage many of the functions of the iPhone and iPod touch, including updates to iPhone OS. Security patches, as well as new and improved features, are released in this fashion.[6] iTunes runs on modern versions of Mac OS X and Windows.[4]

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 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 notifications can 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.)

Application support

The central processing unit used in the iPhone and iPod touch is an ARM-based processor instead of the x86 (and previously PowerPC) processors used in Apple's Macintosh computers. 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.

Included applications

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

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.[8] Many third-party iPhone web applications are now available.[9]

Unsupported third-party native applications

Currently, the iPhone and iPod touch can only officially install full programs through the App Store.[10] However, many unauthorized third-party native applications are now 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] These are available through the Installer or Cydia applications, which can be installed on the iPhone after major methods of jailbreaking.

[==iPhone SDK==

File:IPhone SDK - New Project.png
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 a iPhone Developer Program fee.

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

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 is free for iPhone users; however, there is a charge for iPod touch owners.[16]

On March 27, 2008, Apple released the Beta 2 release of the SDK, build 9A2151 with iPhone OS version 2.0b2 (build 5A225c),[17] which added Interface Builder, an application for building graphical user interfaces for iPhone applications.[18]

On April 8, 2008, Apple released the Beta 3 update to the SDK, build 9M2158a with iPhone OS version 2.0b3 (build 5A240d).[19]

On April 23, 2008, Apple released the Beta 4 update to the SDK, build 9M2165 with iPhone OS version 2.0b4 (build 5A258f). This version of the SDK supports OpenGL 3D graphics, primarily used to make games,[20] 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.

On May 6, 2008, Apple released the Beta 5 update to the SDK, build 9M2173a with iPhone OS version 2.0b5 (build 5A274d).[21]

On May 29, 2008, Apple released the Beta 6 update to the SDK, build 9M2192 with iPhone OS version 2.0b6 (build 5A292g). The code in this update gave hints about updates to Apple's .Mac[22] service and also gave a first reference to the upcoming version of Mac OS X, version 10.6 Snow Leopard.[23]

On June 9, 2008, Apple released the Beta 7 update to the SDK, build 9M2199 with 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.

On June 26, 2008, Apple released the Beta 8 update to the SDK, build 9M2199a with iPhone OS version 2.0b8 (build 5A345).[24]

On July 24, 2008, Apple released the first Beta SDK for targeting iPhone OS version 2.1 (build 5F90).[25] 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.

On July 30, 2008, Apple released the Beta 2 update to the 2.1 SDK, and iPhone OS version 2.1.[26]

On August 8, 2008, Apple released the Beta 3 update to the 2.1 SDK, and iPhone OS version 2.1.[27]

On September 25, 2008, Apple released the first Beta SDK (labeled Build 9M2611) for targeting iPhone OS version 2.2 (Build 5G29).[28]

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:[29]

Along with the Xcode toolchain, the SDK contains an iPhone emulator called Aspen. Aspen Simulator was renamed to iPhone Simulator with the Beta 2 release of the SDK.

The SDK requires an Intel Mac running Mac OS X Leopard. Other operating systems and versions are not supported.

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. 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.

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.[30]

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.[31] If successful, Sun plans to release the software some time after June 2008.

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),[32] 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.[33].

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

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[36][37].

Flash

The iPhone OS does not support Flash. Adobe announced that it is working on a FlashLite player as a third-party application for iPhone, though it has not yet launched.[citation needed] Adobe has also announced that it has its FlashLite working on the iPhone simulator but has not successfully ported it to the actual device.[citation needed]

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. ]

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 its maker. This has lead to the jailbreaking community focusing on providing functionality disallowed on the device, under Apple's SDK terms.[citation needed] 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. 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]

References

  1. ^ Apple Inc. (March 6, 2008). "Apple Announces iPhone 2.0 Software Beta". Apple.com. Apple Inc. Retrieved 2008-03-07. {{cite web}}: Check date values in: |date= (help)
  2. ^ Apple Developer Connection (February 29, 2008). "iPhone Human Interface Guidelines: Introduction". Apple.com. Apple Inc. Retrieved 2008-03-07. {{cite web}}: Check date values in: |date= (help)
  3. ^ a b Gary, Benson (2008-03-07). "iPhone SDK - Overview (the SDK, not the Event)". Retrieved 2008-03-10.
  4. ^ a b Haslam, Karen (January 12, 2007). "Macworld Expo: Optimised OS X sits on 'versatile' flash". Macworld. Retrieved 2007-10-15. {{cite web}}: Check date values in: |date= (help); Italic or bold markup not allowed in: |publisher= (help)
  5. ^ iPhone - Features - OS X - Apple Inc.
  6. ^ Kharif, Olga. Coming Soon: iPhone Software Updates, BusinessWeek, (2007-07-10)Template:Accessdate
  7. ^ Apple Inc. (2008-07-10). "iPhone Applications". Retrieved 2008-07-11.
  8. ^ Ziegler, Chris. Apple announces third-party software details for iPhone, Engadget, (2007-06-11)Template:Accessdate
  9. ^ Web Apps - Apple Inc.
  10. ^ Baig, Edward C. Apple's iPhone isn't perfect, but it's worthy of the hype, USA Today, (2007-06-26)Template:Accessdate
  11. ^ Healey, Jon (2007-08-06). "Hacking the iPhone". Los Angeles Times. Retrieved 2007-08-06. {{cite news}}: Italic or bold markup not allowed in: |publisher= (help)
  12. ^ Apple's Joswiak: We Don't Hate iPhone Coders
  13. ^ Jobs, Steve (2007-10-17). "Third Party Applications on the iPhone". Apple Inc.
  14. ^ "Introducing the iPhone Developer Program". Apple Inc.
  15. ^ Live from Apple's iPhone SDK press conference - Engadget 2008-03-06.
  16. ^ Apple previews iPhone firmware 2.0, additional SDK notes - MacRumors 2008-06-09.
  17. ^ Dan, Moren (2008-03-27). "iPhone SDK: now with 100% more Interface Builder". Macworld. Retrieved 2008-03-27. {{cite web}}: Italic or bold markup not allowed in: |publisher= (help)
  18. ^ "Interface Builder". Apple Inc. Retrieved 2008-03-27.
  19. ^ Apple Seeds New iPhone OS 2.0 Beta (5A240d), SDK Update (Beta 3) - MacRumors 2008-04-08.
  20. ^ iPhone SDK Beta 4 Now Available, Comes with OpenGL ES 3D Graphics Support - Gizmodo.
  21. ^ iPhone SDK Beta 5 Now Up: Bug Fixes, Updated OS Support - Gizmodo.
  22. ^ MacRumors - Apple's .Mac Service to be Renamed, Revamped? - MacRumors 2008-05-30.
  23. ^ Mac OS 10.6 reference in iPhone SDK beta 6 - MacRumors 2008-05-29.
  24. ^ Apple Inc. (June 26, 2008). "iPhone SDK beta release 8 - Download Notes" (PDF). Apple.com. Apple Inc. Retrieved 2008-06-27. {{cite web}}: Check date values in: |date= (help)
  25. ^ GearLive (July 25, 2008). "iPhone SDK 2.1 beta release 1 released". Gearlive.com. Gearlive. Retrieved 2008-07-25. {{cite web}}: Check date values in: |date= (help)
  26. ^ http://www.macrumors.com/2008/07/30/apple-seeds-2nd-beta-of-iphone-2-1-firmware-to-developers/. {{cite web}}: Missing or empty |title= (help)
  27. ^ http://www.macrumors.com/iphone/2008/08/08/apple-releases-iphone-firmware-2-1-beta-3/. {{cite web}}: Missing or empty |title= (help)
  28. ^ The iPhone - iPhone OS 2.2 Developers beta released
  29. ^ Arnold, Kim (2008-03-06). "Apple Releases iPhone SDK, Demos Spore, Instant Messaging". MacRumors.com. Retrieved 2008-03-10.
  30. ^ Willis, Nathan (2008-04-15). "The iPhone SDK and free software: not a match". Linux.com. Retrieved 2008-06-05. {{cite web}}: Check date values in: |date= (help)
  31. ^ Krill, Paul (2008-03-08). "Sun: We'll put Java on the iPhone". Infoworld. Retrieved 2008-03-08. {{cite web}}: Italic or bold markup not allowed in: |publisher= (help)
  32. ^ Krazit, Tom (2008-03-07). "The iPhone SDK: The day after". CNet. Retrieved 2008-03-29.
  33. ^ Krill, Paul (2008-03-14). "Sun's plan for Java on iPhone could hit roadblock". The Industry Standard. Retrieved 2008-03-29. {{cite web}}: Italic or bold markup not allowed in: |publisher= (help)
  34. ^ Guisi, Bruno (2008-05-25). "First steps with iPhone and Java". Retrieved 2008-08-31. {{cite web}}: Check date values in: |date= (help)
  35. ^ Chakraborty, Angsuman (2008-06-10). "How To Install, Compile, Run Java On iPhone". Retrieved 2008-08-31. {{cite web}}: Check date values in: |date= (help)
  36. ^ Kizito Kasozi, Emmanuel (2008-04-28). "Apple, Sun Talks Gives Hope for Java on iPhone". ibtimes.com. Retrieved 2008-08-31. {{cite web}}: Check date values in: |date= (help)
  37. ^ "Innaworks announces Java Development Solution for iPhone". Innaworks. 2008-03-28. Retrieved 2008-08-31. {{cite web}}: Check date values in: |date= (help); External link in |publisher= (help)