What do you think about native apps vs. hybrid apps in 2018?

Here's why platform independence is still awesome.

Question asked by Shaun on November 27, 2015
Paul Keck Badge

Why Platform Independence Is Awesome

There are a lot of opinions out there about the advantages and disadvantages of mobile apps built with Swift or Java (native) vs. apps built with React Native or Titanium (hybrid native), and apps built with HTML/CSS/JS & Cordova/Phonegap (web). These development opinions are largely based on preference and loosely based on actual results, so beware of companies touting the “better” option without much explanation.

htm5l css3 javascript node.js

We have a ton of experience with systems of all kinds, ranging from Windows desktop applications back in the day to Node.js apps in the present. All this experience allows us to sift through the various technology pros & cons, and we’ve chosen to go with React Native for all of our mobile projects. Just like everyone else, our choice is based on preference and loosely based on actual results, but the advantages we see are pretty overwhelming. Using cross-platform technologies is key for bootstrapping companies looking to manage development costs, and it also makes a lot of sense for anyone building from the ground up.

Let’s Tackle The Obvious Question First

What is the best choice of technology for user experience? When it comes to user experience, the best technology choice is always the one targeted at a single platform, or even better, a single device. So, the very best choice of technology for an iPhone is Swift. Furthermore, if there were Swift specifically for the iPhone X, that would be the best choice for an app bound for the iPhone X. There is no argument about this. The very best user experience for any given device is provided by the technology that has been written specifically for it.

But (there’s always a but)… Using the tech that is capable of providing the very best user experience is not necessarily guaranteed to do it. Accomplishing this takes a lot of skill and effort.

And… You might not always want to try and provide the very best user experience! So, the not-so-obvious question is: When should you attempt to create the very best user experience for your customers?

So why would someone choose technology that may not provide the very best user experience? The answer is simple, and it is related to the way we run our development cycles, as well as the way we run our own business, and our lives. Take small steps and iterate so you don’t make giant blunders.

We all tend to think that the plans we make in our heads will most certainly lead to the outcomes in our heads — a fantastic and full-featured app that everyone will want. The fact is that plans only pan out well if we try things on a small scale and work slowly towards the bigger picture. But how does this relate to choice of technology?

Very few apps are targeted for a single device, with no plans to have some functionality duplicated on other platforms. The fantastic outcome we envision for our projects usually involves mobile, laptops, tablets, watches, smart TVs, and other devices that have yet to gain popularity. Our app will be everywhere people live, work, and play, because that is the way people use it and love it.

apple watch samsung tv cross platform.js

But how do we accomplish such a spectacular goal?

We do it piece by piece because very few people have the means to go about it all at once. At BOUNDLESS, we say you shouldn’t go about it all at once even if you have the means! We don’t like waste, and taking giant steps is a recipe for a massive waste of time and money.

The first step that makes a lot of sense to us is an app written mostly in JavaScript, which allows for rapid change and code reusability . If we're bound for desktops initially, we use HTML/CSS for the interface. If we're bound for mobile initially, we use React Native to build native screens and create some of the snazzier app functions that provide a great experience. We work through a lot of usability issues with iterations that quickly turn into a beta version suitable for launch.

Going about development this way produces a single code base that is easily targeted for mobile, and expandable for tablets, laptops, and big screens with greatly reduced effort over building with pure native tech. Functionality can be moved between the server and the device easily because the vast majority of custom code is written in JavaScript. Coding resources can also be shuffled around to different tasks more easily because it’s all the same programming language. These things translate into bottom line savings on effort and money, which is key when starting a business of any kind.

Build For The Future

Nobody really knows how long any given technology will last, but there are a number of smart decisions that can be made anyway. Frameworks that help you build faster and cheaper hybrid apps are popping up all over. We avoid frameworks where possible because they are intrusive and restrictive. Once you start using them, doing anything else is pretty much a re-write. So instead of using “the next great framework”, we stick with the basics.

We think HTML, CSS, and JavaScript will be around for a very long time, and will outlast any frameworks that use them. So we focus on those core technologies while using non-intrusive helper technologies like React to do the things they can’t (yet). We still get the benefits of a cross-platform tech choice, but none of the restrictions that come with “the next great framework”.

Make Improvements When The Time Comes

Once a business has been up and generating revenue for a while, it might be time to look at improvements. New features will compete with unseen improvements in architecture, infrastructure, and chosen technologies. Now is the time to circle back and weigh how important it is to add that native Android app into the mix. This might happen relatively quickly based on user feedback, or it may never happen at all. The important thing to note is that the business has not bitten off more than it can chew at this point, and can make a decision based on what has happened instead of what might happen in the future. And the entire year’s budget was not blown on four different versions of the app which now need to be maintained separately!

We make many decisions based on budget/time vs. features and user experience during the life cycle of a startup business. The smart money is on hybrid native apps built with React to start, so there’s budget left to expand with the greatest need down the road.

Have a question you need answered?

We've been helping entrepreneurs like you build great apps for a long time.

IMG_0133-2.jpg contact-paul.png

At BOUNDLESS, my co-founder and I have over 35 years of collective experience building software. We’ve helped many startups clarify their ideas, find workable solutions, and build their apps. We love answering questions and helping entrepreneurs get started. Fill out the form below and we'll answer your questions regarding building an MVP, lean app development, choice of technologies or any other subject you think is relevant!

Thank you for your question! Here at BOUNDLESS we take helping people very seriously. Someone will be in touch shortly to follow up with any questions or to give you an answer to your question.

Use Lean methods to plan and validate your app idea before you build it.

Over 50 pages of step-by-step instructions on how to develop your idea and validate your business plan before you spend time and money building your app.

I want to get started on my own