Ever since I started my first consultancy business back in 1998, I’ve been thinking “next year will be the Year Of Mobile”.
I’ve been wrong every year.
Of course the sales of mobile phones have been great but in terms of mobile applications and the mobile web, things were more or less stuck in black & white text mode. But, the last couple or years, things have finally started to change – and change fast!
So, it is a very good time to get in to mobile development. This is like the early days of the web all over again. Opportunities are plenty! Before you know it, every company will want a mobile application to accompany their social web site. If you don’t know mobile yet, now is the time to start learning.
The obvious first question is: where do I start?
There are many mobile development tools out there. This blog post is a little deeper look in to three different approaches that will give you an app running in less than an hour.
By far the simplest approach is taken by tools such as AppWhirl. This is an online tool that generates a complete application for you. Not only that, it sends the app to the Apple App Store for approval. That’s right, AppWhirl is only for iPhone.
It is also extremely limited in that you can only generate apps from existing RSS feeds, making it less of an application toolkit and more of a mobile RSS reader-generator. Nothing wrong with that, you just need to be aware of the limitations.
AppWhirl is:
- Extremely simple to use – anyone can generate an application with this tool.
- Extremely limited – this is not an application SDK but a very simple way to publish your RSS feed as an application.
- Only supports iPhone.
PhoneGap is far more advanced. This is how they describe themselves:
PhoneGap is a development tool that allows web developers to take advantage of the core features in the iPhone, Android, BlackBerry, and Symbian with a unified JavaScript API.
Now, while PhoneGap is a cross platform tool, the development process and setup is slightly different for the different platforms. You need to install all the different SDKs to fully use this tool. This can be quite a hassle.
What is PhoneGap? It’s basically a bridge that enables Javascript to call native functionality not normally accessible to a web page running in a browser. It does this by packaging the PhoneGap framework, your HTML/CSS/JavaScript-files and a magic JavaScript-file called “phonegap.js” in an application package. It then uses the built in browser component to render the “pages” of the app.
This means if you’re used to web development you will be up and running quickly on PhoneGap. It also means you can use nice frameworks such as JQuery for that AJAX mojo.
Unfortunately the documentation wasn’t exactly up to date so I had some problems getting things up and running on my Android Developer Phone. If this is the same on the other platforms, you’re in for a couple of hours of tweaking settings and installing SDKs and googling around for fixes if you want your app running on more than one platform.
To summarize, PhoneGap is:
- Cross platform, works on many devices – but will require setup for each.
- Web developer friendly. People familiar with HTML and JavaScript will feel right at home.
- Capable but still limited by browser. With the upcoming HTML5 PhoneGap will become really interesting, though!
Next in line is MoSync. (First a disclaimer: I have worked for the company behind MoSync.) The platform recently became open source and received an investment from none other than the MySQL founders, Michael “Monty” Widenius and David Axmark. Like MySQL, MoSync is based in Stockholm.
You don’t need to install any other SDK than the MoSync IDE to get started. Programming is done in C++ which means you will feel at most at home if you’re coming from the embedded or gaming world. In fact, MoSync can run legacy games like Castle Wolfenstein just fine:
(That’s me speaking in the background, by the way.)
So far, MoSync is Windows only (although the IDE is based on Eclipse) so Mac- and Linux-users are out of luck. Supported platforms include Symbian S60, Java ME, Moblin and Windows Mobile. Android, iPhone and Maemo are “coming soon”.
MoSync is cross platform but obviously you won’t get more features than the underlying platform supports. Best support you’ll get for basic graphics, sound, simple Bluetooth access and networking. Without a doubt the best feature of all is the promise of one codebase, multiple platforms, but your mileage may vary.
MoSync is:
- Cross platform, works on many devices – Android and iPhone “coming soon”.
- C++ based, suitable for porting old embedded apps to native but a little higher barrier to cross for the beginner (but C++ isn’t that difficult).
- Still a bit untested, MoSync needs a few more success stories that proves their claims.
- One codebase, one tool!
All in all, three completely different approaches to mobile development. Which one suits you? Well, that’s for you to decide. They all have their strengths and drawbacks and I think it will be quite obvious for you which one fits your bill.
Now, get out there and create great stuff for mobile!
Updated: MoSync just announced Android support.
Updated 2: David Wood wrote an overview of some other cross platform tools.
No doubt, approach of MoSync is great and they are funded pretty well. Being part of spicelabs and have been using their cross platfrom MITR tool, I may be biased, MITR is another great tool besides J2ME and other webkit/widget based frameworks. I am still evaluating MoSync by developing one application on it.
I used to love development in VC++ and VB on microsoft tools where application development was much easier. During 98-99, i used netscape IFC classes as well for developing UI based applications.
My expectations are having mobile application development tools on the lines of VC/VB development studios. Any cross platform tool which will ease my application development, will be the best. Screen size level layout designs are still big challenge, and obviously various keyboards.
First, thanks so much for taking an interest and writing about AppWhirl, and for trying out our beta service. You’re absolutely right about a couple of things:
1) AppWhirl is definitely not an IDE
We believe that apps are the new form of self expression, that everyone will want one and as such we’re focused on Apps For Everyone. Right now the site is in a very primitive early stage. You’ll see a lot more functionality and app features following our launch at DEMO 2010 – the industry’s premier launch event. Unfortunately we’re contractually embargoed on details till the launch, but we’d love to give you a tour of our new functionality at that time, including multiple platform support (with some platform surprises in there).
2) This is like the early days of the web
We see a world where Apps become the default entry point to Internet content and services in the mass market – not just on mobile phones, but on TVs, Set-top-boxes, consoles etc. There’s a land grab going on over the next few years, for screen real-estate. We view apps as channels of communication between individuals and their audience, channels the end-user opts into by placing on that precious screen-real-estate – the screen they’re doing their media consumption through. We believe we’re not moving from 100,000 apps to 200,000 apps to 300,000. We see there being a million apps by the end of next year and ten million 18-24 months after that. AppWhirl’s aim is to facilitate that vision.
Thank you again for taking the time to review our company. Your article is a great look at the space. We’d be happy to talk with you any time, if you want a bit more of our thoughts on where this movement goes.
Thanks for commenting!
@Pradeep: Yes, we still have some way to go before the tools are where PC IDEs were 10-15 years ago, but things are happening fast now.
@Richard: I wrote a blog post over at the Sony Ericsson community where I toyed with the idea of a one billion apps app store.
That is, an app store that contains one billion apps, at the same scale that the internet contains web pages.
Will we get there? I don’t know, but it was tools such as yours that were in the back of my mind when I wrote the post. Tools that make it order of magnitudes easier to create apps. I’ll be watching you with great interest!
Pingback: Cross platform development the Next Big Thing « The Mobile Web Tablet
check out rhomobile and let us know what you think. they potentially support more devices than mosync and work off a trimmed-down ruby and barebones embedded http server. they also have an interesting online webservice and local caching model which allows for seemless online/offline ux. they throw the whole thing together an online file hosting and ide offering. it’s a nice complete package for developers.
Pingback: HTML5 apps for mobile (iphone, android, and the rest) « Digital Marketing Blog by Soak Digital
Its true, that 71% of all Android users want to have an Android phone as their next phone. Though the iPhone users are even more loyal, their 89% number is quite normal for Apple users in General. However, there is not just one phone with an Android OS – there are a lot by now! Therefore, it is hard for Google / Android to provide the very same user experience on every Android phone.
Frida Adams from Rapidsoft Technologies
Yo Sweden! Check out Application Craft http://applicationcraft.com
jQuerymobile has announced AC as a JQM dev platform and here’s a case study that Phonegap did on them : http://phonegap.com/case_study/phonegap-application-craft-pain-free-mobile-app-development/
In summary, it is a cloud-based dev platform that does mobile (all important platforms) and desktop on an equal footing. It’s got an IDE that does drag-and-drop / wysiwyg UI building as well as code editing. I guess you could describe it as Visual Basic in the Cloud, but Javascript not Basic. Widget based like VB was, extensible. Open Source with free platform offering.
Hi,
I need to know which other sdk can able to handle multiple devices eg android,blackberry,nokia and etc