Jump to content

iOS SDK

From Wikipedia, the free encyclopedia

This is an old revision of this page, as edited by 108.235.117.89 (talk) at 20:10, 11 September 2013 (= iPhone OS 1.x: SDK). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.


iOS SDK (Software Development Kit)
Original author(s)Apple Inc.
Developer(s)Apple Inc.
Initial releaseMarch 6, 2008 (2008-03-06)
Written inObjective-C
Operating systemOS X
Available inEnglish
TypeSoftware development kit
WebsiteApple Developer

The iOS SDK (Software Development Kit) (formerly iPhone SDK) is a software development kit developed by Apple Inc. and released in February 2008 to develop native applications for iOS.

History

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.[1] The SDK was released on March 6, 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 iOS Developer Program fee, which is $99.00 USD per year.[2] Since the release of Xcode 3.1, Xcode is the development environment for the iOS SDK. iPhone applications, like Mac OS X applications, are written in Objective-C,[3] with some elements of an application able to be written in C or C++.

SDK release history

Apple normally releases a new SDK concurrently with every major (iOS x.0 – e.g. iOS 6.0) and minor (iOS x.x, e.g. iOS 5.1) iOS update. Several beta SDKs are usually released to developers before the version is released publicly. The betas are intended to be used for testing for compatibility with existing applications and to add features that are newly available in that version of iOS.[4]

Obsolete Discontinued Current release old release Beta Old beta Future Release

= iPhone OS 1.x: SDK

iPhone OS 2.x: SDK

iPhone OS 3.x: SDK

iOS 4.x: SDK

iOS 5.x: SDK

iOS 6.x: SDK

iOS 7.x

Table of versions: iOS 7.x SDK
Version Build Release date Features/Notes iTunes version Xcode version

iOS 7.0 beta 1

11A4372q June 10, 2013 Release of iOS 7 beta iTunes 11 Xcode 5

iOS 7.0 beta 2

11A4400f June 24, 2013 iPad support added iTunes 11 Xcode 5

iOS 7.0 beta 3

11A4414e July 8, 2013 Bug fixes and crashes iTunes 11 Xcode 5

iOS 7.0 beta 4

11A4435d July 29, 2013 Bug fixes and crashes iTunes 11 Xcode 5

iOS 7.0 beta 5

11A4449a August 6, 2013 Minor Bug fixes and changes to appearance iTunes 11.1 beta 1 Xcode 5

iOS 7.0 beta 6

11A4449d August 15, 2013 Minor Bug fixes iTunes 11.1 beta 1 Xcode 5

iOS 7.0 Golden Master

11A465 September 10, 2013 iTunes 11.1 beta 2 Xcode 5
Version Build Release date Features/Notes iTunes version Xcode version

Features

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

