Table of Contents
There are typically two types of dissenters when it comes to hybrid apps: those who haven’t tried hybrid apps or those who did many years ago.
It doesn’t matter what your current stance on these apps is; the options have evolved tremendously for the better. The hybrid versus native app battle has not only resulted in a tie, but hybrid apps have taken over. The following is an overview of how hybrid apps have progressed and the concerns people have.
Performance
The number one concern people have with hybrid apps is their performance, though this concern really is unfounded now, in 2018. If you look at PhoneGap between the years of 2008 and 2012, then yes, you’re right to be worried.
Luckily, 2013 was a huge turning point for hybrid apps. The release of the iPhone 5 was the start of hybrids being more approachable. Almost 100 percent of the time, hybrid apps work extremely well. Unless your business is interested in creating graphic-heavy, high-performance game apps, hybrid is the way to go. They only need you to update, read, delete, and create data. They also have a little bit of UX sprinkled in there as well. If developing a game is your overall goal, choose native.
It’s been over ten years now since the original version of the iPhone debuted, and mobile device hardware has improved in leaps and bounds. Mobile devices now have processors that are near desktop-quality, 2 to 4 GBs of RAM, and operating systems that have a lot. Each new generation of phone is an improvement from the last.
Besides the hardware improvements, Javascript engines have seen advancements as well. Browser creators are advancing in all elements. They’ve improved single thread performance, increased GPU speeds, used offloading to make faster memory buses and multi-core, and improved multi-threading.
Every few years, Javascript makes major upgrades available which lead to gains of around 4x or more. It’s safe to say that the latest iOS performance will have significant enhancements.
Design
A key feature of hybrid apps that give them an advantage over native apps is their ability to build using a single codebase for a vast majority of app platforms. Javascript logic execution has usually worked well. This is in part due to its “write once, run everywhere” mantra. Javascript has features that are consistently available on every mobile platform. Whenever native device functionality is needed, Java has plugins get rid of any platform-specific features.
Achieving consistent design has proven to be extremely difficult due to the huge variety of mobile platform WebViews, the mini web browsers embedded into native apps shells, available. This can most obviously be seen with Android, as they’ve been the most difficult due to the thousands of device and carrier combinations available.
Luckily, the situation has improved. It started with Android 4.4; a change was introduced that would have the Android 4.4 use a Chromium-based WebView. This first step was a good one, but it was only an embedded system browser. Since it was just that, it was only able to get updates through new OS upgrades. These upgrades only happened rarely, depending on the mobile carrier. When Android 5.0 came out, the WebView was taken out of the system. It can be updated now through the Google Play store, ensuring that the users always have the greatest and latest.
Apple’s iOS has proven to be a lot more favorable for those who develop hybrid apps. WebViews has always used Safari, which is Apple’s built-in web browser. With every OS upgrade or patch, CSS and JavaScript come out with new features. Hybrid apps also make it easier to get support for OS versions that are older because Apple users tend to upgrade as soon as the newest OS is available.
Nowadays WebViews has become standardized, allowing you to get consistent layouts across all different displays and screen sizes. Developers of apps can utilize CSS3 flexbox, and other suitable platforms, to make layout designs that are popular for all kinds of mobile devices.
For normal people, who don’t have any background in design, you can easily work with web frameworks. There are resources, like Bootstrap, that are extremely useful for working on mobile and desktop projects. Resources like this put focus on creating responsive, mobile-first projects that are perfect for helping with hybrid apps.
Frameworks
Over the past couple of years, there have been many open-source frameworks that have entered and left the app space. The playing field has been leveled in recent years. The most popular choices tend to be Xamarin, NativeScript, React Native, and Ionic.
Xamarin is Microsoft’s framework. It’s a little different than other frameworks. Xamarin has its apps written in C#. For developers that work on .NET, Xamarin is great for mobile development.
NativeScript is created by Telerik and is a unique option. When using NativeScript, you write your apps in plain Javascript, Angular, and TypeScript. It’s then compiled into native code. If you use Telerik’s NativeScript then you have to learn their UI custom mechanism for your layout. This mechanism covers tags (such as “” and “”) which are then converted into a certain native representation. Besides that, you can utilize your existing JavaScript skills.
React Native is a framework that is used by Facebook. Apps on this framework are written in Javascript. It’s unique because it uses native components like “Text” and “View” instead of web components like “span” or “div.” So it produces a real native mobile app. Using this to create your apps is great, but it means that the code can be used only for apps that are mobile.
The fourth framework that is popular is the Ionic framework. Ionic provides you the ability to create apps that cover the most number of platforms, using only a single codebase. This means it can be used for applications for mobile, desktop, web, and progressive web. Ionic apps are created on top of Angular. This means that you need to teach yourself about Angular along with TypeScript.
These four most popular frameworks are great options for those wanting to develop apps. However, they do require you to spend time before you actually feel productive. If you’re not 100 percent certain that you want to go the hybrid way then that’s fine. You can dip your toes in the water and try plain web technology. When you become more comfortable, you can switch over to a framework that you like.
Tooling
The last element of app development for hybrid apps is that the number of tools that are available. Those who develop apps can access all kinds of products that will assist with all that you need from cloud management to debugging to continuous integration.
Popular integrated development environments have evolved over the years to support app development that is JavaScript-focused. There are resources that allow developers to debug, write, and test their apps on emulators and devices within their systems.
There are also services like WebStorm by JetBrains, which is an editor that allows you to refactor JavaScript, provides code completion, and is able to detect errors. There are also services that are cross-platform, which you can use to swap between PCs and Mac. This is useful for those who own a MacBook but have a desktop PC.
Each of the frameworks for apps that are listed above has helpful tools to get you started. They each are equipped with their own command-line interface tools that give you useful templates for your app to help you when you start out. They’re truly helpful in the initial setup phases. Many provide local app debugging, JavaScript quality reviews, and end-to-end test execution.
You can utilize many web browser developer tools, which can especially be seen in Google Chrome. They have advanced so much that many web developers use them every day. They have provided a variety of features, including network performance profiling, issue resolution, and JavaScript debugging. The best feature for those interested in developing hybrid apps is probably the ability to test device-specific and responsive viewports. This will give developers an idea of how your app will be displayed on popular devices. It’s down to a perfect science, but it’s still incredibly useful. After all, you can’t realistically be able to test on every type of device there is in existence right now.
The Bottom Line
In the last couple of years, the amount of developers that are in support of hybrid apps is eye-opening. Web developers have shown that they want to create their apps with the utilization of just one codebase. One codebase means that it comes with familiar web technology and tools. Surveys have shown that almost one-third of developers plan to ditch native development completely within the next two years.
Despite the vast improvements to hybrid apps and the technology associated with it, you may still be skeptical about using the hybrid approach. The best way to truly see if it’s the way of the future is to do it yourself. There’s no easier time to jump into the development of hybrid apps. They offer better device performance, advanced tooling, simplified design options, and professional mobile frameworks. They’re the easiest way to transition into today’s new technological world.