May 25 - 27 | 2020 Antwerp, Belgium

Progress With Awesomeness by Axxes

Progress With Awesomeness by Axxes

Author: Joey Comhaire (linkedin, twitter)

 

Being a developer in 2019 comes with many, many choices. Every day we are faced with choices about what we're going to eat, what clothes to wear, what framework to use, etc. The fact that we have these choices should not be considered a problem, but a privilege.

 

The development of frontend and mobile applications in particular isn't an exception to this situation. When we are asked to develop a mobile application, we have the option to choose between developing a native application and/or a hybrid solution.

axxes-blog.png

First of all, let me explain the ideas behind these 2 approaches:

Native applications

A native application is a program that has been developed to work on a particular environment or platform. Native applications are most often built using software development tools (SDK's) for a certain framework, platform or operating system.

 

We can build Spring applications or Android apps using the Java Development Kit. iOS apps can be built with the iOS SDK, Swift or Objective C. Or we can use .NET to target the Windows platform.

 

Due to their nature, these applications can take full advantage of the platform they are targeting. This usually results in better performance, better integration with the hardware, etc.

Hybrid applications

Unlike a mobile friendly website, which is a must these days and a third possible solution, Hybrid apps are just like native applications. They can be downloaded and installed from an app store. The main difference is that Hybrid applications are written using web technologies like HTML, CSS and JavaScript. They are then compiled to run on a specific platform or system using frameworks or tools such as Cordova, PhoneGap or React Native.

 

Depending on the framework you use to create Hybrid applications, the app will run in a WebView, which is a view used to display standard web pages but without the native browser UI. Native plugins are needed to connect your hybrid app to the platform you're running on to be able to use the platform’s capabilities.

Fast forward to today

For many years, if you wanted to do more than a classic website could do, these 2 solutions were the only possibilities to create a mobile application. Today, the web technologies and browsers have evolved in such a way that we can create mobile applications using only web standards. We can easily develop a website that looks as good on a desktop machine as on a mobile device in just a few hours. Following common design principles can help us create beautiful designs for all devices.

 

The only thing that developers tend to forget is that most mobile applications are a tool to generate profit for an organization. When users open an app, more precisely an icon on their mobile phone, they are expecting a native-like experience. Anything less than that reflects badly on your brand.

 

When thinking about that native-like user experience, we have to consider push notifications, splash screens and app icons. Progressive Web App technologies can help us achieve this native-like user experience, even on a standard website or web app.

Progressive Web Apps

Progressive Web Apps

A progressive Web App is not a framework or an SDK to develop a new kind of mobile application. It is a "new" web technology to enhance your existing web applications with new features. The reason we call them PROGRESSIVE is because the

web apps will still run on older platforms and browsers but enhance the apps with new PWA features on more recent platforms and browsers that support those features. By using new web features like manifest.json files and service-workers, we are able to bring our existing web applications to the next level of awesomeness.

pwaLogoBlog.png

The reason why more and more people choose to develop hybrid apps or enhance their existing web apps with PWA features is cost. Not only is their work to do for evey plaform you choose to target, you have to build knowledge about every one of these platforms, which will cost even more time and money. All while also maintaining a functional web site. Therefore, a lot of businesses are attracted to choose hybrid or PWA solutions.

 

Just like hybrid applications, Progressive Web Apps require plugins to access device features such as the camera. If you have to use a lot of device features, or do things close to the OS you are running on, you should probably go for native app development instead.

 

In conclusion, I would like to emphasise that Progressive Web Apps are not are not going to replace Native or Hybrid app development, at least not for a while. They are just another tool in our toolbox that we can use to fix a certain problem. You have to consider all the requirements and weigh the pros and cons of all possibilities in order to make the right decision. This will make sure we choose the right technology for our project.