Android Mobile Application Development – Budget My Day

The last weeks or so, I have been contemplating on build a mobile application. I wanted to use a technology that I was familiar with and that is also currently available in the market. So Let me describe the factors that affected this weekend project:

  1. The user interface of the application have to be nice a la iphone.
  2. provide RAD tools, I do not have time coding in notepad.
  3. Good documentation and online support (through forums and etc..).
  4. Need to able to learn and develop a nice UI within hours.
  5. The ability to connect and display real-time maps such as Google Maps or Yahoo!Maps.

Ok, first of all I was not trying to develop a mobile webpage, the type of thing you can do with Yahoo! Blueprint. My aim is to later develop this weekend project into a full blown mobile application with other contents such as videos, telephone dialing and messaging features. Based on that, I realized that there are bunch of technologies there which can be separated into two categories:

  1. Vendor neutral: J2ME (JavaFX???) and Android
  2. Vendor (or Manufacturer): iPhone, Symbian and the list is very long.

I therefore decided to take a vendor neutral approach. I have some experience developing J2ME based applications and I can tell that the user interface is not as great as on the iPhone or Android based phones. So what about JavaFX, let me know the next time you see a JavaFX-based phone in a shop window or in public.

So I decided to take the Android route. I know the API were based on JAVA, making the learning curve an easy ride. One thing I don’t understand is; Android has been out for awhile and still do not provide a supported version of their development plugins for NetBeans or any other IDE but Eclipse. Nevertheless, I decided to use NetBeans to the develop the “weekend project”. Android emulator is nice to work but sometimes, i just had to run the application multiple times in order to see the app in the emulator.

I believe that in order to be a good Android developer, you need to familiarize yourself with building the UI through the XML and know your widget from your layouts. Anyway, this is just the start of the project but next time I blog about, I will discuss how to connect to web services to perform user authentication and persist data. For now here is a screenshot of the search tab taken from the emulator.

P.S. The application will be a recommendation engine that will recommend user how to go out and enjoy themselves on any budget. For example, a person with £100 budget can see what to do, where and when. For example, go on a date to cinema then to restaurant before heading out to night club. Users will be able to review and rate recommendations.

Please support my blog and its advertisers by clicking on the interesting products/ services on the right (Google ads).  Cheers.


Mobile 2.0 Applications – back to the future

We are now seeing a surge on internet activity from mobile devices such as smart phones and PDAs. Nowadays, people are keeping track of their life on-the-go. Since its release in 2007, the Apple iPhone has set a new standard for accessing the web on mobile devices. Apple had predicted to sale about 10M+ units by end of 2008. In its short life, the iPhone has grabbed a large share of internet users in North America. The figure will change dramatically with the release of competitive devices from other manufacturers.
Chart provided by Net Application.
Anyhow, I am not a business analyst but and this not what this blog entry is all about. But it is important from a developer point of view in adopting a platform, that he understands where his choices lies in the market. The aim of this blog is to understand what tools and technology are available in order to develop products and target a large number of users. I will make some assumptions hopefully in the right places in order to emphasize on a point.
My first assumption is to understand the reason behind browsing the web on mobile devices.
With the recent rise in popularity of social sites such as Facebook, MySpace and Twitter, most of the mobile internet population will be updating their status or communicating with peers on the go. I blogged previously about the profitability of social sites from a business point of view but their market acceptance from a user point is very big. But the rise in population accessing the internet on the devices is also due to network carriers slashing their data plan price. Ok. So we want to develop a mobile application and want to make available to a large number of users. I will take my own skills set to benchmark the different software development kit.
Here is the basic requirement:
Being an enterprise server-side developer, I decided to develop an application that will be used update users status on multiple social sites at once with just a single click. On top of the string of messages sent, I have a desire to make my mobile geographical location included as part of the message. I shall also be able to check for messages from networks peers to provide into the application tag by their sources and person who sent them.
So I decided to research the mobile market, as done above, to pick the right software development kit (SDK). I decided to review the following:

  • iPhone – the market has a large market share but that’s for America, I am based in Europe and would like to primary target to European market. I do not have enough data on the European to start with so it still sounds like a good device to go for.

    The iPhone’s applications are developed in Objective-C, this language is not much popular outside of the Apple world and seems to be a barrier in what I want to do with my One-man army of developers. After looking at the available tutorials on the internet, I decided to keep and possibly use it as they have a simple drag and drop IDE. I will probably run into problem when I try to implement more advanced features.

  • Java ME – voila! A language that I am familiar with. First of all, I think it was wrong by the guys from Net Application to include Java ME as MobileOS. The Java ME can run on any devices that support its standard (mobile JVM) and per se is not bound to single device. As far as I know, only Apple has restricted the use of Java ME and similar technologies on their platform. This might be due to the popularity of the technology; developers will drop the Objective-C in favour of Java ME written application. OK so right now, if I chose this technology, my application will not be available to iPhone consumers, OUCH!

  • Android – this is the new entrant of the market but it is poised to become very popular in the near future, grabbing about 6% of the American market within 3 months of introduction. Android is written in JAVA but there’s no current support for Java ME. How does that work? I have no idea! Nevertheless, Android is led by the Google guys and promises to offer most of their freely available API straight out of the box, therefore eliminating the need to call remote web services and then parsing the result.

