IPhone SDK
Encyclopedia
The iOS SDK (formerly iPhone SDK) is a software development kit
Software development kit
A software development kit is typically a set of software development tools that allows for the creation of applications for a certain software package, software framework, hardware platform, computer system, video game console, operating system, or similar platform.It may be something as simple...

 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
Software development kit
A software development kit is typically a set of software development tools that allows for the creation of applications for a certain software package, software framework, hardware platform, computer system, video game console, operating system, or similar platform.It may be something as simple...

 (SDK) would be made available to third-party developers in February 2008. 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 iPhone Developer Program fee, which is $99.00 USD per year.
Since the release of Xcode 3.1
Xcode
Xcode is a suite of tools, developed by Apple, for developing software for Mac OS X and iOS. Xcode 4.2, the latest major version, is available on the Mac App Store for free for Mac OS X 10.7 , and on the Apple Developer Connection website for free to registered developers Xcode is a suite of tools,...

, Xcode is the development environment for the iOS SDK. iPhone applications, like , are written in Objective-C
Objective-C
Objective-C is a reflective, object-oriented programming language that adds Smalltalk-style messaging to the C programming language.Today, it is used primarily on Apple's Mac OS X and iOS: two environments derived from the OpenStep standard, though not compliant with it...

, with some elements of an application able to be written in C or C++.

SDK release history

Version Build Date Notes
iOS 1.2b1 Beta 1 5A147p March 6, 2008 Release for iPhone OS version 1.2b1. Announced at an Apple Town Hall meeting.
iOS 2.0b2 Beta 2 5A225c March 27, 2008 Release for iPhone OS version 2.0b2, which added Interface Builder
Interface Builder
Interface Builder is a software development application for Apple's Mac OS X operating system. It is part of Xcode , the Apple Developer Connection developer's toolset. Interface Builder allows Cocoa and Carbon developers to create interfaces for applications using a graphical user...

, an application for building graphical user interface
Graphical user interface
In computing, a graphical user interface is a type of user interface that allows users to interact with electronic devices with images rather than text commands. GUIs can be used in computers, hand-held devices such as MP3 players, portable media players or gaming devices, household appliances and...

s for iPhone applications.
iOS 2.0b3 Beta 3 5A240d April 8, 2008 Release for iPhone OS version 2.0b3.
iOS 2.0b4 Beta 4 5A258f April 23, 2008 Release for iPhone OS version 2.0b4. This version of the SDK supports OpenGL 3D graphics, primarily used to make games, 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.
iOS 2.0b5 Beta 5 5A274d May 6, 2008 Release for iPhone OS version 2.0b5.
iOS 2.0b6 Beta 6 5A292g May 28, 2008 Release for iPhone OS version 2.0b6. The code in this update gave hints about updates to Apple's .Mac service and also gave a first reference to the upcoming version of Mac OS X, version 10.6 Snow Leopard
Mac OS X v10.6
Mac OS X Snow Leopard is the seventh major release of Mac OS X, Apple's desktop and server operating system for Macintosh computers.Snow Leopard was publicly unveiled on June 8, 2009 at the Apple Worldwide Developers Conference...

.
iOS 2.0b7 Beta 7 5A331 June 9, 2008 Release for iPhone OS version 2.0b7, which unlocked Apple's .Mac replacement, MobileMe
MobileMe
MobileMe was a subscription-based collection of online services and software offered by Apple Inc. Originally launched on January 5, 2000, as iTools, a free collection of Internet-based services for users of Mac OS 9, Apple relaunched it as .Mac on July 17, 2002, when it became a paid subscription...

