Why Hybrid Apps will rule them all
The “native-vs-hybrid” debate has been going on for many years. Now things have changed.
First of all, let’s define what native and hybrid apps are.
- native: apps built for one specific platform (iOS, Android, Windows Phone) using platform specific languages/APIs and tools.
So if you want to build an Android app, you’ll use Java with Android Studio/other Android stuff, while if you want to go for iOS, you’ll use Swift with XCode/other iOS stuff.
Building native apps is time and cost consuming, but in the end you will have a shiny great product that your users will just love.
- hybrid: apps that are built once and work with multiple platforms.
Basically they are web apps which runs inside a native container (called web view), so they try to combine the best of both worlds.
Hybrid apps are obviously time and cost effective, because you code your app once and it magically works across all the platforms, but then you’ll have an ugly product with a awful UI which sucks in performance compared with native apps.
The “hybrid apps suck” stereotype
Lots of people think this way about hybrid apps.
When hybrid development entered the market years ago, the first apps were laggy, had performance issue and the UI was just not
as-good-as-native. Even Facebook regretted of “betting to much on HTML5”.
So this was the beginning of the “hybrid apps are inherently inferior” stereotype, that still exists today. But is this still true?
We all know the rate at which smartphones improved over the last years.
Few years ago high-end smartphones in the market had only 1.5 ghz dual core and 1gb of RAM. Today with just a few hundred dollars we can buy a brand new 2.3ghz quad core with 4gb device. There have been huge improvements also on the software side, a notable example being the crosswalk project.
Hybrid frameworks are constantly becoming more mature. They now are so good that probably you have already used a hybrid app without even noticing it.
But even with all the improvements, I just couldn’t believe that hybrid apps have become good enough to actually do the job.
A month ago one client asked me to develop an app for both Android and iOS with a short timeline. Since I can develop native apps only for Android, I deciced to give the Hybrid world a shot.
I was in doubt about which framework to use, and finally I opted for the one I believe is the better hybrid framework out there: Ionic.
Ionic is free and open source and its built on top of angularjs, the popular web framework made by Google. After playing around and written few sample apps, I just fell in love with it.
It has a lot of features that made hybrid mobile development fun and fast:
- angular: I already knew angular and its awesomeness, and the shift to Ionic was quite straightforward because of that.
- performance: Ionic was developed with performance in mind. With minimal DOM manipulation, hardware accelerate transitions, custom components and much more, Ionic will make you rethink about performance issues in hybrid apps.
- cli: the Ionic cli is spectacular. Want to create a new app? Just a command and you’re ready to go! Want to build your app for a specific platform? Just a command and you’ll have your app packaged and ready! Want to test your app in the browser with the amazing live reload feature? Just type ionic serve in your command line and you’re good to go.
- services: as stated in the home page of Ionic: “More than code. Ionic is an ecosystem.” There are lots of services for Ionic apps: creator let you build mockups in minutes, view let you share your development project with anyone from the cli, push makes sending push notifications a breeze, and with analytics you can take a data-driven approach for scaling your app.
With Ionic and the other frameworks constantly growing and improving, I think that hybrid will be the choice of more and more developers.
But of course, this is not an easy choice and it depends on project requirements.
Whether you’ll go hybrid or native, the most important thing is building a product which solves a real problem for the users, and that is appealing and easy to use. Happy coding!