views:

1043

answers:

10

I am very interested in mobile application development. But I don't know which language or framework is more popular, useful and useable. I know JAVA well. If you have any idea and/or experience, please help me to take my decision.

A: 

While there is no shortage of 'feature-phones' supporting j2me in the wild, I suspect third party applications get very little market 'traction' because the users aren't looking to install new software on the phone.

Android is a breeze to develop for. I think you should try it. There is no harm in getting the SDK and experimenting for a few hours..

NSherwin
+4  A: 
David Rabinowitz
i want to work with mobile application as a freelancer and/or under company. in this case which one i should start?
Sadat
Added to my answer
David Rabinowitz
this graph shows that android is going to lead this market, isn't it?so i should choose it.
Sadat
It certainly rising fast...
David Rabinowitz
A: 

J2ME is very popular because almost every phone can run these applications.

Android on the other side has just few phones and netbooks supported, but Android API/SDK is more powerful than J2ME. Android phones come with great hardware and you'll have the opportunity to work with all these "cool" touch screens, gps, accelerometers, etc. It's still in development, but I think it has a future.

tomp
+3  A: 

I've dabbled in some J2ME programming but right now I've written about 4 android apps.

My observations:

  1. The Android API is a lot of fun to use. J2ME is showing its age. E.g. A JSON parser is built in. And you have access to sqlite. Android's sqlite access code is like an amalgam of lessons learnt from Ruby Rails, REST and plain-old SQL)
  2. In terms of deployment numbers, there are more J2ME apps than Android apps. However if you want to enter the smartphone market, Android is second in mindshare to iPhone (Blackberry is reinventing itself but its API is still looking like a J2ME++) Read this article
  3. The whole platform is opensource. So learning it and mastering it is easy.
Jacques René Mesrine
+1  A: 

It depends on what you mean by 'popular'. If you are counting in terms of installed handsets, then J2ME wins hands down. As far as current installed handsets, Android has few mobile phone companies and only recent mobile phones (whereas J2ME has been around for the last six odd years).

However, that doesn't make working with J2ME a nice-to-have. Sadly, each manufacturer cripples it in some way, and not all phones with the J2ME badge are equal; some are more equal than others. MIDP, MIDP2.0, CLDC, CDC ... the list of acronyms goes on. And when you buy a phone, it has 'Java enabled' without actually saying what it is that it supports, so even the customer doesn't have a clue.

Despite its large installed base, J2ME remains fundamentally unpowered for the world's current generation of mobile phones; the upgrade path is usually non-existent (though it's the manufacturers to blame for that, unfortunately) and you can't even do things like access Bluetooth or contacts in any useful way; though extensions have been proposed for J2ME, they've never really lived up to the expectation of write-once-run-anywhere.

Whether Android goes down this route as well remains to be seen - the biggest concern is manufacturers are trying to 'do their own thing' (e.g. Motorolla's BLUR UI) which will further fragment the market.

Lastly, don't forget that it's in the handset manufacturer's interests for you to throw away your old phone and buy a new one every year (or two). Support, bug-fixes, and generally upgrading your old phone's software, though technically feasible, never happens. I had a P990, and despite a few rounds of updates, it remained as buggy as hell (which is why I ditched it for the iPhone when it came out).

So, from a programming perspective, Android is better than J2ME. For reaching many handsets, J2ME is better than Android. For general user interface and power, choose an iPhone.

AlBlue
Thanks information you have provided will be helpful to me.
Sadat
Your third paragraph is quite wrong. Application upgrade is possible on all handsets I've tried, because it is a required part of the J2ME specification. Most modern handsets have very useable Bluetooth and contacts access using JSRs 82 and 75.
funkybro
I didn't say 'application upgrade', I said 'upgrade'. Putting on a new version of the J2ME requires a firmware upgrade, and most manufacturers are (reasonable) more interested in selling you a new version of next year's phone than fixing last year's phone. Many J2ME environments are buggy or have odd quirks, and support a different comboset of extensions, so not all phones are equal.
AlBlue
+2  A: 

Only Android Can Catch the iPhone

There are something like 20 Android phones coming out before the end of the year.(*)

Networks like Verizon that ship only deliberately-crippled handsets will be hard-pressed to win sophisticated consumers. Their customers mostly make voice calls and text each other, to get fancy they might run Song ID or VZ Navigator.

I think the issue is: which phone owners actually d/l and use the apps? The walled-off Verizon customers, not so much. Right now, the action is in the iPhone, but I think Android might catch up.

(*) Here is just one.

DigitalRoss
+1  A: 

Android and J2ME aren't exactly similar in their scope as platforms, in a way, it's like comparing apples and oranges.

When we talk about Android, we are talking about full-blown mobile OS, with much more extended capabilities than J2ME. It could be used for pretty much everything you can think about - system utilities, social network services, location-based apps, games, etc. Android has also richer UI kit and lots of available source code to learn from.

In Android you have access to many APIs, designed to be used in modern smartphones, and these APIs are being refined constantly, while J2ME has started to feel aged, and is concentrated mostly on graphics.

The penetration rate of J2ME is currently bigger than Android's, and by bigger I mean much, much bigger, but business analysis doesn't end just with number of handsets of the given platform.

If you have idea for a great app, you'd better do it for Android and/or iPhone OS - it will be easier for you and you'll be reaching to users that are more likely to need such app, and that are more likely to pay reasonable price for it.

Overall, I would recommend to start with the newer platform, even if only because it would be more interesting and a better learning experience for you.

Dimitar Dimitrov
+2  A: 

I think you're missing an important fact: Android is not only a platform, but also brings with it a fully fledged application framework which continues to grow and gets backing from some very big players (Open Handset Alliance). J2ME is just a stripped down version of the Java platform. That's a major difference.

Having worked with Android since over a year now, I can definitely say that is has grown into a very powerful system and decent tool support.

Matthias
+1  A: 

I have to agree with others on shying away from J2ME development. I have a Motorola RAZR V3xx that I've used for a few years. It is as standard a J2ME-supporting phone as you're likely to get from most carriers. I decided to look into doing some J2ME development for the phone to give myself some helpful utilities.

Long story short, there is a reason you pretty much only see games on J2ME phones. Unless you are willing/able to shell out big bucks for signing certificates, you cannot even access the most useful APIs available on the phone. Things like File IO, PIM (contacts, calendar), Bluetooth, etc. are simply blocked unless you get your application signed using a carrier's (AT&T, T-Mobile, Sprint, Verizon, etc.) special certificate. And the cost of these certificates can easily exceed hundreds or thousands of dollars. Putting this simply out of the range of your average hobbyist.

I could go on, but a couple of sites have covered this topic in much greater detail Here and Here.

For me, this pretty much means I will be targeting the Android in the future. The iPhone is also a good place to be targeting. The current state of J2ME on handsets here in the U.S. is just not worth my time for pet projects. Which is disappointing, as most of these phones are capable of doing many useful things otherwise.

monceaux
A: 

Does android api runs only on Android os?

Sud
Yes. Andriod API based apps will only run on an Android phone.
DanG