. This release was for WWDC, Apple's developer's conference, which is noted as part of the name of the iPhone OS beta download.
iOS 2.0b8 Beta 8 5A345 June 26, 2008 Release for iPhone OS version 2.0b8.
iOS 2.0 Final July 11, 2008 Release for iPhone OS version 2.0. This coincided with the launch of the App Store.
iOS 2.1 Beta 1 5F90 July 24, 2008 Release for iPhone OS version 2.1. 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.
iOS 2.1 Beta 2 July 30, 2008 Release for iPhone OS version 2.1.
iOS 2.1 Beta 3 August 8, 2008 Release for iPhone OS version 2.1.
iOS 2.1 Beta 4 August 16, 2008 Release for iPhone OS version 2.1.
iOS 2.1 Final September 12, 2008 Release for iPhone OS 2.1.
iOS 2.2 Beta 1 5G29 September 25, 2008 Release for iPhone OS version 2.2.
iOS 2.2 Beta 2 October 24, 2008 Release for iPhone OS version 2.2.
iOS 2.2 Final 9M2621 November 20, 2008 Release for iPhone OS version 2.2.
iOS 2.2.1 9M2621a January 27, 2009 Release for iPhone OS version 2.2.1.
iOS 3.0 Beta 1 March 17, 2009 Preview of iPhone OS version 3.0 and SDK 3.0 beta release.
iOS 3.0 Beta 2 March 31, 2009 Release for iPhone OS version 3.0.
iOS 3.0 Beta 3 April 14, 2009 Release for iPhone OS version 3.0.
iOS 3.0 Beta 4 April 28, 2009 Release for iPhone OS version 3.0.
iOS 3.0 Beta 5 May 6, 2009 Release for iPhone OS version 3.0.
iOS 3.0 Golden Master June 8, 2009 Final Release for iPhone OS version 3.0 for developers and private testers only.
iOS 3.0 Final June 17, 2009 Final release for iPhone OS version 3.0 for standard users was released on June 17.
iOS 3.1 Beta 1 June 30, 2009 First beta release for iPhone OS version 3.1 released to developers June 30.
iOS 3.1 Beta 2 July 14, 2009 Second beta release for iPhone OS version 3.1 released to developers July 14.
iOS 3.1 Beta 3 July 27, 2009 Third beta release for iPhone OS version 3.1 released to developers July 27.
iOS 3.1 Final September 9, 2009 Final release for iPhone OS version 3.1 for standard users was released in the Apple "It's Only Rock and Roll, but we like it" special event on September 9, 2009.
iOS 3.2 Beta 1 January 27, 2010 Initial, developer-only beta release for iPhone OS version 3.2. iPad only.
iOS 3.2 Beta 2 February 9, 2010 iPad only.
iOS 3.2 Beta 3 February 23, 2010 iPad only.
iOS 3.2 Beta 4 10M2144 March 9, 2010 iPad only.
iOS 3.2 Beta 5 10M2148 March 17, 2010 iPad only.
iOS 3.2 Golden Master March 29, 2010 iPad only.
iOS 3.2 Final 10M2148 April 3, 2010 First public release of iPhone OS version 3.2. iPad only.
iOS 4.0 Beta 1 8A230m April 8, 2010 First beta release for iOS version 4.0 released to developers April 8.
iOS 4.0 Beta 2 8A248c April 20, 2010 Second beta release for iOS version 4.0 released to developers April 20.
iOS 4.0 Beta 3 8A260b May 4, 2010 Third beta release for iOS version 4.0 released to developers May 4.
iOS 4.0 Beta 4 8A260b May 18, 2010 Fourth beta release for iOS version 4.0 released to developers May 18.
iOS 4.0 Golden Master 8A293 June 7, 2010 Golden Master release for iOS version 4.0 released to developers June 7.
iOS 4.0 Final 8A293 June 21, 2010 The final release of the iOS 4.0.
iOS 4.1 Beta 1 July 14, 2010 First beta release for iOS version 4.1 released to developers July 14.
iOS 4.1 Beta 2 July 27, 2010 Second beta release for iOS version 4.1.
iOS 4.1 Beta 3 August 3, 2010 Third beta release for iOS version 4.1.
iOS 4.1 Final 10M2309 September 8, 2010 Final release for iOS version 4.1 released to developers September 8.
iOS 4.2 Beta 1 September 15, 2010 First beta release for iOS version 4.2.
iOS 4.2 Beta 2 September 28, 2010 Second beta release for iOS version 4.2.
iOS 4.2 Beta 3 October 12, 2010 Third beta release for iOS version 4.2.
iOS 4.2 Golden Master November 1, 2010 Golden Master seed release for iOS version 4.2.
iOS 4.2 Golden Master November 18, 2010 Second Golden Master seed release for iOS version 4.2, numbered as 4.2.1.
iOS 4.2 Final November 22, 2010 Final release for iOS version 4.2 released to developers November 22.
iOS 4.3 Beta 1 8F5148b January 12, 2011 Drops support for iPhone 3G, and second-generation iPod touch.
iOS 4.3 Beta 2 9F5135d January 19, 2011
iOS 4.3 Beta 3 8F5166b February 1, 2011
iOS 4.3 Golden Master 8F190 March 3, 2011 Also includes Xcode
Xcode
Xcode is a suite of tools, developed by Apple, for developing software for Mac OS X and iOS. Xcode 4.2, the latest major version, is available on the Mac App Store for free for Mac OS X 10.7 , and on the Apple Developer Connection website for free to registered developers Xcode is a suite of tools,...

 4 golden master to support iOS 4.3.
