What mobile strategy is best: Native or Hybrid?
So: What is best? A native app or a hybrid app? And if you build a hybrid app, what’s the best framework to use?
As with most interesting questions, it turns out that the answer is “it depends”. I often get questions like “isn’t Xamarin (or Cordova) better than build a native app”. Weeeell, it’s not as simple as that.
Here’s a few ideas that I’ve found myself repeating lately:
- Are you building something that should be available to a large audience where you also want a (mobile friendly) web site? Then Cordova is probably worth a look. Actually, if you get the Progressive Apps parts right, you may want to use Cordova for iOS and a “pure” web app for Android. If you’re building something for an event (like a conference!), mobile web should probably be a strong consideration. People don’t like to download an app that they will only use for a specific period.
- Are you building an app to internal users in the company where you can control what device they use? Then you may want to consider targeting a single native platform (either iOS - if you don’t think companies should pay taxes - or Android - if you feel that mobile devices can never be too inconsistent). CSS + JavaScript has a lot of sharp edges and adding a layer of abstraction on top of a programming model also adds a layer of obfuscation. If you can get away with targeting just one platform, then go native!
- Also, if you want to go for absolute top-of-the-class, you probably want to build (two) native apps. Anything that wasn’t build with the native SDKs will probably feel a little foreign and weird on the device. At the very least, hybrid frameworks usually trails a bit behind the newest platform developments. This means two code bases, two copies of every bug and quite possible two teams (or 2 + a backend team). You pay for style!
- If you want something that doesn’t have to be spit-and-polish perfect but that should still feel well integrated with the respective devices and you don’t want to invest in two separate code bases, then Xamarin or NativeScript may be a good bet.
- Finally, you always want to consider the skillsets of the team at hand. If you want something native-looking and have a bunch of JavaScript developers, NativeScript and ReactNative are your friends. If you have a bunch of C# developers, then go for Xamarin.
As a mobile developer, there’s always more stuff you should learn. This is why I co-founded the Mobile Era conference which happens in Oslo November 3rd-4th, where we will have talks on Android, iOS, ReactNative, Ionic 2, as well as IoT, beacons, mobile databases and much more. Tickets are soon sold out at mobileera.rocks