Mobile App Development Using Web Tech

Previously, developing mobile apps and deploying them to their respective stores (iTunes, Play store, etc.) was a pain for a number of reasons. Native apps being developed for Android had to be developed using Java, IOS apps had to be developed using objective C/C and Windows apps were built in .NET. There was no uniform way of creating an app that would work on all platforms without actually creating three separate apps. What a nuisance you say? I wholeheartedly agree.

However, as with everything in this life, we started to think about what we could do to make things a bit easier for ourselves. Enter cross platform mobile app development using web technologies. As time has moved on, websites have been built to adapt to the exhausting variety of device screen sizes. This means that there is a large community of web developers who have been developing websites and web applications which are fully responsive. The skills required in order to build responsive websites is not something that comes easy. Therefore having to learn not one, not two, but possibly three new programming languages on top of the responsive web development techniques they already know in order to claim to offer mobile app development services is a bit of a stretch. This is something which has stopped many software developers including myself, from having the time to create noteworthy mobile apps for each of the respective device operating systems.

From previously downloading apps I have seen that the average mobile app developed in its native OS language is around 20MB.  These often require a connection to a network to utilise the capabilities that the app offers. Furthermore, countless updates are pushed to the users device during the lifetime of the app. These updates involve downloading large amounts of data not to mention consuming the users time. In most cases, the user cannot use the app whilst an update is being installed. This is something which does not happen with web apps as updates are rolled out asynchronously. There are some mobile apps which have a desktop version that offer almost all of the same functionality out of the box but do not impose such strains on the users device. The next logical step at this point seemed to be to start developing our mobile apps for the web, moving away from installing them directly on the users device. However as is the case with a lot of things, there are a number of caveats involved.

Sacrifice

The natural shift required in order to solve these nuances was to move to the web. This is when all websites became super responsive to screen sizes and it is something we continue to see more and more as mobile usage soars. However many entrepreneurs, companies and developers excited about their next big idea found that by moving to the web a sacrifice had to be made. This sacrifice was to do without access to the devices hardware such as the camera, GPS system and push notifications. These are not accessible from web apps because they are not physically installed on the device. For certain apps, quite a lot of them in fact, this is okay. However try telling that to Joe Bloggs who has a great idea for an app that involves recognizing a brand by simply taking a photo of a clothing item.

Joe needs access to the camera on the device therefore a responsive web app will not work for him. What options is he left with? As I said earlier the only options he had previously was to develop an app with the native OS of each device firmly in mind. However I'm sure Joe will want as big a reach as possible and will want to deploy to all of the app stores. He faces the challenge of finding possibly three developers capable of doing the job which will take a lot of time and a lot of money. So after choosing to develop his new app using the web in order to avoid the multiple app scenario suddenly this headache presented itself. This was yet another challenge to companys, entrepreneurs and developers alike. A challenge which now it seems, has been taken head on and we are seeing some really great solutions for developing cross platform mobile apps using web technologies we are already familiar with. Joe says thanks! Lets see whats on offer shall we?

Cross Platform Tools

These days with everything going mobile crazy it is essential to rapidly develop and deploy apps at scale. The older style of creating serperate apps for each device OS is no longer a viable option. People who have ideas need to get to market quickly in order to profit. This means cross platform development tools will become vitally important over the next few years. A number of cross platform tools have emerged in the last 2 years or so,  which allow developers to create cross platform mobile apps using purely HTML, javascript and CSS. These platforms use a javascript API which calls the required operations of each devices native OS. This means we can now develop ONE app using one common codebase for each device (IOS, Android, Windows phone etc). At last a developer who always wanted to create an app but may not have had the time to do so due to the massive learning curve can now do so with ease. That is, if they are already comfortable with web development languages.

Of the options available, and there are quite a lot already. I quite like the look of the Intel XDK. It has an IDE which contains all of the tools you need to develop an app using HTML, javascript and CSS. One of the advantages it has over other platforms such as Phonegap is that it houses a web debugger (Chrome - Developer tools, firefox - firebug etc) within the IDE meaning you do not have to go back and forth to check something in different browsers when testing. This will save developers an awful amount of time. The aforementioned PhoneGap is also a popular option among developers as it compiles the javascript into the devices native OS language which alows you to rapidly develop beautiful, native IOS and Android apps. Sencha is another HTML5 mobile application framework that allows you to develop web applications having the look and feel of native apps. While there are many other options out there I have not had the chance to explore many as of yet before I make my final decision on which one to go with.

One thing for sure is, I will be going cross platform and utilising the skills I already have. I'm sure a large contingency of developers will be doing the same. By doing so they can develop beautiful, fully functional apps on all devices, saving themselves a bucket load of time in the process.

Comments (4)

  1. Thanks for this amazing article. The insights helped me sort out a lot. Made notes and shall be using the tips right away! :)

Leave a Comment

Your email address will not be displayed on this site.

Name is required.

Email is required.

Comment is required.

Follow my blog

Enter your email to receive notifications of my latest blogs.

I'll never distribute your email. I'm anti spam.

Follow me on Twitter

I tweet what I find interesting about design & development. Nothing else.

Follow

Hire me

Need a responsive mobile-ready website? Get in touch.

Drop me a line