iOS 4.3 Final 8F190 March 9, 2011 Also includes Xcode
Xcode
Xcode is a suite of tools, developed by Apple, for developing software for Mac OS X and iOS. Xcode 4.2, the latest major version, is available on the Mac App Store for free for Mac OS X 10.7 , and on the Apple Developer Connection website for free to registered developers Xcode is a suite of tools,...

 4 final.
iOS 5.0 beta 1 9a5220p June 6, 2011 iTunes 10.5 beta 1
iOS 5.0 beta 2 9A524Bd June 24, 2011 iTunes 10.5 beta 2
iOS 5.0 beta 3 9A5259f July 11, 2011 iTunes 10.5 beta 3
iOS 5.0 beta 4 9A5274d July 22, 2011 iTunes 10.5 beta 4 Xcode 4.2 Preview 4
iOS 5.0 beta 5 9A5288d August 6, 2011 iTunes 10.5 beta 5 Xcode 4.2 Preview 5
iOS 5.0 beta 6 9A5302b August 19, 2011 iTunes 10.5 beta 6 Xcode 4.2 Preview 6
iOS 5.0 beta 7 9A5313e August 31, 2011 iTunes 10.5 beta 7 Xcode 4.2 Preview 7
iOS 5.0 Golden Master 9A334 October 4, 2011 iTunes 10.5 beta 9 Xcode 4.2 Golden Master
iOS 5.0 Final 9A334 October 12, 2011 iTunes 10.5 Xcode 4.2

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.

Since its release, there has been some controversy regarding the refund policy in the fine print
Fine print
Fine print, small print, or "mouseprint" is less noticeable print smaller than the more obvious larger print it accompanies that advertises or otherwise describes or partially describes a commercial product or service...

 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.

SDK contents

As iOS uses a variant of the same XNU kernel
XNU
XNU is the computer operating system kernel that Apple Inc. acquired and developed for use in the Mac OS X operating system and released as free and open source software as part of the Darwin operating system...

 that is found in Mac OS X
Mac OS X
Mac OS X is a series of Unix-based operating systems and graphical user interfaces developed, marketed, and sold by Apple Inc. Since 2002, has been included with all new Macintosh computer systems...

, the tool chain used for developing on iOS is also based on Xcode
Xcode
Xcode is a suite of tools, developed by Apple, for developing software for Mac OS X and iOS. Xcode 4.2, the latest major version, is available on the Mac App Store for free for Mac OS X 10.7 , and on the Apple Developer Connection website for free to registered developers Xcode is a suite of tools,...

.

