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.
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
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.