01.02.2014 Views

Objective-C Fundamentals

Objective-C Fundamentals

Objective-C Fundamentals

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Mono (.NET)<br />

323<br />

the iOS platform. For a while, this caused Adobe to discontinue the Packager for<br />

iPhone component of CS5, and the future remained uncertain for a number of alternative<br />

development tools (such as Corona and Rhode). All of these tools were arguably<br />

creating applications that “link to Documented APIs through an intermediary<br />

translation or compatibility layer or tool” and, for the most part, weren’t written in C,<br />

C++, or <strong>Objective</strong>-C.<br />

The whole war of words between Adobe and Apple can perhaps be best summed<br />

up with the following excerpt from an Apple press release dated September 9, 2010<br />

(www.apple.com/pr/library/2010/09/09statement.html), in which Apple sought to<br />

clarify the terms of the license agreement and its intent behind the changes:<br />

We are continually trying to make the App Store even better. We have listened to our<br />

developers and taken much of their feedback to heart. Based on their input, today we are<br />

making some important changes to our iOS Developer Program license in sections 3.3.1,<br />

3.3.2 and 3.3.9 to relax some restrictions we put in place earlier this year.<br />

In particular, we are relaxing all restrictions on the development tools used to create iOS<br />

apps, as long as the resulting apps do not download any code. This should give developers<br />

the flexibility they want, while preserving the security we need.<br />

One interesting side note about the Packager for iPhone is that it’s designed to work<br />

on a Windows-based PC, meaning users don’t need to purchase a Mac to develop<br />

iPhone applications. The Flash toolchain can produce iPhone applications ready for<br />

deployment to a device or submission to the iTunes App Store. Developers still are<br />

required to purchase a yearly subscription to the iPhone Developer program in order<br />

to obtain the code-signing certificates required.<br />

C.6 Mono (.NET)<br />

Developers familiar with the Microsoft .NET development platform may have heard of<br />

the Mono open source project, produced by Xamarin (previously Novell). The Mono<br />

project aims to deliver a compatible .NET CLR runtime environment and development<br />

tools for environments not supported by Microsoft’s own implementation (primarily<br />

various Linux- and UNIX-based systems, such as Mac OS X).<br />

By reutilizing a number of key Mono technologies, Xamarin has created a .NET<br />

runtime environment that can run .NET applications on iOS-powered devices. This<br />

means that a developer can use Visual Studio (or Xamarin’s MonoDevelop IDE) to<br />

develop C# applications that can be deployed to iPhones. You still enjoy most of the<br />

comforts of .NET, such as a garbage collector and an extensive set of base class libraries.<br />

MonoTouch works in a fashion similar to Adobe’s Flash solution. Because iOS<br />

doesn’t support runtime environments that require just-in-time (JIT) compilation,<br />

MonoTouch contains a compiler that’s capable of ahead-of-time (AOT) compilation.<br />

This turns Common Intermediate Language (CIL)-based assemblies into native ARM<br />

code at compile time rather than performing this process each time the application<br />

starts. One limitation is that a few base class library APIs, such as System.Reflection.Emit

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!