top | item 2674761

(no title)

cmchien | 14 years ago

I don't know the specific tech that Adobe is using, but I'd look pretty carefully at the technology before committing to a platform like this as a true cross-platform development environment. "Cross-platform" can mean lots of different things.

We had a native app developed in Android. When we decided to create an iOS version, we selected Appcelerator after reviewing a few different options and seeing what we perceived to be good adoption of Appcelerator (and after talking to another firm that chose the same thing). And, we (mistakenly) thought that it's "generating native code", so, if anything goes wrong, we can always debug in the Objective-C. Right?

Wrong.

About 6 weeks into the development process, we were doing a round of testing to get a version out to Beta testers and found that we simply couldn't debug the code and get it to 100% stable. That's when we dug deeper (yes, a bit late for that...) and found that Appcelerator is essentially a VM running on top of the native stack. So crashes get logged to the same few lines of Appcelerator interpreter code--which is pretty much useless for debugging. For prototyping, it's great, but for production quality code, I would say stay away.

Shortly before we finalized this decision, we reached back out to the other firm whom we had originally spoken to before making the Appcelerator decision. They told us that they were in the same spot and had just made the decision to move off Appcelerator a couple days previous--for the same reason: stability and lag issues and no way to get to zero defects.

We moved to native Objective-C and the dev team is much happier. Crashes have full stack traces and we can identify exactly what to fix.

We got some benefit out of Appcelerator because the second round of development took less time, but given the choice (and knowing that we weren't just prototyping--we had a native Android app and we were generally happy with the screen flows) we would have gone native to begin with.

discuss

order

neovive|14 years ago

Interesting. I thought Apple didn't allow VM's running on top of iOS.

whiskers|14 years ago

I believe the change in policy was that you can now implement VMs/scripting engines but that /all/ of the bytecode/code that will run on them must be packaged within the app (i.e. you can't download more code to run dynamically).

vizsladriver|14 years ago

Apple changed/clarified its policy to allow VMs and scripting languages, so long as all the bytecode or script is built into the app you submit for approval. Adding more script after the app is installed on the device is not allowed except for the built-in WebKit Javascript engine.

DenisM|14 years ago

thanks for sharing the useful story.