Java, Brew, Symbian, Adobe Air, Android, Moblin, .Net, Windows Mobile, Flash Lite, AJAX, iPhone. The mobile software development process is complex and full of choices. Too many for me to understand. I gave up software development when I was about 25 after spending way to many nights coding in C and looking up from the keyboard to see daylight.
I have so many unanswered questions on the topic that I really don’t feel qualified enough to even start to write an article on it. Take those keywords at the top there; Which are core architectures and which are generic programming environments? If I were an independent software developer (ISV) and I wanted to develop for Symbian, Windows Mobile, iPhone and Moblin, which programming environment should I choose. Java? Or should I just develop an AJAX-based browser application?
If anyone has any ideas, knows of any good articles or even fancies writing an article on the subject, I’ll be happy to listen. It’s not that I’m planning any software development, no, I’m just trying to understand how an ISV might react to 10 million Android installations, 100’s of million Symbian installations, 50 million Moblin installations or 20 million iPhone installations. ISV’s, how would you react?
Greatly looking forward to some insight on this topic!
iPhone Economy: Application developers swarm to iPhone
http://www.mercurynews.com/business/ci_9599971
I have fought over this same question and ultimately decided to go with the Windows Mobile space. That decision was based largely on personal experience with the platform and familiarity with Visual Studio.
Well… if internet connection is not an issue, I’d go for the Ajax Based Web app. That’s where things are heading.
If performance/connection/etc. don’t allow that, there’s no other way but to stick to whatever platforms you envision to be “commercially viable.”
That means developing for each platform, each requiring its unique approach.
Hopefully, in 3 or 4 years, we’ll be talking just about Android and iPhone… :)
It pretty much depends on your target market and type of application you want to make. If you are developing mobile games you would want to go for Java, because it runs on nearly every phone (except iPhone). Business apps on the other hand are better suited for pda’s, so I would choose Windows Mobile or Symbian. If you are a single developer the iPhone is attractive because of the services they provide (iTunes for your software). I personally would not develop in C, because it is not that productive (unless you need the performance of course).
“Java, Brew, Symbian, Adobe Air, Android, Moblin, .Net, Windows Mobile, Flash Lite, AJAX, iPhone.”
Yes there is a big confusion here indeed. These can’t fit into the same list Steve as you actually hinted yourself.
The first question to answer is whether you are going for an open OS or use a proprietary API. Android is an exception as it is a Java based SDK on top of a full stack. But in theory you can put it on top of other stacks such as Moblin. In fact I am willing to bet that to happen during 2009.
So lets put all of the OS names aside. Then the question becomes actually whether you develop for the WEB (will you run within a browser) or do you develop a standalone product?
Then the question is which language/methodology you go with, which is also supported by the platforms/OSs of your target.
Let’s take Java for instance. In its current form it is not fitting well into the mobile scene. It is missing the feel and the touch for a UI serving a 5″ MID device. Someone needs to work on a JIDE (http://www.jidesoft.com/products/) like project for Java mobile, supporting thumb movement and much much more to give it the cool factor.
In my personal opinion going with MS .NET is the lesser option in general for PCs but for Mobile if you ask me it may go beyond personal observation and turn into an irresponsible decision. I think that MS should take XP and make it their mobile OS instead of their current plans. Put mobile concepts into XP and you got the OS all will want. Till then I am willing to bet that a Moblin based Linux like Ubuntu is going to take a lot of the market share.
AJAX is something that in my opinion is still not serious enough to be taken as a main development methodology.
Flash, Flex and Adobe AIR are a reasonable option in my opinion, and they are obviously doing the right things lately to become an open standard and making their license more free for mobile use.
My bottom line is as follows:
1. Decide which devices you are planning to run on. Deduce the target OSs. My recommendation is to aim for the Moblin based Linux distributions.
2. If you go with MS then as always the path is pretty much paved for you anyway. If you go with Linux I would recommend for the long run either Java or Adobe AIR. I am personally going with Java for now (running outside the browser).
Just my 2cp being under the influence of mega pain killers (having a horrible flue here),
Tal
As a Windows Mobile developer who has been faithful to Microsoft for 15 years, my advice is: Develop for iPhone.
The hardware is great, the SDK is great, and selling your software will be easier.
Microsoft has really let the world down. After so many years, all they have to show are very incremental improvements in WinMo, and if they want to keep developer loyalty, they have to start spilling the beans on WinMo7, like, NOW.
I hear that Moblin doesnt support Java. HOw muh would that impact developers?
Steve.
The operating systems that work on top of it are supporting Java. The problem is the extent of Java readiness to this domain. Adobe AIR is in the same position as far as I can tell, but they are doing a lot to make it ready for decent development for MIDs.
I know it’s totally ambitious, and possibly even outrageous, or even nutty. I’m working on a Mobile Linux distribution – on my own right now – that is based on Java 5/6 and Qt Jambi. I have a touchscreen display for a Car PC (800×480) that I am developing against, and have had great success getting it working so far.
I am making great progress, have the framework for custom application, and have been developing support for GPS, Bluetooth, 3G/Edge/HSDPA, and a slew of other features.
I am looking to get some help with the project, as it’s still in its infancy. It’s based on Gentoo Linux, and is designed to be able to run on MID platforms as well as IVI (In-Vehicle) environments that have no keyboards.
Current development environment involves a VMware virtual setup and Eclipse for development. If things get solidified, I’ll be adding a plugin for Eclipse to make development of these types of applications faster, and more flexible.
YEAH! Who’s with me! :) Feel free to e-mail me if you share a similar interest.
I have been using MicroSoft’s Visual Studio for a while now, and have found that the Windows Mobile platform is quite sufficient for non-game applications. In the past, the memory limitations of the mobile devices left the developer with a narrow range of usable applications….yeh, a calculator here, a tic-tac-toe game there…nothing the ‘suits’ in New York would want to share with the CEO of their company.
Recently, the Windows Mobile devices have become serious hardware players, and with the storage/program memory having acceptable values, the user can now invest more time on applications which are actually helpful to the user. Recently, I have developed an inventory program for Windows Mobile 6 which utilizes a local/remote SQL server database (120 fields and photos per record), camera, GPS, 6 tabbed pages with nested tab pages with mapping functionaliy. The program just flies on the Palm 750 (non GPS) and HP 910c…whereas 4 years ago I would not have even considered writing the application on the older mobile devices.
Yep – I would agree with that.. Thanks for the line.
mobile devices will feature more and more useful features in the next following years.”,