Thursday, July 24, 2008

The battle of the mobile platforms

I have been hearing a lot lately from various people, especially those who are starting now new ventures, but also established companies about their tendency to develop their apps to the new kids in the platform block (iPhone and Android) while abandoning older and more established platforms, especially J2ME.

The claim is that J2ME is too much of a hassle, first because of its porting problem, then because of the carrier related problems, and in the end the result on devices doesn't look too good anyway due to the platform limitations.

I agree that J2ME hasn't been very pleasant for developers in the past few years, and same goes for other platforms such as Brew, Symbian, Windows Mobile to some extent - each with its own problems (Flash Lite is somewhere in between it's relatively new and promising but didn't make as much noise as iPhone/Andorid). But things are changing and it would be a shame to drop these platforms just when they are maturing and go to new and shiny platforms that is still in its boot camp...

But let's go back a bit, and ask first the very important question: Who is your target audience? This marketing 101 question will lead to the next question: What devices does your market audience use? (or in other words: What are your target devices?)

I believe asking this question, while ignoring technology aspects for a second, is very important since it makes the distinction between which devices your target audience uses to which devices you would have liked them to use...

Yes, there are new shiny platforms like the iPhone and delayed but soon to be launched Android, and yes, you can do great things with those. Things you wouldn't have dreamed about doing in J2ME. But, your users are not necessarily using them. To be exact, whatever your target is, 0% use Android currently.... And as for the iPhone it is true that it has gained a very nice chunk of the smartphones market share in the US (27%), but its global marketshare when you take into account all phones (not just smartphones) is 0.14%...

Also actual handset market share data may surprise you sometimes. For example in the US you will find that the top phone is Motorola V3, which really doesn't have a strong J2ME virtual machine, and my guess is that its Brew version strength is similar... Other phones in the top places are not that strong either. Note that I am not talking necessarily about currently selling phones, but about handsets that are currently in the hands of the American people, and until iPhone/Android will crawl up to the top of the table it will take time.

The reality is that sometimes your target audience uses low-end devices. Take gaming for example. I believe that the true promise of mobile gaming is bringing games not just to those with the newest smartphones, or niche gaming devices, but rather get them to everyone - to those "dormant" gamers, that would love to kill 5 minutes on their way to school/work/senior citizens house... And experience has shown that you do not necessarily need a game with killer graphics/FX - in fact the most simple games such as trivia games (who wants to be a millionaire, wheel of fortune) and puzzles such as Tetris have been the best selling games, you don't have to take my word for it - check out Jamster's top mobile games list.

So my bet is that J2ME will stay a solid platform for gaming and even the first choice as it is today, even if the new platforms offer more stuff.

On the other hand, if you are developing business applications that require anyway devices with good internet connectivity, big screens and maybe even full qwerty keyboard and/or touch support, naturally your first choices will be smartphones platforms like those who've been around (Symbian, Windows Mobile) and also the newer iPhone and Android.

In any case, don't forget that all the childhood sicknesses that J2ME has been having in the past few years are still waiting to happen on iPhone/Android... It is true that iPhone is less problematic in the same way that Mac hardware and drivers was less problematic than what we used to call "IBM-compatibles" (now known as PCs...) - simply since in the PC world there were hundreds of hardware suppliers and in the Mac just one... However, Apple might also release several devices for different profiles - even now we already have 2 devices: iPhone and iPhone 3G. Now what about the rumored iPhone Nano (Some say it's a hoax), or the other iPhone flavors that will be launched in the future? (iPhone Air?...)

One of things the mobile market has proved is that people like to differ themselves with cool new gadgets... The iPhone definitely hit that spot, but you can't do it twice - people will be looking for the next cool thing, and I have no doubt Apple will know how to provide it, but once you issue different screen sizes and different capabilities, you break somewhat the promise of no porting problems (And don't forget the iPhone look alikes coming soon from all the major handset vendors, each of those have the potential to become a hit, but they won't have the same platforms at all..)

And the irony is that just now when people have given up on J2ME, it is finally getting stabilized... it is not there yet - but definitely going in the right direction. For example, many developers can tell you that porting to the new breed of devices is not that hard as it used to be. In fact MIDP 2.0/CLDC 1.1 devices actually sport reasonable if not good VMs that are less buggy and less quirky. This led to the one-JAR-fits-all approach, that could have never worked in the past, but surprisingly enough, it works now. It may not fit 100% of the devices, but it fits a very large proportion of the newer devices.

In addition, capabilities that in the past were non-existent in the Java world because of the sandbox approach are now available on most new devices: Starting with bluetooth, advanced networking (Not just HTTP), which were here for a long time now, going through addressbook and file system access, location based services, 3D graphics, vector graphics which are available on most new devices and till newer features like content handling (your java app can be registered as a handler for a content type, so you can write a video player that automatically launches when the user clicks on video file even outside of the java context).

And the best thing is that all those capabilities are better standartized than before. And also Sun is actually taking a proactive role both in the standartization and also in introducing new frameworks that makes things easier for developers such as their new UI toolkit, LWUIT.

To sum up - don't get me wrong, I believe that iPhone and Android are both great and promising platforms that open new possibilities for mobile developers, and we can already see its effects on the platforms market. There's nothing like a competitor "breathing on your neck" to get you finally going faster... But: Don't focus all your energy there. Pay attention to the platforms that are currently in the hands of your users, and that in spite of how things look like now, will probably stay there, at least enough to make you get used to them...

10 comments:

Anonymous said...

Excellent post - I think you've summed it up nicely.

A few details to add on Java ME:

