Disclaimer: I’m not an expert on mobile application development. Just a newbie leaning towards the direction of the strong blaze.

I would like write my trials with the frameworks that I’ve tried to use to make mobile applications, especially for android. In this process, I had some hands on experience with Appgyver Steroids, Titanium Appcelerator and finally native android SDK.

Some background: Steroids is a framework developed on top of Adobe’s phonegap which gives you chance to create platform agnostic mobile apps by using HTML, CSS and Javascript. While doing this, it uses Apache cordova.js to connect with low level phone APIs like camera, accelerometer, gyro etc.

 

Native

Outcome

Fully native and optimized app

Development speed

Initially slow, after ramping up on SDK, decent.

App performance

Superfast

Environment

ADT(Android Development Tools), Android Studio

Debugging

Super easy with Eclipse java debugging capabilities

Emulator

Large variety of emulators

Performance factors

Java is a beast. You can do all fancy thread stuff here. Of course there are rules around threading to make Android safer.

Trial run on real device

Need to connect real device to computer at all times. Emulators starting times are so painful

Ease of use of advanced device capabilities

Just modify AndroidManifest.xml and that’s it

Monetization

Full support of Google AdMob and Analytics.

Creating apk

Happens on your local, extremely easy signing, unsigned apk creating, zipaligning.

Is it free?

Free, Google Play Store developer account 25$

Based on

Java

Community

Almost everything is replied in stackoverflow, google has large documentation of frameworks

Cons

You only create application for android, creating layouts are taking a lot of time. Java is full of boilerplate code.

Pros

Superfast applications compliant with the standards

 

Steroids (Phonegap)

Outcome

App with native tab bar and navigation bar placed around native WebViews which renders designed HTML pages

Development speed

Initially increadibly fast, when fine tunes starts everything becomes slower. Adding a share button is like a torture

App performance

Decent if you optimize your logic and CSS correctly

Environment

Wherever you can write JS:P Preferably Webstorm or Sublime Text

Debugging

Without mac and xcode, increadibly painful. Browser debugging is ok until some point but it does not provide necessary features like phone.

Emulator

Only iphone emulator which needs mac and xcode. Good luck for linux developers.

Performance factors

So hard to optimize the app after some point. You are stuck with stock browser capabilities. Android devices have whopping CPU and RAM but ios devices’ browsers are not capable of rendering at the same speed.

Trial run on real device

Steroids system is awesome. It generates a QR code and you can it with appgyver scanner from your device, boom! The app starts in your device without connecting any cable. Everytime you modify the code and hit enter in the console, it reloads the app from all open tabs and devices. Saves a lot of time

Ease of use of advanced device capabilities

Cordova.js is so advanced but even small operations like taking photo sometimes becomes so painful to run.

Plugins

The most powerful part of phonegap and steroids. There a lot of plugins outside. However this is also a weakness. It’s hard to find which one will work for you. A simple example: Pull to refresh. You can find 100 pull to refresh js library. It’s so hard to make one to work for you as if native.

Monetization

A couple of admob plugins.

Creating apk

Need to use free appgyver service. You need upload your keystore and write your keystore and alias password.

Is it free?

Free but there are paid official plugins, Google Play Store developer account 25$

Based on

Nodejs

Community

There is a forum but getting a decent answer is tough. There are lots of questions asked

Cons

Still early stages, major changes between versions. Needs careful optimization. Highly dependent on stock browser performance.

Pros

Platform independent applications developed with fully HTML, CSS and JS

Appcelerator Titanium

I need to admit that I didn’t have much experience with this.

Outcome

Fully native app created from javascript code written by developer

Development speed

Small learning curve of titanium js framework (alloy)

App performance

As fast as native maybe because it’s native:P

Environment

Dedicated IDE with designer view, modified version of eclipse

Debugging

Should be easy from dedicated IDE

Plugins

Official plugins seriously supported

Monetization

Official AdMob plugin

Creating apk

Need to use free service

Is it free?

Free

Based on

Javascript (Alloy MVC framework)

Cons

Apps look so last corporate: http://www.appcelerator.com/customers/app-showcase/

Pros

Write in one language (JS) and create applications for 3 major mobile platforms

 

Kivy

Ok, I didn’t have intention to write about kivy but I think it deserves to write a corner in this post. Kivy is my first lover. It’s python UI framework which outputs for all of the platforms you can imagine:) Android, IOS, Windows, Mac OS, Linux etc.

I like python and I was so lazy to learn a new framework which is Native framework of Android; I started with this little guy. The development iterations are incredibly fast, because you write the code and run on the terminal directly, no need to connect device check adb logcat. Everything is on the terminal. A bit of a learning to understand the interaction of kv files and python code. However it is like normal UI design philosophy: Separate designer and coder. In my case I was both. I wrote my first game which is a pong in 20 minutes with the first tutorial. Site also provides you a VMs to output an apk, exe, ipa(not sure about this one) locally. I setup my computer and did not use VM. I got my apk, signed it and installed in my phone. Everything was good. App works with decent performance. However, I feel like this framework is mostly for making games. Not good for creating apps with multiple views. After all, it’s in my heart because it’s python <3

http://kivy.org/#home

Conclusion

Well, I’m not going to say this is the best. It highly depends on your needs. If you would like to create some proof of concept platform independent mobile application, go for steroids or phonegap (Your apps’ beauty will highly be dependent on your design skills). If you are doing a job in enterprise level (boring looking apps:P), go for appcelerator. Will save you a lot of time. If you need to something rock solid and stable (this does not mean that other frameworks are unstable), go for native sdk.

By the way, there is a fact that we can not disregard, platform agnostic applications are getting some serious traction these days. You can see this from Mozilla’s Firefox OS which is fully using web standards, Google’s exciting Chrome Apps on Mobile framework. These two examples show that people are running away from writing native. They just don’t want to make the same application for 3 different platform by writing in 3 different language which are Java for Android, Objective C for IOS, C# for WP (and Qt-C++ for blackberry).

I would like to talk about security. Of course it’s developers’ app security. If you use steroids, everybody can fully see your html, css and js files. No kidding it’s real. Just check your file system. However, this statement is a little misleading. Because even native apk files are decompilable. As long as, you obfusticate your code and don’t store any sensitive information like passwords in the code or in local database, you will be fine. You have to sign steroids apps as well.

My apps are here: https://play.google.com/store/search?q=hakan%20uysal

With kivy: https://play.google.com/store/apps/details?id=co.hakanu.kliseci

With native sdk (formerly with steroids): https://play.google.com/store/apps/details?id=co.hakanu.karikaturcu2

While writing this post, and here it is, yet another framework claims that it’s better than phonegap:

https://trigger.io/

Some of my sources:

http://steroids.appgyver.com

http://www.appcelerator.com/

http://www.quora.com/PhoneGap-Vs-Titanium

http://www.quora.com/Appcelerator-Titanium-vs-PhoneGap-which-produces-better-native-apps