Cross Platform Development

Following up on the previous blog post in this series, this post attempts to focus on two more application development types that have come out relatively recently. Those application development types are hybrid applications and progressive web applications (PWAs). We will do a similar dive into these application types.

Hybrid Application Development

A newer type of mobile application development that is gaining traction due to its ease of entry and quick time to market is what’s known as a hybrid mobile application. Similar to how hybrid golf clubs are a blend of a wood and an iron, a hybrid mobile application is a blend of a web application and a mobile application. The idea is to take the advantages of web application development (simplicity of languages, a plethora of resources, endless examples, and great developer communities) and incorporate them into an application that feels and looks like a native mobile application.

The benefits of choosing hybrid application development are numerous: 

  • You are able to craft a mobile application using JavaScript, HTML, and CSS, alongside some sort of framework like React Native, while still aligning with the key features of a mobile application.
  • You often have a much easier time creating the application because the tools used are ubiquitous for developers, and you are presented with a number of APIs that allow you to interact with the mobile platform and hardware.
  • The barrier of entry with hybrid application development is quite low, you simply need some experience with web applications, and you should be well on your way.
  • Another helpful feature of hybrid applications is that they also fit the primary characteristic of cross platform applications – you write the code once and deploy it to multiple different platforms.

Given all the positive aspects of hybrid application development, it might be tempting to lean towards this as your development option if you’re comfortable with web development. A word of caution is necessary, as hybrid applications do have some significant drawbacks.

  • Hybrid applications are much slower than native or even cross platform applications. This is due to the fact that the application needs to be wrapped in a web view in order for it to operate properly on the mobile device. Improvements are being made to optimize the web view, but as of now it is clearly behind the power and performance of native applications.
  • There is a tendency for hybrid applications to not be customizable. There’s a certain look and interface you expect when using a mobile application, and because hybrid applications are developed with web technologies, it’s difficult to build an application that performs to the user interface standard that has been set. The more effort you put into modifying the application to present the interface you desire, the more you will start to think native development is the way you should have gone to begin with. 

Hybrid applications are a great way to build simple applications that aren’t expected to be a spectacular experience for the user, but for more complex applications, hybrid development is going to introduce a significant challenge to overcome.

Hybrid application technology is a lot like the wave of JavaScript technologies that were introduced to the developer community several years ago. Think of AngularJS, React, VueJS, EmberJS, and BackboneJS. These frameworks came about to help web developers make more intriguing and immersive user experiences, and find ways to better structure their web applications while also writing less code and making more flexible and reusable components. These frameworks were relatively unknown and largely considered more difficult to use when they were first released, but they slowly gained popularity as their feature sets continued to grow and the product became more mature. I believe a similar progression into maturity and robustness will occur with Hybrid applications on the mobile. As tools like React Native, Flutter, and Ionic continue to grow and gain a user base, so too will their features and ability to make a user experience, interface, and performance that matches that of native applications.

Progressive Web Applications (PWAs)

The final type of application development that we will cover is what’s known as a Progressive Web Application or PWA. The idea of a PWA is that it’s an application written completely as a web application, and a shortcut to the web application is installed on a device for the user to be able to start the application. The application then loads the web page, but hides some of the normal web features like the URL bar to make the interface feel more like a mobile application. 

These applications are very similar to hybrid applications – easy to build using web technologies and offer a very low barrier for entry. The main difference between a hybrid mobile application and a PWA is that the hybrid application is actually a true application installed on the device, whereas a PWA is simply a link or pointer to the web page where the application is running. The term progressive is used to indicate the application is built in a way that allows the application to load its core and most important content first, and then to enable more functionality and more UI features as the browser, network connection, and device are able to support. This allows PWAs to be usable on a wide range of devices, while still requiring a single code base to develop the application.

Most of the positives of hybrid applications apply to PWAs, but there are some unique advantages to PWAs that give them an edge over hybrid applications:

  • PWAs are web applications, so updates are as simple as sending a push notification; there’s no need to deploy a new version of the application to the mobile device.
  • There is no dependency on the Play Store or App Store to get your PWA to your end users.
  • PWAs can take advantage of caching on the device, which results in quicker load times and increased performance when using the application.
  • They feel and look like native mobile applications, so the comfortability and intuitive feel is another highlight of the PWA application type.

Some of the prevalent downsides to this new application development style include:

  • Their dependency on an internet connection (to receive new data or updates, though the application should still work without a network connection).
  • The potential for significant load times due to large amounts of content being delivered on a slow network connection.
  • Hardware interaction is more difficult due to relying on APIs and libraries.
  • The integration issues that come with working with older or less widely used browsers.

PWAs are a new and exciting concept and will become more prevalent in the future. I believe PWAs are going to be a strong contender in the mobile application development space, and with the ever extending library and API ecosystem, it will not be long before PWAs are able to perform as well as native applications.

What’s next?

We’ve now covered the four different application types – native, cross platform, hybrid, and progressive web applications.  In the next post, we will perform a comparison between each choice, and try to offer some suggestions and decision points to guide you toward an optimal selection.

Do you need help determining the appropriate path forward for your mobile app? Join in the conversation below or Contact Us.

Curran Lipsett, Senior Software Engineer
Latest posts by Curran Lipsett, Senior Software Engineer (see all)