Hybrid vs. Native App Development
By: The LaunchPad Lab Team / October 18, 2016
With the use of mobile devices swiftly dominating desktop, creating applications that function well on both iOS and Android phones and tablets has become the new standard. But with all these new languages and frameworks, it can become overwhelming to decide which to use.
Here at LaunchPad, we are big fans of the cross-platform mobile framework Ionic. Building in Ionic allows us to have one code base for both iOS and Android applications, and to use the web-based technologies that we know and love: HTML, CSS, and JavaScript (Angular).
To dig deeper into the divide between native and hybrid apps, let’s start with some definitions.
What is a hybrid app? A native app?
A native app is developed for a specific operating system, such as iOS and Android. For iOS, available developing languages are Swift and Objective-C; for Android, Java or Kotlin.
A hybrid app is essentially a web app hidden behind a native shell. Platforms such as Apache Cordova allow us to wrap HTML, CSS, and JavaScript code in native code so that it can be deployed across several platforms.
Why go hybrid?
-
Cost + Resources: If done right, hybrid app development can end up being more cost effective in the long run. Developers who are already familiar with web-based technologies can use these technologies to develop for mobile.
-
Time: The development cycle will likely be shorter since we are only working with a single code base. New features can be deployed to both Android and iOS app stores within a similar timeframe.
-
Code Efficiency: Aside from requiring multiple code bases, native apps typically require defining separate layouts for phones and tablets, while hybrid apps can target both phones and tablets using CSS media queries, often transferable between Android and iOS devices.
If hybrid apps give us cross-platform functionality, why build native apps at all?
It seems like building hybrid apps solves a lot of deployment, time, and resource issues, so are there benefits to developing native apps?
-
Native UI/UX: Users grow accustomed to the look and feel of a native app. Hybrid apps might contain UI elements, interactions, or animations that may look less polished or fluid than on a native app.
-
Access to Built-in Capabilities: It can be less cumbersome for a native app to tap into all of the device’s native functionalities. For example, accessing a user’s GPS location or Bluetooth is going to require understanding and likely writing some native code.
-
Better Performance? I put a question mark here because this isn’t the given that it used to be. Developing for a specific operating system was thought to produce more performant code, but as articles such as this one note, device performance improvements are leveling the playing field.
So, which should I choose?
Here at LaunchPad, we have definitely boarded the hybrid train. The Ionic framework paired with Angular suits the vast majority of our needs and the needs of our clients. Of course there are cases, such as with high-performance 3D games requiring heavy computations, that may still be more suited to native. And because hybrid frameworks are still relatively new, there might not be the technical support available that, for example, Apple makes available for Swift programmers. However, the gap is certainly closing, and the use of hybrid frameworks, paired with a deep understanding of native code, we’ve found to be a winning combination.
Interested in working with us to build a mobile app? Get in touch here.
Ready to Build Something Great?
Partner with us to develop technology to grow your business.