mandag den 18. oktober 2010

How important have Apps become?

I have often asked myself how important Apps really are, are they worth spending time and money developing or even blogging about. There are a lot of statistics out there that try and answer this question but collating them all into something usable isn't easy.

Today i found the picture below on a site called SocialMediaGraphics.They manage to condense all these statistics into a really nice view into what kind of interrest you can hope to achieve with a given product. 

I won't be going into much detail or try to conclude anything from the poster, i will leave that up to you.

It is however nice to see Maps/Navigation so high up in the ranks. I work with GIS (Geographic Information Systems) and it just shows that this business is moving to the handheld device at a rapid pace. If i had a business that had products that fit into the first 5 of the most popular app types i would definitely consider the mobile platform as a place to expand and invest.

Click the poster to see it fullscreen

fredag den 15. oktober 2010

Frameworks for Mobile Apps


In an earlier blog-post i wrote about PhoneGap and how it could simplify the development of an App across multiple platforms.

You could start developing your app right now using conventional tools such as HTML and Javascript, basicly starting from scratch. You would however run into some problems, not to mention reinventing the wheel.

Most mobile devices these days no longer have a "mouse" (be it in the form of a pad, a ball or a normal mouse) and as such are built on the principals of touch, gestures (like swiping) and movement patterns (such as pinch zoom). Another important difference between the normal web and the mobile web is the lack of "mouse over" or hover. Mouse-over has been broadly used for menustructures, tooltips and the likes since websites became dynamic.

Finding a solution to these differences is pretty straight forward, but code intensive. It's obvious that you shouldn't make a site or app that requires the user to mouse/hover over something but apart from that you need to get a framework that implements the basic touch functionality, that or writing it yourself which seems pretty counterproductive if you ask me.

There already exists several of these frameworks that provide this functionality, and i will try to go through a few of them here aswell as describing some of the other features they contain.

First one is simply called "Touch". The script originated from OpenGeo and its purpose was to find a way to implement touch behaviours to use with OpenLayers. It is very simple and "brutish" but will give the curious reader an idea about whats going on behind the scenes. You can find the script here. There is no license published or similiar. Should be safe to use even for commercial usage.

Next one is JoAPP which is a fairly new framework. This framework works really well with PhoneGap and is rather easy to use too. With very few lines of code you can create something that looks and feels like a real app.
The framework uses the OpenBSD license which means the framework can be freely modified and used in proprietary or commercial software.
JoApp is created and maintained by Dave Balmer who has also published a video on youtube explaining the features of JoApp, a good showcase aswell.

JoApp is still in its development but from my experience it is very usable even at this point.

SenchaTouch from Sencha is a very cool and slick looking framework. Sencha has been on the JavaScript framework "market" for a long time now and have shown some impressive products in the past.
Instead of describing SenchaTouch, i will link to their demosite instead. If you have a smartphone or phone with touch compatability check out this site in your browser: Kitchen Sink Demo. It does work in normal browsers aswell but you don't really get the feel for the touch controls that way.
Sencha is a commercial business and as such their product is also under a limited licence. You can freely use it for opensource projects but for commercial products, prices start at 99$ and upwards.

jQueryMobile is the last framework i found notable. jQuery has long been the closest there is to an industry standard in JavaScript frameworks. The regular jQuery is used by 31% of the top 10.000 websites out there. They have recently started a mobile branch of jQuery which is scheduled for release late 2010.
Not much is currently viewable from jQueryMobile but you should none the less check out their design page here for some very pretty and functional designs and features.
jQueryMobile, like its parent, has a very open license that allows you to use it both commercially and of course for opensource projects. You can use it as long as you retain the copyright headers.

Of the mentioned frameworks it is quite clear that Sencha is the leading one, at the moment. However im betting that jQueryMobile will be taking the lead later this year when the first release is finished. It is worth noticing that only JoApp has been tested by the developers for use in PhoneGap. I myself have tried putting Senchas KitchenSink demo in an Android app with certain design problems being noticeable.

søndag den 10. oktober 2010

Bridging the platform gap

Earlier i wrote an article about the negative statistics in the mobile industry. There are however technologies you can use to improve your chance to succeed. This technology basically allows you to shoot shotgun shells towards all platforms at the same time and hopefully achieve what seems impossible on just one.

One such technology is the brainchild of the Nitobi development team. Nitobi has created a framework called PhoneGap, which as the name implies bridges the gap between the phones. PhoneGap does this by creating a new layer between your application and the development API on your platform of choice. This means that when you request the GPS coordinates of the device, your application requests this in the PhoneGap layer, which then depending on the platform knows exactly how to get this information for you.

Before i go more in dept on how you actually achieve this check out this video from the phonegap team:
To develop mobile applications using PhoneGap you use regular HTML and Javascript. The idea behind this is that there are a lot more Web Developers and people who know JavaScript than there are developers who know Objective-C (iOS) and Java (Android), and a whole lot more than developers who know both Java and Objective-C.

Once setup you, through only JavaScript, will have pretty much all the same tools at your disposal that you would normally, and while JavaScript isn't exactly the nicest programming language in the world, it is a lot more accessible than Objective-C for most developers.

PhoneGap is not a "Next-Next Installer", it does require a fair bit of setting up to get it running. Once that is done you still have to set up the build environment for each of the platforms you intend to release onto. This also means a Mac is still required to build iOS apps, even with PhoneGap. It is still a huge leap forward from what seemed to be history repeating itself once again. I am glad we are not forced into choosing and betting on just one platform. A repeat of the platform wars back in the early days of computers might still be avoided. Avoided by using JavaScript, now who would have guessed that.

Native apps are for idiots

Despite what the general consensus is for the mobile app industry at the moment, i firmly stand by the title of this article. It is my opinion that developing platform specific (thus native) apps for any one of the mobile platforms is down right idiotic. If i haven't already lost you as a reader by now i urge you to keep going and read my arguments. 


The mobile industry is by all definitions booming at the moment, and  is expected to increase in magnitudes over the next years. In 2009 the mobile app industry made 4 billion $ in revenue [src], a number that would make anyone of expect to be millionaires by developing the next big "fart app". Before you order your new Porche read on.


400.000 is an estimate on the amount of Apps out there in 2009. Might be a tad pessimistic but it entails about 350.000 iOS-, and 50.000 Android-apps. All apps of different purpose, professionalism and price. But all equal in the eyes of our estimates.

Now with those numbers in mind it doesn't exactly take a math professor to work out this evens out to about $10.000 pr App. That Porche you dreamed about just a paragraph ago now turns into a Yugo. It gets even worse though. 

Most western companies would have no chance in hell to develop anything remotely usable for $10.000. That amount of money would barely pay 1-2 developers monthly salary and getting something remotely usable thought up, analyzed, designed, developed, tested, released and published to a market done in 1 month is not likely. A much more realistic estimate of production costs from though to market would be in the order of 3 times that. An agile and talented team would have a chance to be able to create something with around $30.000 dollars. 

That comes down to a defifict of $20.000 pr app out there. And even then, you would have created an app that only works and runs on one platform, you can easily add 50% of development costs pr new platform your porting to.

In other words the statistics are against your mobile endavour. Fear not though, there are solutions that could push the statistics in favor of you succeeding.

If your not discouraged from delving into mobile industry after reading this you should check out this article: Bridging the platform gap