The SDK is broken down into the following sets:
  • Cocoa Touch
    Cocoa Touch
    Cocoa Touch is an API for building software programs to run on the iPhone, iPod Touch, and iPad from Apple Inc.Cocoa Touch provides an abstraction layer of iOS, the operating system for the iPhone, iPod Touch, and iPad. Cocoa Touch is based on the Mac OS X Cocoa API toolset and, like it, is...

    • Multi-touch
      Multi-touch
      In computing, multi-touch refers to a touch sensing surface's ability to recognize the presence of two or more points of contact with the surface...

       events and controls
    • Accelerometer
      Accelerometer
      An accelerometer is a device that measures proper acceleration, also called the four-acceleration. This is not necessarily the same as the coordinate acceleration , but is rather the type of acceleration associated with the phenomenon of weight experienced by a test mass that resides in the frame...

       support
    • View hierarchy
    • Localization (i18n)
      Internationalization and localization
      In computing, internationalization and localization are means of adapting computer software to different languages, regional differences and technical requirements of a target market...

    • Camera
      Camera
      A camera is a device that records and stores images. These images may be still photographs or moving images such as videos or movies. The term camera comes from the camera obscura , an early mechanism for projecting images...

       support
  • Media
    • OpenAL
      OpenAL
      OpenAL is a cross-platform audio API. It is designed for efficient rendering of multichannel three dimensional positional audio. Its API style and conventions deliberately resemble those of OpenGL.- History :...

    • audio mixing
      Audio mixing (recorded music)
      In audio recording, audio mixing is the process by which multiple recorded sounds are combined into one or more channels, most commonly two-channel stereo. In the process, the source signals' level, frequency content, dynamics, and panoramic position are manipulated and effects such as reverb may...

       and recording
      Sound recording and reproduction
      Sound recording and reproduction is an electrical or mechanical inscription and re-creation of sound waves, such as spoken voice, singing, instrumental music, or sound effects. The two main classes of sound recording technology are analog recording and digital recording...

    • Video playback
    • Image file formats
    • Quartz
      Quartz (graphics layer)
      Quartz specifically refers to a pair of Mac OS X technologies, each part of the Core Graphics framework: Quartz 2D and Quartz Compositor. It includes both a 2D renderer in Core Graphics and the composition engine that sends instructions to the graphics card...

    • Core Animation
      Core Animation
      Core Animation is a data visualization API used by Mac OS X 10.5 and later as well as iOS to produce animated user interfaces.-Overview:Core Animation provides a way for developers to produce animated user interfaces via an implicit animation model as well as an "explicit" model...

    • OpenGL ES
      OpenGL ES
      OpenGL for Embedded Systems is a subset of the OpenGL 3D graphics application programming interface designed for embedded systems such as mobile phones, PDAs, and video game consoles. OpenGL ES is managed by the not-for-profit technology consortium, the Khronos Group, Inc.- Versions :Several...

  • Core Services
    Core Services
    Core Services are a set of Mac OS X and iOS application programming interfaces that architecturally are underneath Carbon, Cocoa and Cocoa Touch. In addition to Core Foundation, it also encompasses other APIs including Grand Central Dispatch, Blocks, CFNetwork, CarbonCore, OSServices, and...

    • Networking
    • Embedded SQLite
      SQLite
      SQLite is an ACID-compliant embedded relational database management system contained in a relatively small C programming library. The source code for SQLite is in the public domain and implements most of the SQL standard...

       database
    • Core Location
    • Threads
      Thread (computer science)
      In computer science, a thread of execution is the smallest unit of processing that can be scheduled by an operating system. The implementation of threads and processes differs from one operating system to another, but in most cases, a thread is contained inside a process...

    • CoreMotion
  • Mac OS X Kernel
    XNU
    XNU is the computer operating system kernel that Apple Inc. acquired and developed for use in the Mac OS X operating system and released as free and open source software as part of the Darwin operating system...

    • TCP/IP
      Transmission Control Protocol
      The Transmission Control Protocol is one of the core protocols of the Internet Protocol Suite. TCP is one of the two original components of the suite, complementing the Internet Protocol , and therefore the entire suite is commonly referred to as TCP/IP...

    • Sockets
      Internet socket
      In computer networking, an Internet socket or network socket is an endpoint of a bidirectional inter-process communication flow across an Internet Protocol-based computer network, such as the Internet....

    • Power management
      Power management
      Power management is a feature of some electrical appliances, especially copiers, computers and computer peripherals such as monitors and printers, that turns off the power or switches the system to a low-power state when inactive. In computing this is known as PC power management and is built...

    • File system
      File system
      A file system is a means to organize data expected to be retained after a program terminates by providing procedures to store, retrieve and update data, as well as manage the available space on the device which contain it. A file system organizes data in an efficient manner and is tuned to the...

    • Security
      Computer security
      Computer security is a branch of computer technology known as information security as applied to computers and networks. The objective of computer security includes protection of information and property from theft, corruption, or natural disaster, while allowing the information and property to...



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 Snow Leopard
Mac OS X v10.6
Mac OS X Snow Leopard is the seventh major release of Mac OS X, Apple's desktop and server operating system for Macintosh computers.Snow Leopard was publicly unveiled on June 8, 2009 at the Apple Worldwide Developers Conference...

 or later. Other operating systems, including Microsoft Windows
