Native, Web, and Hybrid apps
I'll be discussing the strengths and weaknesses of Native, Web, and Hybrid application development.
Strengths And Weaknesses of Native
The Native Development Kit (NDK) is a set of tools that allow the developer to write in C and C++, and is integrated with the Android Software Development Kit (SDK). Apps written in Java (the official programming language of Android) have to run in the Java Virtual Machine, whereas the code written in C/C++ can be compiled and run by the CPU itself. Native is best when there is a need for optimized performance, faster response time, and improved battery life. These are big perks for the NDK. This is ideal in video games and physics simulations, among other things. Because of Java's extra steps, this can lead to a slower app, which if you're wanting to run on older and cheaper hardware, can lead to a bad user experience and can tarnish your app rating.
Using NDK has some tradeoffs compared to Java. Java is well known for its Garbage Collection, which means the programmer doesn't have to worry about doing this manually, and means a smaller chance of memory leaks. This feature isn't available in C or C++. The programmer must manually allocate and deallocate memory. It's much easier to have a memory leak, which can also lead to some bad reviews for your app. This can be tough for beginning developers, since you're working on a lower level of the hardware. With great power comes great responsibility.
Strengths And Weaknesses of Web
Web applications are apps that run within a browser, rather than a standalone app itself. This does not mean a web app is necessarily the equivalent of a web site, since each one serves a certain purpose. A website goes back to the roots of web development - the user visits the site to learn something, read reviews, and so on. It is a medium for information, such as a newspaper (again, the web's roots). For folks from my days of the internet, if I wanted one word to describe web apps, it would be Newgrounds. Runescape would suffice as well! These are pages that require some programming, and allow for user action such as contributing content, gathering data.
What's so great about web applications? They're much easier to maintain, and can run on older devices since it doesn't depend on Android versions (I shudder at deprecated). A web application bypasses an app store entirely, which is much less hassle for the developer. This also means that the web app does not require an update from the app store - if a simple typo was made, it could be a quick fix for a web app. For the downsides, the web app is limited by the functionality of the browser itself (see https://whatwebcando.today/ for the details). A web app working across multiple browsers deal with the usual frontend headaches, and also require a lot of time, not only for the initial development, but also for maintenance. With no app store, a web app can be hard to find in search results, and don't undergo the security scrutiny that the store provides.
Strength and Weaknesses of Hybrid
A hybrid app can be thought of as a web application and a mobile application having a child, most likely out of wedlock. Mobile has a thing for older women, and found Web pretty attractive. Web wanted something new, something exciting and trendy. They both move pretty fast though, and never felt comfortable settling in one place for terribly long. Shortly after the birth of their love child Hybrid, they began fighting frequently, grew distant, both seeking something new to stir up their lives. Mobile wound up taking custody of Hybrid, and moved to Play Store. Mobile enjoyed this arrangement, since women have a thing for single fathers. Web lives her life, moving from one new thing to another every six months or so.
Now with that distraction over, I'll explain what a hybrid app actually is. A hybrid app is built with the traditional tools of a web app, but runs within a mobile app's WebView. Because of this, two completely separate apps for Android and iOS don't have to be developed. A benefit over web apps is that mobile device functions that were off-limits before, are now available to use. It's also cheaper to develop a hybrid app, since frontend web developers are a dime a dozen (and easily outsourceable).
As for disadvantages, hybrid apps can be pretty sloppy with performance. WebView becomes their bottleneck - if it runs Javascript poorly, then the app runs poorly. It will still have that slow, Javascript-bloated feel to it. With hybrid development being relatively new, debugging can be difficult and developers might start drinking on the job. The app's appearance won't be consistent with the look and feel of other apps (iOS' UX and Material).
Sources:
https://stackoverflow.com/questions/6660621/what-is-the-android-native-development-kit-ndk
https://www.mobiloud.com/blog/native-web-or-hybrid-apps/
https://www.androidauthority.com/java-vs-c-app-performance-689081/
https://www.lifewire.com/pros-and-cons-of-native-apps-and-mobile-web-apps-2373173
https://developer.telerik.com/featured/what-is-a-hybrid-mobile-app/
Comments
Post a Comment