Since its release, there has been some controversy regarding the refund policy in the fine print of the Developer Agreement with Apple. According to the agreement that developers must agree to, if someone purchases an app from the app store, 30% of the price goes to Apple, and 70% to the developer. If a refund is granted to the customer (at Apple's discretion), the 30% is returned to the customer from Apple, and 70% from the developer; however, Apple can then take another 30% of the cost from the developer to make up for Apple's loss.[26]

SDK contents

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

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

Along with the Xcode toolchain, the SDK contains the iPhone Simulator, a program used to simulate 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 rather than ARM.

The latest SDK, iOS 6.0 SDK in Xcode 4.5, requires an Intel Mac running Mac OS X 10.7.4 "Lion" or later. Other operating systems, including Microsoft Windows and older versions of Mac OS X, are not supported.[28]

Core Location

Core Location is a software framework in iOS. It is primarily used by applications on iOS (formerly iPhone OS) 2.0 or later for detection of the device's location, and on supported devices running iOS 3.0 or later, the device's heading. On the iPod Touch and iPad (Wifi-only models), Core Location uses Skyhook Wireless's Wi-Fi-based positioning system. On the original iPhone, it uses cellular tower triangulation in addition to Wi-Fi positioning. On the iPhone 3G or newer and iPad (Wifi + Cellular models), it also uses the available GPS hardware, and the iPhone 4S uses all the aforementioned technologies with the addition of GLONASS. The actual selection of location method is abstracted from the user and developer.

Core Location also allows applications to retrieve the device's heading from the built-in magnetometer (digital compass). It not only can detect the magnetic heading and true heading (combined with the GPS), but also can get raw heading data.[29] Heading information is only available in iOS 3.0 or later running on the iPhone 3GS or newer and all iPad models.

The framework was announced as part of the iPhone Software Roadmap event on March 6, 2008,[30] and was made available as part of the iOS SDK.

SVG

Mobile Safari supports SVG starting with iPhone OS 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.

Alternatives

Restrictions imposed by iOS Developer Program License

Terms in the iOS Developer Program License were relaxed by Apple in September 2010 with regard to using other interpreter languages. [31][32]

Java

Java running on an iOS platform currently is outside the bounds of the iOS SDK Agreement. The guideline in question is rule 3.3.2, which reads and which was changed after Sept 2010:

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 or used in an Application except for code that is interpreted and run by Apple’s Documented APIs and built-in interpreter(s).

In 2008, Sun Microsystems announced plans to release a Java Virtual Machine (JVM) for iOS, based on the Java Platform, Micro Edition version of Java. This would enable Java applications to run on iPhone and iPod Touch.[33] 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),[34] 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), could hinder development of the JVM without Apple's cooperation.[35]

It is possible to install and use a J2ME stack on an iPhone, though it involves jailbreaking.[36][37]

In 2008, 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.[38][39] Since it is required that all ARM9 or later processors include Jazelle support, the iPhone includes the hardware for accelerated Java execution.[40]

.NET/CLI

It is not permissible to install a .NET Framework or similar runtime on an iPhone, but by using Xamarin's commercial MonoTouch framework it is possible to achieve similar results. MonoTouch uses a custom fork of the Mono Project to compile all CLI bytecode in .NET to native ARM machine-code ahead of time.[41]

Since this framework is fully compatible with CLI compliant languages that do not emit runtime compiled code it is possible to develop with the wide range of languages supported by .NET, including C# and Visual Basic .NET. Though at this time the MonoTouch native ARM code compiler only supports C# with plans for Visual Basic .NET in the future.[42]

Flash

iOS does not support Adobe Flash, and Flash movies on web pages cannot be viewed in Mobile Safari[note 1]. Although Adobe has two versions of its software – Flash and Flash Lite – Apple views neither as suitable for the iPhone, claiming that full Flash would be too cumbersome for the iPhone, while Flash Lite would not provide a worthy experience for the users.[44]

Flash for Apple is a virtual machine with a just-in-time compiler. Apple's iOS SDK prevents any software on the iPhone from downloading or running external executable code (e.g. a virtual machine). Additionally, apps built under the iPhone Developer Program License Agreement for the iPhone SDK 4 Beta may not be originally written in any other programming language than C, C++, or Objective-C.[45] What Adobe had done in their CS5 release for the iPhone was to create a static compiler that allows developers to compile their Flash programs into apps that can run on the iPhone.[46] This would have allowed many Flash games to become apps, but still preventing web interfaces such as Hulu from working on the iPhone. But as these apps wouldn't have been originally written in C, C++ or Objective-C, they may not pass the App Store approval process when done under the terms of the iPhone SDK 4 Beta.

Unofficially, some Flash video sites can be viewed by using a jailbroken iPhone with certain third-party applications.[47] However, it results on extremely low frame rate due to the lack of memory bandwidth and CPU speed for Flash JIT execution. Another reason is the general lack of optimization of Flash for iOS, which can be seen in several benchmarks of Flash in Mac OS X.[48]

Since November 2009, Adobe has posted the following notice on the Flash download page when viewed from an iPhone:[49]