Microsoft Windows
Microsoft Windows is a series of operating systems produced by Microsoft.Microsoft introduced an operating environment named Windows on November 20, 1985 as an add-on to MS-DOS in response to the growing interest in graphical user interfaces . Microsoft Windows came to dominate the world's personal...

 and older versions of Mac OS X
Mac OS X
Mac OS X is a series of Unix-based operating systems and graphical user interfaces developed, marketed, and sold by Apple Inc. Since 2002, has been included with all new Macintosh computer systems...

, are not supported.

Core Location

Core Location is a software framework in iOS. It is primarily used by applications on iPhone OS 2.0 for detection of the device's location. On the iPod Touch, Core Location uses Skyhook Wireless
Skyhook Wireless
Skyhook Wireless is a Boston-based company that developed a technology for determining geographical location using Wi-Fi as the underlying reference system. Using the MAC addresses of nearby wireless access points and proprietary algorithms, Skyhook's Wi-Fi Positioning System WPS can determine...

's Wi-Fi
Wi-Fi
Wi-Fi or Wifi, is a mechanism for wirelessly connecting electronic devices. A device enabled with Wi-Fi, such as a personal computer, video game console, smartphone, or digital audio player, can connect to the Internet via a wireless network access point. An access point has a range of about 20...

-based positioning system. On the original iPhone, it uses cellular tower triangulation
Mobile phone tracking
Mobile phone tracking refers to the attaining of the current position of a mobile phone, stationary or moving. Localization may occur either via multilateration of radio signals between radio towers of the network and the phone, or simply via GPS...

 in addition to Wi-Fi positioning. On the iPhone 3G and 3GS, it also uses the available GPS hardware, on the iPhone 3GS and iPhone 4 it also uses the compass. The actual selection of location method is abstracted from the user and developer.

It was announced as part of the iPhone Software Roadmap event on March 6, 2008, 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
Synchronized Multimedia Integration Language
SMIL , the Synchronized Multimedia Integration Language, is a W3C recommended XML markup language for describing multimedia presentations. It defines markup for timing, layout, animations, visual transitions, and media embedding, among other things...

 animation is not yet supported for SVG graphics. It will be delivered after the Webkit
WebKit
WebKit is a layout engine designed to allow web browsers to render web pages. WebKit powers Google Chrome and Apple Safari and by October 2011 held over 33% of the browser market share between them. It is also used as the basis for the experimental browser included with the Amazon Kindle ebook...

 SMIL implementation is mature enough. In addition to SVG, the HTML
HTML
HyperText Markup Language is the predominant markup language for web pages. HTML elements are the basic building-blocks of webpages....

 Canvas