So I still cannot make my mind about which platform to use. But the fact that Android does not support Java Me out the box is not the end of the world as there are freely available software that allows you to run Java ME on Android devices such as MicroEmulator. For this reason, I will now bring the comparison to two groups of devices: iPhone vs Java ME/ Android. As a developer, you want to be able to have good access to the market so let’s what is available to facilitate market penetration of our application:
Short term market

  • iPhone – At the time of writing, iPhone had more software download than Android (come-down I know that Android is relatively new). The success of the iPhone is its App Store which allowed developers to write their applications and use the App Store like an Ebay to promote and sell it. iPhone is targeting 500M+ downloads but a large number of those application are actually download for free use with no cost associated with it. So basically your application has to be available for free. Also, Apple vets applications that can be sold through the App Store channels and might reject your application leaving you in the cold. But right now, it is a developer best friend to make money and make a name for him.

  • Android – the Google guys took the idea of the Apple App store and develop their own. But this time, in order to attract a large number of developers, they decide not to vet applications and let the developers make some money and or fame for themselves. There are currently no much available on in their store which will make good for developers’ application to be more accessible to consumers.

In the short term, the iPhone, with its App Store, is a more attractive option. But as the number of applications increases, yours will be pushed back to make place for the new and most popular one. What about if you write this “killer-app” that competes with an application provided with the iPhone out the box, Apple would reject it and not make it available through their store in contrast to Android’s store.
Long term market Apple dominance of the mobile application market will come under severe competitions as more handset manufacturers introduce competing devices. Also, people feeling frustrate by apple strict regulation of the App Store will turn to clone sites such as the guys from Cidya Store and network carriers. I suppose, a Java ME store can also be open on the internet to allow greater choice.

This is a blog and I have to make it a short. In conclusion, in the short term, any developers wanting to develop for advanced devices should develop for the iPhone and allow them to sell it through the popular iPhone App Store.
In contrast, the long term prospect of the market will be dominated once more by Java ME as its support by handset manufacturers keeps on growing. I do believe that the Java ME needs an App store maybe which can be a plug-in to Firefox or IE. Java ME phones can already installed application over the air so on-demand installation would not a be a problem.
For now, I am developing on Java ME and iPhone and this pain as I would like my application to work on multiple devices without me needing to change my codes over and over.
Hope this help to give you an idea of the tools and market for mobile devices. Before embarking on commercial mobile project, you are advised to conduct more thorough feasibility studies.
I am not a geek… you are nerd