Linked by Hadrien Grasland on Thu 2nd Jun 2011 09:30 UTC, submitted by Yann
PDAs, Cellphones, Wireless The "In the box" project aims at porting the Dalvik VM and the Gingerbread API on top of iOS, so that Android applications may be easily turned into iOS ones. Unlike the Alien Dalvik project, it is community-driven, and the source released under version 2.0 of the Apache Software License. Recently, this project has published its first result: a "Hello World" Android application running on top of iOS.
Thread beginning with comment 475667
To read all comments associated with this story, please click here.
Comment by clasqm
by clasqm on Thu 2nd Jun 2011 11:34 UTC
Member since:

Correct me if I am wrong, but doesn't Apple frown on using foreign APIs on iOS and ban them from the App Store? So won't these apps be Cydia-only?

Reply Score: 1

RE: Comment by clasqm
by Neolander on Thu 2nd Jun 2011 11:55 in reply to "Comment by clasqm"
Neolander Member since:

I think they have changed their mind about this lately, in order to allow things like Unity3D or single-game emulators to exist. The thing they remain adamant about is interpretors which can be fed third-party code to extend their functionality.

Reply Parent Score: 1

RE[2]: Comment by clasqm
by Alfman on Thu 2nd Jun 2011 16:31 in reply to "RE: Comment by clasqm"
Alfman Member since:

Have they actually changed their rules, or are they just turning a blind eye?

If memory serves me, they officially banned any code compilers/interpretors other than their own because they wanted to explicitly stop cross platform development.

Reply Parent Score: 2

RE: Comment by clasqm
by ba1l on Fri 3rd Jun 2011 12:24 in reply to "Comment by clasqm"
ba1l Member since:

The policy forbidding apps developed with non-Apple tools doesn't seem to apply anymore. Otherwise, games made with Unity3D (which uses Mono) or the Unreal engine (which uses UnrealScript) wouldn't be allowed. Neither would MonoTouch, any games that use Lua, ports of old games based on emulators...

There is a technical problem though. iOS uses non-executable pages for all memory allocated by apps. This seems to be mostly a security measure. There is no way to opt out, turn it off, or mark memory as executable. The Xbox 360 does the same thing.

That means that you can not have a JIT in an iOS application (or on an Xbox 360 for that matter). At all. Unless you happen to be Safari (which is allowed to allocate executable pages for the JavaScript engine in iOS 4.3) or jailbreak the thing (which might remove the restriction - haven't checked).

So even if this works, you'd either have to do ahead-of-time compilation into native code, or you'll be stuck with a slow interpreter just like the early versions of Dalvik.

Reply Parent Score: 2