The native/hybrid spectrum

How apps are built

There are a lot of articles on Hybrid vs. Native mobile apps. 

vj610UQetRdXlRW8TB1W4gHpKL6UQ4-Sw54q232N

Lots. 😳

BvS2uwE5DiRKV9_WNRO2zo-3vJRuExH-rtE4LGXr

Hybrid vs. native: the original divide 

When we talk about hybrid vs. native, we’re not talking about a new species, we’re talking about the way an app is built. Apps run on platforms, and Android and iOS are the two dominant mobile platforms. ✌️Each one uses its own distinct programming language—Java for Android and Swift for iOS.

This means if you want to build a mobile app and launch it on both platforms, you essentially have to write the same code twice. This isn’t just twice as much work though, because you now have to maintain two code bases and hire multiple developers (it’s rare to find someone who is an expert in both platforms). All for the same app that’s doing functionally the same thing. 😅

We developers are lazy efficient. 😁We don’t like doing the same work twice. That’s the whole point of programming! 

So some smart people found a way to write code once and launch it on both platforms. This is called a hybrid app. 👩‍💻

A few weeks ago, at a friend’s bachelor party, I went golfing for the first time in my life. I put on my shortest pair of shorts, contacts and my one athletic polo. I essentially wrapped myself in golfer garb, so that I would appear and act like a golfer. 

Hybrid apps use that same technique. The programmer builds what is essentially a mobile-friendly web app, and uses a tool called Ionic to wrap it in native code so users can access it like a normal mobile app. 📱

Much like me in my golf-ware, hybrid apps can struggle when it comes time to perform. They may look the part, but they still have a tendency to shank the ball 50 yards to the right when the pressure is on.

NTA2TCKePzD3wCQD3hCDp7t2bIDLD0F5_3uOEwe0

Okay... maybe I didn't blend in that well. But you get the idea. 

👉Hybrid App: A hybrid app is a mobile app that’s built using web technologies, and then compiled into two mobile apps. It’s not purely native; neither is it entirely web-based. Hybrid apps have one big advantage: they only have one codebase. 

Apps that are written the old-fashioned way, on the other hand, are called native apps because they use the platform's native programming language.

👉Native app: A native app is a mobile app that's written in the native programming language of a mobile device. On iOS (iphones) that’s Objective-C or Swift. On Android that’s Java. Each native platform has its own paradigms and common elements. 

With me so far? There are a few more options 

So that’s the original divide—hybrid vs native. Except it’s now 2019…and there are a lot more options. 😬

React Native is a new tool that lets programmers build apps kind of like they would for a hybrid app. Only instead of wrapping the code, it actually turns it into native code. ✨

Meanwhile, there’s also a new movement towards progressive web apps. Progressive web apps are apps you access from your web browser, but they behave a little more like native apps. Users can bookmark them, so they can get to the app from their home screen. And they can use local storage and some other nifty mobile features.

👉Progressive Web App: A progressive web app (PWA) is a web app that behaves like a native app, but users can access it from their web browser. 

Don’t forget we always recommend thinking hard about whether you need a mobile app at all, or if a web app might work better. 

👉Web App: A web app is an application that's hosted on the web, rather than downloaded on your phone or computer.

A spectrum to make sense of it all  

So how do you make sense of all the options?

Think about them as a spectrum.

8vm5nB9ouGqRe1oxTJG5Xuj2sAVCxYY2WcTm5XbI

On one end of the spectrum, you have performance and capabilities. ⬅️Truly native mobile apps will almost always be faster and able to handle more computations or complex graphics. 

On the other end of the spectrum, you have speed and development costs. ➡️Web apps are almost always faster to build and easier to maintain than even a hybrid app. 

Like with every other aspect of building a business, there’s no one right answer. Ask yourself what matters to you—or even better, what matters to your customers. 🎯

Then figure out where you fit on the spectrum. ⬅️➡️

Want more technical dives? Nice. 🤓