Av: Joakim Lundin

2012-09-14

Mobile application development

On Wednesday the 8th of September Dynabyte held a trendspotting event aboutdevelopment of applications for mobile platforms. We were a group of 20 people in total consisting of both senior and junior consultants. The discussions revolved around how we thought mobile development will be done in the future and how the applications will be distributed to the clients. This time we also discussed whether we thought that it was a possible business for us to enter and evaluated the effort it would require to reeducate ourselves to mobile application developers. In the usual order, we began by brainstorming around what specific subjects that we felt important to bring up during the meeting. We finally ended up with HTML5 vs. native apps, Profitability, and Cross-platform development.

## HTML5 vs native apps
It’s easy to question the need for light weight downloadable mobile applications when the latest trends seem to be to move everything to the web. Why would you want to run anything natively on your mobile device runtime when you will be able to achieve the same thing from a web based solution? Performance and hardware are obviously still big issues. The mobile devices offer new native services and OS specific features such as multitouch, GPS, and accelerometers. When you are creating a mobile application, whether it is for an Android phone, Iphone, Ipad or any other device, you will always know how the user will interface with your application. You can tell how well the application is going to run, what hardware will be accessible, and how it all will be displayed on the user’s device. Even if you could make certain restrictions on your web application, such as only making it available for certain resolutions, you might ask yourself if you have chosen the right platform if you end up creating a different solution with each restriction. Another issue is client side content. An HTML5 solution will allow you to run rich client applications directly in your browser but you will still have to download all that graphics, logics, and data each time you enter a website. HTML5 supports a local storage to allow applications to store user input data in offline mode (5 megabytes according to the HTML5 recommendation). By using the local storage and the cache manifest you can allow your website to be downloaded and run locally thus eliminate the need for any interactivity with the web server. Though, depending on the nature of the application 5 megabytes of user data may sometimes fall short. To summarize the above, neither of us thought that apps will be replaced by web applications any time soon. The bottom line is that clever distribution systems such as Android Market and App Store make it so easy for the users to download the app they need and run it whenever they want wherever they want. But as mobile devices evolve and as the market becomes more diverse the need for a common unifying platform will grow so the mobile web applications are far from being out of picture. Mobile Marketing Watch is writing about a report published by ABI Research suggesting that mobile app downloads will continue to grow until 2013 when the mobile web will take over. Though, it’s obvious that this is not a zero-sum game. There is a steadily increasing number of mobile device users and some solutions will be more suitable as apps while others may very well be better off as a part of the mobile web or maybe even as something in between. Another important point that was made during the meeting is that from a developer’s point of view it might be more worthwhile to learn HTML5 than to learn to code for just one single mobile platform. On the other hand, if we have a little extra time, who says we can’t do both

## Profitability
Today, an enormous hype is being built around mobile application development. Every company and organization, big or small, wants to have their mobile application on App Store or Android market. So, how can a consultant firm such as Dynabyte get involved? A mobile application is usually very lightweight and simple compared to the traditional desktop applications hence the time to market is relatively short. The most plausible scenario should therefore be that Dynabyte gets contacted by a customer who would like to expose some service or product through a mobile app as a part of campaign or as a complement to an already existing product. We didn’t put any high hopes on developing and selling mobile applications to the end customer. The cost of a mobile application very rarely reaches above a few Euros and a big portion of that usually goes to the distributer (most often Apple or Google). To be able to make any money just by selling the application you will have to reach a number well above the thousands. Gartner predicts that mobile device owners will spend $6.2 billion in mobile application stores during 2010, a number which they believe will triple over the next three years (read more here). It seems very likely that at least a handful of us will be exposed to mobile application development in a not too distant future. Hype or not, we have everything to gain on reading up on mobile application development. A nifty little application on an app market to which you can refer in your CV will probably be worth a lot in the years to come!

## Cross-platform development
There are a huge number of different mobile devices available on the market and with that come a wide variety of platforms to consider when you decide to develop something. There have been many valiant attempts to solve this problem and create a code-once-deploy-to-everythingframework. There are a ton of them out there including Mosync, Appcelerator Titanium, and RhoMobile – most of which allow the developer to create applications using familiar web based technologies. We tried to come up with a few of these frameworks and discussed their pros and cons. Neither of these cross-platform frameworks was portrayed as the perfect solution in our discussions. I have yet to try them myself so I can’t make any final judgment but I must admit that even though I was rather skeptical at first I can’t help being impressed by what they can do after watching some of the demo videos out there. Development on cross-platform frameworks might not be suitable for large complex systems where security and performance are key requirements but mobile applications are exclusively lightweight and simple. Even though the frameworks seem to work fairly well they all have their drawbacks. A cross-platform framework is generally forcing the developer to use the lowest common denominator subset of features that are available on all supported platforms. Most of the framework will not allow the developer to use the native UI features and components which can end up being rather confusing to the end users who are used to having their apps look and feel a certain way. Development for multiple platforms will also complicate testing, both automated and user tests. We weren’t able to decide whether we thought that cross-platform frameworks were a part of the future of mobile application development or not but as long as apps are considered to have the edge over web based solutions the cross-platform frameworks may very well prove to be a rather good alternative for those who are willing to sacrifice some performance for the benefit of reach. Most of the discussions were made with Iphone and Android in mind but it’s important to note that Nokia with Symbian is still by far the dominant smartphone market leader. According to Gartner the smartphone sales of Q2 2010 put Symbian and RIM as the top two smartphone operating systems (read more here). However, everyone in the group agreed that being able to publish something on Android Market or App Store seemed much more interesting than developing for Symbian or Blackberry. It will certainly be interesting to see what Nokia, RIM, and even Microsoft (who will spend $500 million on advertising WM7!) can do to change this trend. We aim to host the next trendspotting event in November!

#HTML5 #Mobilapp

Relaterade inlägg

Rich Internet Applications

Testdriven JavaScript med Knockout.js och QUnit