Adobe AIR and iPhone - how it works?
Asked Answered
G

2

10

Anyone knows how the Adobe AIR application are converted to iPhone apps? I see two ways - either the Adobe AIR virtual machine mus be part of every application or they must convert all ActionScript calls to Cocoa Touch calls somehow or have an Objective-C twin for every ActionScript class and then compile it to ARM assembler.

I am just curious how it is technically done.

BR STeN

Gastrotrich answered 28/3, 2012 at 7:20 Comment(0)
C
11

Unlike other platforms, Adobe Air is compiled into native code when you build an iOS application.

Here is a part of a blog post from Adobe:

We created a new compiler front end that allowed LLVM to understand ActionScript 3 and used its existing ARM back end to output native ARM assembly code. We call this Ahead of Time (AOT) compilation—in contrast to the way Adobe Flash Player and Adobe AIR function on the desktop using Just in Time (JIT) compilation. Since we are able to compile ActionScript to ARM ahead of time, the application gets all the performance benefits that the JIT would offer and the license compliance of not requiring a runtime in the final application.

That means that:

  1. The Air runtime is not packaged within the application.

  2. AS3 code is not converted into Objective-C code, but is compiled directly into native assembly code.

Create answered 28/3, 2012 at 7:58 Comment(4)
Hi, see Adrian Pirvulescu post - we suggested that there is a runtime part of the application, exactly the opposite you are saying":)Gastrotrich
@Gastrotrich - Unfortunately that's not true for iOS due to Apple's restrictions. And it's not me saying that :) it is Adobe: "not requiring a runtime in the final application".Create
Does this means that UI components I will use in Adobe AIR have their "mirror" in some Adobe Objective-C library which will be added into my application? I assume they cannot use the Cocoa Touch iOS UI components.Gastrotrich
@Gastrotrich No that is not the case. The UI components that your application has in the end is nothing but calls to generate bitmaps. Those calls would be translated to native iOS calls but the "bitmaps" will be same.Dreary
G
1

taken from adobe website: http://www.adobe.com/devnet/air/articles/air3-install-and-deployment-options.edu.html

Note that the captive runtime is the only option that is available when using AIR to target iOS. Since iOS does not support a shared runtime model, the captive model remains the only option on this platform.

Anyone using the captive runtime should be aware that it has two downsides:

Increased application size. Since an entire copy of the runtime is included in your application, the size of the application package is necessarily increased.

Increased security burden.

Gaylord answered 14/2, 2013 at 22:11 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.