One decision must be made before developing a mobile app: native or hybrid. For many developers, preconceived notions lead them down the hybrid route, believing it to be cheaper and more efficient with a “one-code-fits-all” approach. However, we’ve learned, from experience and other company’s stories, that this isn’t the case.
It’s true; at first glance, hybrid apps appear simpler and cheaper. But this only applies to the initial phases of development, and eventually, difficulties arise from supporting three platforms instead of two and from integrating the app with hardware-reliant APIs like BLE.
Users have come to expect fast apps
Everyone wants fast results. Now that technology is at the tip of our fingers, “fast” is no longer a luxury; it’s an expectation. For mobile apps, in particular, end-users demand fast loading times, immediate responses to questions, and seamless updates that keep up with new technologies. It’s true, hybrid apps can produce quick results with a development team that’s familiar with the technologies, and UI’s can be quickly put together. While this is well-intentioned, it doesn’t foster long-term effectiveness.
In 2018, Airbnb learned this the hard way. They decided to rewrite their app from the ground up, abandoning React Native to write a fully native app. They cited that the top reason for choosing to build a hybrid app was because it was the fastest approach, which created later challenges. Lesson learned.
It should be noted that supporting separate designs that follow the Human Interface Guidelines and Material Design Guidelines prepared by Apple and Google take more time. Native app development can be sped up by referencing native libraries and third-party frameworks for potential solutions. And, with technological advances like new tools and languages, native app development is easier than ever. Going beyond basic functionality found on standard websites becomes problematic, and development can slow to a crawl.
An example of successful native app development can be seen by Lyft. In 2015, the San Fransico-based ridesharing company rewrote its entire iOS app using Apple’s native language, Swift. It did so while supporting and building onto the older production app, eventually catching up to that product with Swift’s new version.
Adding Integrated Features can be a Slog
The difficulty and timeframe for this process in hybrid apps are much higher than native apps. Examples of integrated features include accessibility support, Bluetooth Low Energy (BLE) support, and optimizing framerates on long-scrolling lists, to name a few.
Let’s dive into BLE a bit deeper. Built-in BLE functionality is more commonplace in app development, and implementations for hybrid apps sometimes lack basic BLE configuration options from cross-platform frameworks, requiring a built-from-scratch approach. This can turn a “write once” ideal into a “write-three” nightmare, often causing frustration and lost time.
App Maintenance is a lot Easier
It’s hard to keep up with the rapid OS and hardware advancements, and new phones with new versions of BLE support are released frequently. With hybrid apps, unless the cross-platform framework adds support, new features and updates won’t be implemented. Fixing bugs and crashes adds another layer of complexity and often takes much more time with hybrid apps. The bug could be in the framework, or in the way the code interfaces with the framework, and it isn’t always self-evident. If the build breaks, it can be challenging to determine whether the issue lies within the framework, the code, or the layer in between that was added to support a new feature or solve a previous bug.
Native App Development for the Win
Users expect more from their apps like consistent updates and support and the latest operating system version. Developing hybrid apps can cause lingering bugs and unsupported features, driving users away, and introducing unwanted security risks. It also complicates Bluetooth development and increases the price, which is now standard in many mobile devices. Native development is the most effective long-term solution for app development when taking into account price, efficiency, and long-term stability.