Canvas (HTML element)
The canvas element is part of HTML5 and allows for dynamic, scriptable rendering of 2D shapes and bitmap images. It is a low level, procedural model that updates a bitmap and does not have a built-in scene graph.- History :...

 is supported.

Restrictions imposed by iOS Developer Program License

Terms in the iOS Developer Program License were relaxed by Apple in Sept 2010 with regard to using other interpreter languages.

Java

Apple has not announced any plans to enable Java
Java (programming language)
Java is a programming language originally developed by James Gosling at Sun Microsystems and released in 1995 as a core component of Sun Microsystems' Java platform. The language derives much of its syntax from C and C++ but has a simpler object model and fewer low-level facilities...

 to run on the iPhone. Sun Microsystems
Sun Microsystems
Sun Microsystems, Inc. was a company that sold :computers, computer components, :computer software, and :information technology services. Sun was founded on February 24, 1982...

 announced plans to release a Java Virtual Machine
Java Virtual Machine
A Java virtual machine is a virtual machine capable of executing Java bytecode. It is the code execution component of the Java software platform. Sun Microsystems stated that there are over 4.5 billion JVM-enabled devices.-Overview:...

 (JVM) for iOS, based on the Java Platform, Micro Edition
Java Platform, Micro Edition
Java Platform, Micro Edition, or Java ME, is a Java platform designed for embedded systems . Target devices range from industrial controls to mobile phones and set-top boxes...

 version of Java. This would enable Java applications to run on iPhone and iPod Touch.

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

It is clear that Java
Java (programming language)
Java is a programming language originally developed by James Gosling at Sun Microsystems and released in 1995 as a core component of Sun Microsystems' Java platform. The language derives much of its syntax from C and C++ but has a simpler object model and fewer low-level facilities...

 running on the iPhone 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:
However, some iPhone users have shown that it was possible to install and use a J2ME
Java Platform, Micro Edition
Java Platform, Micro Edition, or Java ME, is a Java platform designed for embedded systems . Target devices range from industrial controls to mobile phones and set-top boxes...

 stack on an iPhone, though it involved jailbreaking.

It has also been revealed that there were talks between Sun
Sun Microsystems
Sun Microsystems, Inc. was a company that sold :computers, computer components, :computer software, and :information technology services. Sun was founded on February 24, 1982...

 and Apple concerning the availability of Java on the iPhone, and that Sun was working in that intent with a company called Innaworks. Since it is required that all ARM
ARM architecture
ARM is a 32-bit reduced instruction set computer instruction set architecture developed by ARM Holdings. It was named the Advanced RISC Machine, and before that, the Acorn RISC Machine. The ARM architecture is the most widely used 32-bit ISA in numbers produced...

9 or later processors include Jazelle
Jazelle
Jazelle DBX allows some ARM processors to execute Java bytecode in hardware as a third execution state alongside the existing ARM and Thumb modes. Jazelle functionality was specified in the ARMv5TEJ architecture and the first processor with Jazelle technology was the ARM926EJ-S...

 support, the iPhone includes the hardware for accelerated Java execution.

.NET/CLI

It is not permissible to install a .NET Framework
.NET Framework
The .NET Framework is a software framework that runs primarily on Microsoft Windows. It includes a large library and supports several programming languages which allows language interoperability...

 or similar runtime on an iPhone, but by using Novell
Novell
Novell, Inc. is a multinational software and services company. It is a wholly owned subsidiary of The Attachmate Group. It specializes in network operating systems, such as Novell NetWare; systems management solutions, such as Novell ZENworks; and collaboration solutions, such as Novell Groupwise...

's commercial MonoTouch framework it is possible to achieve similar results. MonoTouch uses a custom fork of the Mono Project to compile all CLI
Common Language Infrastructure
The Common Language Infrastructure is an open specification developed by Microsoft and standardized by ISO and ECMA that describes the executable code and runtime environment that form the core of the Microsoft .NET Framework and the free and open source implementations Mono and Portable.NET...

 bytecode in .NET to native ARM machine-code ahead of time.

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
Visual Basic .NET
Visual Basic .NET , is an object-oriented computer programming language that can be viewed as an evolution of the classic Visual Basic , which is implemented on the .NET Framework...

