Designing and developing a mobile application can be a complex and multifaceted process which entails dozens of difficult decisions along the way. But before a single line of code is written, the key call has to be made: should the app be built using Native, Hybrid or Progressive Web App technology? This quandary will very likely make your head spin – there is simply no right answer that would universally apply in all cases.

Take this post as our proverbial two cents in the Native/Hybrid/PWA discussion. We hope it sheds some light on the differences and saves you a little time picking the right technology for your business. Enjoy!

Native Apps

Native technology may not be making all the headlines these days. That’s hardly surprising, as going native is neither the cheapest nor the fastest option. But it still has a lot going for it: superior performance, simplicity and app stability – basically the three pillars of today’s most successful apps. They stand behind the fluid user experience so critical for certain use cases – especially complex graphics-intensive apps. For streaming video platforms or mobile games, this may be the “make it or break it” kind of difference.

Pros:

  • Better performance and responsiveness to touch. Native Apps are faster and better utilize the device’s resources.
  • Native apps make it easier to retain the platform’s native look-and-feel
  • Native apps give developers full access to all the native functionalities offered by the SDKs.
  • Native apps should be a no-brainer for mobile games and apps which require efficient graphics and animations.
  • Native apps are known to better handle device hardware like cameras, microphones, flash, accelerometer and sensors. No plugins or extra tools are needed.
  • Native applications are typically designed in a way that allows users to use them without access to the internet or with bad connectivity. This may be especially important for users in roaming, where additional data costs apply.

Cons:

  • When the app has to be supported by multiple platforms, native app development entails running separate development processes, which takes longer.
  • The above probably means higher cost due to engaging multiple developer teams. Native is not the most efficient approach and requires maintaining a distributed codebase.
  • More expensive maintenance in the long term due to the need to push out updates for multiple mobile platforms.

Native Apps by Better Software Group

Due to the complex nature of our projects, some of the most advanced apps in our portfolio are native apps.


NorthStar

NorthStar approached us to add the BLE communication technology to their transportation batteries giving their customers battery performance data in a clear and convenient way. We knew the stability of the app was a crucial requirement, which inclined us towards choosing native technology. This helped us ensure that the NorthStar app was stable and responsive.

When working on the project, we learned the many advantages of native apps. The limitations resulting from proximity communication and making Bluetooth work for multiple sensors made us go with the native technology.


KFC mobile

Another example was the KFC mobile app released in Poland, Hungary, and the Czech Republic. The core functionalities were there, but in accordance with specific marketing purposes, the client wanted to choose what options and functions will be available in specific countries. Till this day Pay U is accessible in Poland and Czech, but not in Hungary. The app released for Hungary was created from scratch by BSG.


Hybrid Apps

Hybrid apps bridge the gap between native technology and the web. They simply offer the best of both worlds: the familiar installation process through the device’s own app store, and compatibility with multiple mobile platforms. Apps developed in hybrid technology typically offer some basic native functionalities, although this usually requires implementing platform-specific plugins.

Pros:

  • Hybrid apps are cheaper. Reduced development time and cost results from developing and maintaining a single code base for all mobile platforms.
  • Easy development – hybrid apps are based on the well-established technologies like HTML5, JavaScript and CSS.
  • Compatibility with various form factors is easier due to responsive web design
  • Hybrid apps can be distributed both natively (installed like any other app from the app store) and in mobile browsers. This increases their visibility.
  • Apps are easier to test, which also speeds up the development process. There is no need to perform tests individually for each Android and iOS.

Cons:

  • Worse performance compared to native apps
  • Unlike in native apps, there is no possibility to ensure the look-and-feel consistent with the system
  • Some functions of the hybrid app may not be available if there is no or limited internet connection.

Examples of popular hybrid apps:

Hybrid apps

  • Facebook (Note: Facebook’s mobile app is considered hybrid. It’s written in React-Native, a JavaScript-based framework created by Facebook. Today React-Native is the foundation of most leading mobile apps on the market).
  • Skype
  • Evernote
  • Uber

PWA (Progressive Web Apps)

PWA have been all the rage recently, which results from their key advantages: easy installation and lower reliance on internet access (compared to hybrid apps). Progressive web apps can be installed with a single click and can use the same code base across mobile desktop. Simply put, PWA’s are based on web technologies, which allows them to be distributed without packaging or signing.

PWA share many similarities with hybrid apps, but the main differences between the two include:

  • PWA app shortcuts can be added to the device home screen with the ‘Add To Homescreen‘ option – without the need to install from the app store.
  • Hybrid app development requires both web app and Native app development skills (Kotlin/Java for Android and Swift for iOS). PWA apps are based on a single code base and a common skill set (web).
  • PWA apps are known to work faster even in bad internet connections (compared to hybrid apps).

Pros:

  • Explicit action for App update is not needed
  • Responsive – compatible with different screen sizes “out of the box”
  • Installation is not required
  • “Automatic” updates which don’t require user’s confirmation – users always have the newest version of the app
  • Progressive web apps can work offline
  • If needed, progressive web apps can be distributed through the app store, which from the user’s perspective looks and feels of any other app.

Cons:

  • Worse performance compared to native apps
  • No possibility to execute code in the background
  • Limited access to specific hardware functionalities like camera, fingerprint readers and GPS. Depending on what the app is supposed to do, it may be a dealbreaker.
  • No push notifications on iOS
  • On iPad, PWAs are not compatible with some native functions like Side or Split Views, and take the whole screen.
  • No access to private information like phone’s contacts, location

Some examples of progressive web apps:

  • Starbucks
  • Housing.com
  • Flipboard
  • Uber

Conclusion

There’s certainly no one-size-fits-all solution. Choosing between native, hybrid and progressive web apps should be based on specific considerations:

  • Will the app be released on multiple mobile platforms (e.g. various iOS + Android devices, or web)?
  • Is the user more likely to use the app on a phone or a laptop?
  • How important is the app’s stability?
  • How big is my team? (Developing for different platforms will require more people and certainly increases the development time).
  • What programming languages and technologies does my team know already?
  • Will the app use rich graphics and speedy animations? Does it require high responsiveness? (e.g. a mobile game)
  • Does the app take advantage of specific hardware components of the phone: camera, sensors, flash, accelerometer?
  • Is the budget limited? Would developing a native app for each platform be a burden?
  • How will this app be monetized? Will it be ad-supported? (through the app store, developers charge a download price. The app store handles the payment process and charges a commission)

Answering the above questions will definitely help you choose the right technology and bring you on track in terms of laying the groundwork for the development process. But don’t forget to consult the professionals – we’re here to help. Drop us an email and we’ll carefully analyze your project and recommend the most fitting technology.