1
votes

I am a senior IT student working on a mobile application for Android. I have 2.5 months design to complete implementation.

App basics: -Seismographer app -Record data from accelerator -Visualize data in a live fashion on a graph -Connect several phones together via bluetooth/wifi to sync up the data -Geo-aware application - optional

I have limited java knowledge and mainly specialize in system admin and web development.

Given my constraints, is it better for me to use Adobe AIR/Flex/ActionScript to develop this? Or Google SDK/Java would take just as long?

I feel like on one hand Adobe is faster, but Java is more straightforward? Not sure...

5

5 Answers

3
votes

AGAINST AIR:

If you just want to deploy on android -> use Android SDK.

Regarding UI designing - android IDE (ADT plugin for Eclipse) is great, you also can design using WYSIWYG editor with Android SDK

Using android SDK will result in faster executing code.

Regarding functionality you described, i guess you would need to use AIR native extensions for some tasks (native-extensions-for-air)

PRO AIR:

generally, why people use AIR is because they can deploy to multiple platforms. This is the greatest advantage.

Developing in AIR/Flex is also faster process then developing in SDK, but if you will only deploy on Android, i think there's no reason to use AIR/Flex...

2
votes

You should read up on what APIs are available while using AIR, that is probably the key point, you have to be able to actually do the stuff you want with your SDK.

On a personal opinion, I would go on the Google Java SDK route, if you are designing an app just for Android, I dont see any reason to use AIR. You will be able to use all native APIĀ“s, the interface desing is incredibly easy and everything will be runing in the Dalvik VM, instead of the AIR VM over the Dalvik VM.

Native code is faster than runing air, this could be an important point regarding live data visualization.

1
votes

I'm going to agree with the other answer here basically. I'm a pretty good Flex developer but really the interface design tools aren't going to help you for very long, either way you're going to end up writing code. If you're not familiar with AS3 or Java I'd say take the Java plunge, although you will run into problems either way if you're not familiar with OOP that's what Stackoverflow and Google are for right :). So I'd recommend going the Google SDK and Java route, you have some limited capabilities running within the context of AIR and if you're not shooting for write once run anywhere you're not really getting any major advantage (if you were talking an enterprise application that needs to run on the desktop, and any mobile device, and on the web then using AIR is ideal because you can write a library that is used by each interface then develop each user interface as it's own project using the library for common business logic/data modelling and binding the UIs in each "sub-project" to the libraries data model).

If there's no need for that kind of setup then you may just be shooting yourself in the foot by starting down the AIR path as it's going to be more restricted than the Java SDK directly.

0
votes

If you are good in Web Development (HTML5? CSS? JavaScript?), then you should use it for your mobile application as well.

You can use PhoneGap to access all Android functions (See: https://github.com/phonegap/phonegap-plugins/tree/master/Android).

You can develop the application in your desktop browser with all the good old (and new) web development tools. PhoneGap will wrap it in the end to run like any Java Android application.

You can find some good JavaScript/HTML5 frameworks for your development and charting (Sencha Touch, for example).

enter image description here

0
votes

As a third option, you might want to also consider NME

http://www.haxenme.org

NME is very similar to Flash, but it becomes a native NDK application at the end of the day. It actually has a JNI class that could let you call Android APIs without writing Java. If you prefer, you can include custom C, C++ or Java code in Android applications as well.