Android development tips – Gifagram project

For the past months I have been reading the Android SDK, trying out it’s OpenGL ES 2.0 capabilities (check my Github project ShadingZen) and was really impressed with the overall API quality. It’s easy to get things done, and its integration with Eclipse helps too. Current top devices are computing crunchers!

I went thinking I could play a bit higher by developing some application for Android, and that’s how we came with the idea of Gifagram app.

Gifagram.com promo image

The idea behind it is to enable the user to create stop-motion or animated GIFs directly from her Android device. GIFs are easy to share, doesn’t take much bandwidth and some very creative people manage to communicate really stunning stories in this format.

Not everything was easy tho. The camera API in android is really quite undocumented and its behaviour relies completely on the underlying hardware implementation. Retrieving useful information from the beta-tester devices was also cumbersome (to the point that was much easier to just take the terminal to the mac and just debug it directly than to take and read the logs).

Some tips on android development:

  • Think the user workflow within the application and minimize user taps and input steps. Make it simple, vertical application vs “The killer app”.
  • Prototype the application with simple buttons and don’t waste time until the domain logic is really working.
  • Try your software on every android device you can get. This probably should go on top of your list.
  • If you plan to create a free and a paid version, develop with a single application and when you are ready to go to market, convert the project to library and reference it from your free and paid android projects (check this: http://developer.android.com/guide/developing/projects/projects-eclipse.html).
  • Android market share is growing, but it’s fragment in devices and versions. Android 2.2 and 2.3 are currently in almost 90% of the devices out there, develop with this in mind.
  • Avoid NDK unless you are really sure about any performance boost that may gain. For gifagram we had to use it no matter what and was a bit tricky at some points.
Side note: There are a lot of useful resources, for example stackoverflow.com is a great place to look.
Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s