- MSA (Mobile Services Architecture/JSR 248) has been shipping on mass-market phones for nearly a year now and offers a very rich feature set including LBS and Scalable Vector Graphics (SVG) - and the new VM stacks are generally quite good, too

- Coupled with LWUIT (http://lwuit.dev.java.net) you can create some very compelling applications today on mass-market devices and upwards, definitely competitive with iPhone and Android

- MIDP 3, available in the not-too-distant future, will provide another quantum leap for the Java ME platform

- Lastly, Java ME is the only platform that is fully available in open source, with live repositories, buildable code, and a vibrant community behind it http://www.mobileandembedded.org)

Best,

-- Terrence

Dale L. Larson said...

This is a technical answer to only part of a business problem.

I think that Apps are the new Singles and AppStore transforms the whole business the way iTunes changed digital music -- talking about digital formats wasn't relevant once there was a complete ecosystem change.

Whatever is done to make it easier to develop apps on J2ME, the problems still exist from the consumer side. No matter how many of those devices are in the field if few apps are going to be purchases on them anyway.

Discovery, purchase, installation and use are still so much more difficult than on the iPhone that sales are severely limited compared to what will be seen with the AppStore. Not to mention the costs of revenue sharing with carriers and the issues dealing with pSMS for developer and consumer alike.

The best reason to develop for AppStore has nothing to do with shiny new technology and everything to do with a good business case to develop with the least hassle to reach the largest possible number of consumers actually likely to find and buy your app with a good percentage of that revenue going to the developer.

Adrian Cockcroft said...

It really depends whether you want to look forwards or backwards. Low risk, just get something simple done, and you already have a channel to deliver the app to users, use the J2ME, BREW etc. platforms. If you want to do something that hasn't been done before, get exposure, capture a high market share and mindshare, then you need to aggressively adopt new platforms like iPhone and Android.

The key thing that has happened is that the bar has been raised. There is now a new lowest common denominator platform (iPhone) that has enough volume to attract applications, and supports features as standard that J2ME developers have to dream about or implement themselves.

Anonymous said...

As one of the creators of Mobile Java I am concerned that it has not kept up with the market. That is why I created JSR 232 with OSGi. Sprint has taken a big step by launching Their Titan CDC OSGi platform for Mobile. This will bring the same kind of features that has driven OSGi to be so successful on the server to Mobile. It also allows developers to create UI in browser or flash and then do business logic etc in OSGi. This is a game changer for mobile Java!

Anonymous said...

Dale Larson's comment is completely
spot on. I've talked to app
developers, seen presentations from
3rd party software developers, etc.
and they all say that:
1. You write a great app.
2. Customers don't download it
- awareness?
- mechanism?
- download cost!
3. Handset vendors don't pre-install it
- they take a large $ cut
- pre-qualification fees & process
- security certificate signing
headaches
4. Second class citizen problem
- apps don't match native UI L&F
- app lives in its own world; not
part of a continuous UI workflow

Unless you've already bedded in
your brand and got users on-board
(e.g. you are a facebook.com) your
opportunities are low indeed.
I claim that the only way to make
a success of mobile app development
is to first make a success as a
web app, or PC app.

I'm a big fan of Java ME (I worked
at Sun, and also worked at
Esmertec porting the JVM), and
know the complaints because lots
of folks come to us (I work at
Symbian) to complain about the
problems above.

The solution is really something
like the iTunes Music store maybe
with some of the architectural
niceness that Android gives you.

Maybe a hybrid solution will be
forged on the (upcoming) Symbian
Foundation OS.

Anonymous said...

Excellent post Ofir!

Anonymous said...

Hi,
Very interesting post. I fully agree with you. J2ME is not dead and it will take a lot of time, efforts, money etc … before the other platforms can get the same market share.
Beyond J2ME, we will always have to solve the fragmentation issues: even between the 2 iphones there are fragmentation, you can not plug into the version 2 the applications developed for version 1…

This is a big challenge for a company like us to offer a porting software solution across the platform and this is where our positioning as “Devices Knowledge” specialist is important . You all know that Mobile Distillery is focused on providing with Celsius a Dev & Porting solution, but we also offer access to the developer to all the knowledge of the devices: our Alembic search engine allows developers to select particular features or JSR, and get in return a list of all addressable devices on the global market. All the parameters provided (almost 850) are fully tested on real devices.

If we want J2ME to stay alive we need to make sure that more and more content will be developed.
Regards,
Bertrand

Anonymous said...

J2ME and BREW r very important as well as common name in the world of mobile.

CEO said...

very good post. totally agree w/ you. and I agree w/ the other folks here who said the real problem is about application discovery, download, cost. That is the fundamental problem that must be addressed...

ceo

Acton said...

Excellent dissertation and discussion - from a technology driven perspective.

So what do the users really want to do with the mobile thing? talk, chat, play games, listen to music, watch videos. what else? What is it they are not doing adequately? The thing about imaginative understanding of user needs is that often it is not the thing that is widely done yet, but the indicators are there.

I think that feature is sharing - in a true sense of the word, spontaneous sharing when you are with friends. Like when you are with a group of friends at a dinner party, beach, on a mountain top, etc. Do you really want to download (or can you?) to youtube or flicker and then tell them to pick it up? Oh, the smart intellectuals may point out since the group is already with you, they are not the target, but the others not with you. True but that does not diminish the needs of those with you! What if it can be done?

Yeah! we can with Bluetooth - says another.

That does not take into account the trends of technology - these mobiles are getting richer in features and capabilities - 5MP camera phones are now available, music videos are at least 3MB, not to mention high def handheld devices.

The question is what physical link on the mobile will enable sharing of next gen content between peer-to-peer (ie mobile to mobile)?

Any comments?