fbpx

How To Build A Mobile App In 2019 According To Experts

January 17, 2019

How To Build A Mobile App In 2019 According To Experts

Let’s say, just for the sake of argument, that we’ve already convinced you your business needs a mobile app. Which it does, at least if you want to reach over half of the market that primarily uses the Internet from a mobile device. So you do need a mobile app, and the next question is, “how should I build my mobile app? Apple or Android first?”

Mobile app platforms: Apple or Android?

This is a hard question, because the actual answer is, “yes.”

The truth is that in the US — and in fact in most all of North America — Apple’s iOS and Google’s Android both have a huge portion of the market with Apple in the lead. You can choose one or the other, and lose roughly half of your potential market.

Or you can build for both, but that means essentially doubling the development costs. iOS uses the Swift and Objective-C languages for native development, and Android a dialect of Java. Both are decent and respectable environments but they are wildly different from the lowest level APIs to the user interface conventions their users expect.

Apple has a very strict set of design guidelines whereas Android will allow for just about anything to be put on their store. Getting your app approved in the Apple App Store can take much longer as a result while they confirm your solution meets their stringent guidelines. Break those rules and you may get sent to the penalty box.

What if you could develop one application for both Apple and Android?

Mobile apps: Or Android?
Photo by Suika Ibuki on Unsplash

The dream of platform independent mobile apps

In the last few years, there have been a number of approaches tried to build platform-independent mobile apps — although the platform vendors have been less than welcoming to the idea. But there is a lot of pressure on both Apple and Google to fully support all web technologies like JavaScript and HTML5 on all their platforms. Google has been committed to the idea for a long time – their chrome OS is after all completely based on web technologies — but Apple has been forced into full support as well.

Web technologies for mobile apps

This means the search for a way to build platform-independent mobile apps has lead to using HTML5, CSS3, and JavaScript to build apps. These, in general, depend on frameworks that allow a web app to connect with the mobile API provided by the platform.

At first this required custom code for each platform, but now HTML5 provides interface APIs for most all of these functions. This means, as mobile web browsers become more fully compliant with the HTML5 standard, almost no platform-specific code is needed any longer. The only exception is when your mobile solution needs to tightly interface with your mobile hardware such as GPS, microphone, accelerometer or compass. Then native code may be the best choice.

If you are not interfacing to specific phone sensors, there are a number of different frameworks and approaches to building mobile apps using Web technology…

React and React Native

Facebook has a positively huge code base, which by 2011 was becoming nearly unmaintainable. At the same time, the interface was moving more and more toward greater responsiveness using javascript in the browser to avoid long back and forth message exchanges and load on their servers.

Facebook in particular made many changes in their software, finally leading to the React framework for user interfaces. Facebook made React open source in May of 2015.

Facebook followed that with React Native which uses the same web approach to build applications for both iOS and android. React and React Native are used for both the Facebook and Instagram apps, so they are heavily used across all platforms.

(We at FHG have adopted React Native for many mobile application solutions.)

Ionic

Ionic is a framework built on top of Apache Cordova. Cordova has a somewhat complicated history, with several names and several companies developing it before Adobe made it open source. Adobe now has a framework of their own built on top of Cordova, called PhoneGap.

Cordova provides a library of native code components to bridge the gap between JavaScript and the native APIs of the platform. Ionic has been a popular platform for app development.

Electron

Electron is really a framework for platform independent app development including not just mobile apps but desktop apps too. Instead of depending on the web components provided by the platform, Electron actually packages the JavaScript and rendering engine components in a single executable with what is effectively a Web server. The application is distributed as an apparently native app for all platforms.

Electron has become a very popular platform framework for desktop applications. Among the most popular examples are the new and wildly popular Microsoft Visual Studio Code, which has become one of the most popular environments for programmers in just a few years. The Slack application is a great example.

Are there other frameworks?

This is really not an exhaustive list.

There are a number of other frameworks that have been used to build platform independent mobile apps. Some examples are Appcelerator and Microsoft’s Xamarin.

Progressive web apps

Perhaps the most exciting new approach is something called progressive web apps (PWA). The basic idea of progressive web apps, which Google announced just last year, is to make use of the new web technologies. In particular, service workers which allow background applications running in the browser and web application manifests. PWAs look more like a traditional application which make it easy to deliver applications as if they were web pages. The “progressive” part of the name refers to applications that can adapt to different environments by downloading functions to the browser depending on what it is prepared to support.

This is a very new technology. Barely just on the horizon but a very promising way to finally liberate us from the concern of which platform we need to target.

Mobile apps for everyone

It’s never really safe to say anything more predictive in software than “watch this!” But the technology for building mobile applications has grown tremendously in capabilities, in flexibility, and in productivity. If you don’t have a mobile solution, you may be going the way of the stagecoach!

More and more the answer to building a mobile app for your business is to build it using Web technologies to lower costs and move to market more quickly unless you need to tightly interface with your phone’s sensors and hardware. In that case, stay on the native code road.

Want a mobile app? We’d love to help. Contact FHG for a free consultation and cost estimate.

Charlie Martin
Consulting Software Engineer

Charlie Martin is a consulting software engineer and writer in Erie, Colorado, with interests in systems architecture, cloud computing, distributed systems in general and innovative applications of blockchains in particular. He is available for consulting through Flint Hills Group.

Charlie-Martin-Flint-Hills-Group-Software-Developer
Charlie-Martin-Flint-Hills-Group-Software-Developer

Charlie Martin
Consulting Software Engineer

Charlie Martin is a consulting software engineer and writer in Erie, Colorado, with interests in systems architecture, cloud computing, distributed systems in general and innovative applications of blockchains in particular. He is available for consulting through Flint Hills Group.

2019-01-17T09:51:48+00:00