Flash Player not available for your device
“Apple restricts use of technologies required by products like Flash Player. Until Apple eliminates these restrictions, Adobe cannot provide Flash Player for the iPhone, iPod Touch and iPad.”

In November 2011, Adobe announced that they would no longer continue to develop a mobile version of Flash.[50]

Licensing

The SDK itself is a free download, but beta SDKs require a paid developer account. In order to release software, one must enroll in the iPhone Developer Program—a step requiring payment and Apple's approval. As of September 2012, cost of enrollment in the iPhone Developer Program is US$99 per year (the cost varies from country to country) for the standard program. Signed keys are provided 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 or she has developed. The SDK can only be installed in Mac OS X, and the latest SDK (iOS SDK 6.0 with Xcode 4.5.1, as of October 2012) requires OS X 10.7.4 "Lion" or later.

See also

Notes

  1. ^ Note that there are workarounds available which implement Flash in JavaScript – though they are not widely used.[43]

References

  1. ^ Jobs, Steve (2007-10-17). "Third Party Applications on the iPhone". Apple. {{cite web}}: |access-date= requires |url= (help); |archive-url= requires |url= (help); Missing or empty |url= (help)
  2. ^ "iOS Developer Program". Apple. Retrieved 2011-03-07.
  3. ^ "Did Apple Make A Mistake Choosing Objective-C For iPhone SDK? at Simon's Blog". Psynixis. 2008‐4‐25. Retrieved 2010-05-09. {{cite web}}: Check date values in: |date= (help)
  4. ^ "Pre-Release Software". Apple Developer (support). Apple. Retrieved 5 October 2012.
  5. ^ Block, Ryan (2008-03-06). "Live from Apple's iPhone SDK press conference". Engadget. Weblogs. Retrieved 2008-12-12.
  6. ^ Dan, Moren (2008-03-27). "iPhone SDK: now with 100% more Interface Builder". Macworld. Retrieved 2008-03-27.
  7. ^ "Interface Builder". Apple Inc. Retrieved 2008-03-27.
  8. ^ Apple Seeds New iPhone OS 2.0 Beta (5A240d), SDK Update (Beta 3) - MacRumors 2008-04-08.
  9. ^ iPhone SDK Beta 4 Now Available, Comes with OpenGL ES 3D Graphics Support - Gizmodo.
  10. ^ iPhone SDK Beta 5 Now Up: Bug Fixes, Updated OS Support - Gizmodo.
  11. ^ MacRumors - Apple's .Mac Service to be Renamed, Revamped? - MacRumors 2008-05-30.
  12. ^ Mac OS 10.6 reference in iPhone SDK beta 6 - MacRumors 2008-05-29.
  13. ^ "Beta Firmware". The iPhone Wiki. iPhone.
  14. ^ "iPhone SDK beta release 8 - Download Notes" (PDF). Apple Inc. June 26, 2008. Retrieved 2008-06-27.
  15. ^ "iPhone SDK 2.1 beta release 1 released". Gearlive. July 25, 2008. Retrieved 2008-07-25.
  16. ^ "Apple Seeds 2nd Beta of iPhone 2.1 Firmware to Developers". MacRumors. July 30, 2008.
  17. ^ "Apple Releases iPhone Firmware 2.1 Beta 3". MacRumors. August 8, 2008.
  18. ^ The iPhone - iPhone OS 2.2 Developers beta released
  19. ^ "iPhone OS 3.0 is coming, preview on March 17th". Engadget. Retrieved 2010-05-09.
  20. ^ Martin, David (2009-04-01). "Apple releases iPhone OS 3 beta 2 to developers". CNET Reviews. Retrieved 2009-04-03.
  21. ^ Ziegler, Chris (2009-04-15). "iPhone OS 3.0 beta 3 goes live". Engadget. Retrieved 2009-04-15.
  22. ^ Miller,Ross (2009-04-28). "iPhone OS 3.0 beta 4, iTunes 8.2 pre-release now live". Engadget. Retrieved 2009-04-28.
  23. ^ Miller, Ross (2009-05-06). "iPhone OS 3.0 beta 5 now available". Engadget. Retrieved 2009-05-06.
  24. ^ a b c Erica Ogg (2009-06-08). "Live blog: WWDC 2009 keynote". CNET. Retrieved 2013-02-13. Cite error: The named reference "news.cnet.com1" was defined multiple times with different content (see the help page).
  25. ^ "Introducing the iPhone Developer Program". Apple Inc.
  26. ^ "iPhone developers could be bankrupted".
  27. ^ Arnold, Kim (2008-03-06). "Apple Releases iPhone SDK, Demos Spore, Instant Messaging". MacRumors.com. Retrieved 2008-03-10.
  28. ^ "Support - iOS Dev Center - Apple Developer". Apple, Inc. 2010-11-10.
  29. ^ "CLHeading Reference". Retrieved 14 September 2012.
  30. ^ Dalrymple, Jim. "Apple unveils iPhone SDK | Mobile". Macworld. Retrieved 2010-05-09.
  31. ^ "Statement by Apple on App Store Review Guidelines". Apple Inc. September 9, 2010. Retrieved August 26, 2011.
  32. ^ Peter Kafka (September 9, 2010). "Apple Hands App Developers an Olive Branch. What About Adobe and AdMob?". All things D. Retrieved August 26, 2011.
  33. ^ Krill, Paul (2008-03-08). "Sun: We'll put Java on the iPhone". Infoworld. Retrieved 2008-03-08.
  34. ^ Krazit, Tom (2008-03-07). "The iPhone SDK: The day after". CNet. Retrieved 2008-03-29.
  35. ^ Krill, Paul (2008-03-14). "Sun's plan for Java on iPhone could hit roadblock". The Industry Standard. Retrieved 2008-03-29.
  36. ^ Guisi, Bruno (2008-05-25). "First steps with iPhone and Java". Retrieved 2008-08-31.
  37. ^ Chakraborty, Angsuman (2008-06-10). "How To Install, Compile, Run Java On iPhone". Retrieved 2008-08-31.
  38. ^ Kizito Kasozi, Emmanuel (2008-04-28). "Apple, Sun Talks Gives Hope for Java on iPhone". ibtimes.com. Retrieved 2008-08-31.
  39. ^ "Innaworks announces Java Development Solution for iPhone". Innaworks. 2008-03-28. Retrieved 2008-08-31. {{cite web}}: External link in |publisher= (help)
  40. ^ Block, Ryan (2007-07-01). "iPhone processor found: 620MHz ARM CPU". engadget.com. Retrieved 2009-01-02.
  41. ^ Paul, Ryan (2009-09-15). "MonoTouch drops .NET into Apple's walled app garden". Ars Technica. Retrieved 2009-11-23.
  42. ^ "MonoTouch FAQ". Xamerin. 2012-06-27. Retrieved 2012-07-09.
  43. ^ Irish, Paul, "Demos", Gordon.
  44. ^ Krazit, Tom (2008-03-19). "Adobe realizes SDK not enough for Flash on iPhone | Apple". News. CNET. Retrieved 2010-05-09.
  45. ^ Gruber, John (April 8, 2010). "New iPhone Developer Agreement Bans the Use of Adobe's Flash-to-iPhone Compiler". Daring Fireball. Retrieved April 12, 2010.
  46. ^ Parr, Ben. "Adobe Announces Flash Support for iPhone (But Only for Apps)". Mashable. Retrieved 2010-05-09.
  47. ^ iMobile cinema.
  48. ^ Paul, Ryan (2008-10-17). "Benchmarking Flash Player 10 (Updated)". Ars technica. Retrieved 2010-05-09.
  49. ^ "Adobe Gets Sharky Snarky With Apple's iPhone Flash Ban – iPhone Flash Support". Gizmodo. 2009-11-02. Retrieved 2010-05-09.
  50. ^ "Flash to Focus on PC Browsing and Mobile Apps". Adobe. 2011-11-09. Retrieved 2012-12-17.