I’ve been using both the Android Development Kit with Eclipse and Appcelerator’s Titanium Studio for building mobile apps as described in these posts:
- Trying Out ADK and the ‘Droid
- Android Pt.2 Digging Deeper into the ADK
- Android Pt.3 Snags in the Emulator and Bluetooth Explorations
- Appcelerator Titanium Studio – Mobile Development Made Easy?
- Layout and Design with Appcelerator Titanium
- Graphics, UI, and Fun with ATS
When you start to look at what ATS is doing and some of the examples, its pretty clear that the tool really can’t build apps for ‘droid and iOS from the same code base. Its possible to re-use some bits of your code across platforms, but there’s a price for this. Is it worth it? i’ll use this post to compare the pros vs. cons using the ADK-Eclipse ecosystem to compare.
Architecture, Structure, Design
ATS does have some advantages in terms of getting started quickly. Generation of graphics for different screen sizes is a huge one. Kind of a pain with ADK (well ok you need Gimp or Photoshop)- just look at the effort to create icons and splash screens with the base ADK. Icons are handled ok – but anything else and you are on your own. I have a theory however – ATS supports splash screen generation because their apps are so huge you really need it for any app 🙂
What is user experience? To me this is a non-quantifiable thing – but boils down to: to user like your app and think its useful, easy, and pleasant to look at. Neither tool really has a leg up here. This mostly boils down to graphics design, workflow, and layout of screens. If the app needs to use platform specific things then ADk or iOS is better. As a programmer I defer to the “artists”. 🙂
One-off vs. Broad Platform
I just find the JS perspective of ATS will lead to chaos over time without a lot of oversight. The problem is that oversight is mostly manual – that’s the point of Java/ADK – the OO structure is enforced. At the same time the freedom of ATS can help drive innovation, creativity, etc. Depending on what kind of apps you are building and their expected lifetime ATS or ADK have a role. ATS for shorter lived apps or apps that you don’t need to broadly build on as a suite of tools. ADK for apps where you expect long lifetimes and a broad set of related apps.
There are a lot of nice new features in ADK and the tools that surround it. If you looked at ADK a year ago – look again. the concepts of layouts, the visual layout editors, ease of managing localization, the ability to define and automate layouts across devices, have really improved. Taking this with the vast number of tutorials, samples, and training from both the core Android developer site and other sites leads me back to ADK as the tool for me because:
- I’m a Java/C++ OOP guy
- The concept of code once does not really work
- GUI Designer in ADK is very helpful and reduces round-tripping to the emulator.
- ADK’s configuration files for layout, the manifest, and localizations is pretty darn cool
- ADK’s activity model for how the application flow is implemented and the lifecycle for activities is very well explained and backed up in samples supplied in the ADK. ATS has no specified structure for apps, the samples do not match the IDE wizards, and then only reference app I could find seems fairly stale. Comparing this to ADK’s excellent tutorials and references – no brainer for ADK.