Are the web and app world finally converging?


When the first smartphone was introduced, consumers might not have realised how, in a few short years, much of their online interaction would be from these devices. Even with their small screens and often slower internet speeds these devices have become the main way we now interact with the internet.

Apps are small, smart, downloadable pieces of software designed to run specifically on smartphones. The rapid and astronomical growth of this market surprised many people. With mobile devices many businesses have seen a new way to connect (e.g. interact with a brand, transact or get information) with their consumers on a much more personal level, wherever they are.

Mobile web traffic (i.e. accessing websites from a smartphone browser) has recently outstripped laptop and desktop traffic in New Zealand and around the world, proving that people are starting to rely on their mobile devices much more than they are on their larger, sometimes more powerful desktop/laptop devices. Convenience is a huge factor here, of course.

For many years however the developers building this mobile smartphone solutions and the consumers using them have often been faced with a decision: a website (accessible via the smartphone browser) or an app. In the developer community this often polarises people and there are many passionate articles discussing the pros and cons of both approaches. For businesses in New Zealand who need custom mobile software, often it involves some difficult decisions: do you need a mobile responsive website, an iOS (iPhone / iPad) app, an Android app (perhaps even a windows phone app) or all of the above? Generally all these things need to be developed separately using different technologies so it can become very expensive. It can also be hard to get impartial advice from software development companies as they will often steer you towards the technology that they specialise in.

Cross Platform Development Tools

In recent years, numerous companies have attempted to create cross-platform development tools. These make it possible to code a single app that could then be used on all platforms, including web. Some of these products include Phonegap, iFactr, Kony, Xamarin, Appcelerator, etc.

Some of these tools are promising — the ability to be able to cut down both development time and cost by only developing one app is very attractive. However, as is so often the case with cross platform development tools, there are always limitations and compromises. Unfortunately many people (and we at 3months have fallen into that trap in the past) end up finding out what those limitations and compromises are too late in the project or when new requirements emerge.

The other big drawback in using these tools is that most are proprietary (i.e. not open source) and none have dominated which has fragmented the market and increased the risk of picking a technology that very few people understand.

The rise of Javascript (and Javascript frameworks)

Javascript is the programming language of the web that allows interactive, responsive user experiences to be created. Javascript allows “single page apps” to be created (i.e. webpages where, when you press a button it responds almost instantly without the whole page having to refresh). JavaScript has a huge following — not just because it is easy to learn, but also because it is supported by every single browser. This means that no matter what kind of computer, what operating system, what screen size or what internet browser the user prefers, when combined with HTML and CSS, a well coded JavaScript website will work perfectly.

Javascript however is also hard to program well and one of the main arguments for using native apps on smartphones is that you simply can’t get the fluid user experience using Javascript in the browser that you can with native apps.

Javascript frameworks are however now starting to close that gap. These are open source (i.e anybody can use without paying licence fees) “libraries” of JavaScript code written for a specific purpose. They make it much easier for developers to build interactive web-based applications, as a large part of the coding has already been done. Currently there are a handful of popular Javascript frameworks (including Backbone, AngularJS, Ember and ReactJS). I won’t go into a comparison of all the frameworks (there are plenty of great articles doing that already) but after a lot of research about a year ago we started focusing on ReactJS and haven’t looked back.

ReactJS is the new kid on the block, it was created by Facebook who open-sourced it and is now used by some of the the most popular sites in the world (e.g. Facebook, Instagram, Netflix, AirBnB). We love it for building highly responsive data driven user experiences for the web. For an example of the sorts of stuff you can do — if you are a member of Consumer New Zealand we recently built their product comparison tool in ReactJS.

React Native — changing the game

This is where it get’s really interesting. In the middle of last year React Native was released.

React Native is something completely new — it allows JavaScript coders to use the ReactJS framework to create native apps that will actually be placed in the app stores. What this means, both for apps and for JavaScript, is huge. Not only can it create powerful web experiences, it can also create powerful iOS and Android experiences. Some smart developers around the world are starting to realise the implications.

The lower cost, quicker turnaround time, and ability to develop for all platforms at the same time, while using a language that most developers already know and use, has the potential to bring huge benefits for businesses needing to use web / mobile technology to compete.

Every project needs to consider the pros and cons different technology / architecture options but we believe that ReactJS / React Native brings an exciting new alternative.