.

Flash

iOS does not support Adobe Flash
Adobe Flash
Adobe Flash is a multimedia platform used to add animation, video, and interactivity to web pages. Flash is frequently used for advertisements, games and flash animations for broadcast...

, and Flash movies on web pages cannot be viewed in Mobile Safari
Safari (web browser)
Safari is a web browser developed by Apple Inc. and included with the Mac OS X and iOS operating systems. First released as a public beta on January 7, 2003 on the company's Mac OS X operating system, it became Apple's default browser beginning with Mac OS X v10.3 "Panther". Safari is also the...

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

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 (programming language)
C is a general-purpose computer programming language developed between 1969 and 1973 by Dennis Ritchie at the Bell Telephone Laboratories for use with the Unix operating system....

, C++
C++
C++ is a statically typed, free-form, multi-paradigm, compiled, general-purpose programming language. It is regarded as an intermediate-level language, as it comprises a combination of both high-level and low-level language features. It was developed by Bjarne Stroustrup starting in 1979 at Bell...

, or Objective-C
Objective-C
Objective-C is a reflective, object-oriented programming language that adds Smalltalk-style messaging to the C programming language.Today, it is used primarily on Apple's Mac OS X and iOS: two environments derived from the OpenStep standard, though not compliant with it...

. 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. This would have allowed many Flash games to become apps, but still preventing web interfaces such as Hulu
Hulu
Hulu is a website and over-the-top subscription service offering ad-supported on-demand streaming video of TV shows, movies, webisodes and other new media, trailers, clips, and behind-the-scenes footage from NBC, Fox, ABC, and Obstacle on October 20th 2011 Nickelodeon and CBS and many other...

 from working on the iPhone. But as these apps wouldn't have been originally written in C
C (programming language)
C is a general-purpose computer programming language developed between 1969 and 1973 by Dennis Ritchie at the Bell Telephone Laboratories for use with the Unix operating system....

, C++
C++
C++ is a statically typed, free-form, multi-paradigm, compiled, general-purpose programming language. It is regarded as an intermediate-level language, as it comprises a combination of both high-level and low-level language features. It was developed by Bjarne Stroustrup starting in 1979 at Bell...

 or Objective-C
Objective-C
Objective-C is a reflective, object-oriented programming language that adds Smalltalk-style messaging to the C programming language.Today, it is used primarily on Apple's Mac OS X and iOS: two environments derived from the OpenStep standard, though not compliant with it...

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

Since November 2009, Adobe has posted the following notice on the Flash download page when viewed from an iPhone:
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
Adobe Flash Player
The Adobe Flash Player is software for viewing multimedia, Rich Internet Applications and streaming video and audio, on a computer web browser or on supported mobile devices. Flash Player runs SWF files that can be created by the Adobe Flash authoring tool, by Adobe Flex or by a number of other...

 for the iPhone
IPhone
The iPhone is a line of Internet and multimedia-enabled smartphones marketed by Apple Inc. The first iPhone was unveiled by Steve Jobs, then CEO of Apple, on January 9, 2007, and released on June 29, 2007...

, iPod Touch
IPod Touch
The iPod Touch is a portable media player, personal digital assistant, handheld game console, and Wi-Fi mobile device designed and marketed by Apple Inc. The iPod Touch adds the multi-touch graphical user interface to the iPod line...

 and iPad
IPad
The iPad is a line of tablet computers designed, developed and marketed by Apple Inc., primarily as a platform for audio-visual media including books, periodicals, movies, music, games, and web content. The iPad was introduced on January 27, 2010 by Apple's then-CEO Steve Jobs. Its size and...

.”

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. , cost of enrollment in the iPhone Developer Program is US$
United States dollar
The United States dollar , also referred to as the American dollar, is the official currency of the United States of America. It is divided into 100 smaller units called cents or pennies....

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.
The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK