Last month in our “Mobile Apps: An Overview” post, I mentioned we’d take a look at the differences in native vs. web vs. hybrid apps in a future blog post. Well, my friends, the future is now.
Let’s dig a little deeper into the different types of mobile apps.
Native applications live on your device and can be used offline. You download them from the Apple App Store, Google Play, Windows Apps & Games Store or from BlackBerry World, depending on your device. Because a native app is developed strictly for one platform, it can take advantage of all of the device’s features – GPS, camera, notification system, gestures, your contacts, etc. Native is written in a language specific to the device’s platform with an SDK and other tools usually provided by Apple or by Android or Windows. Every feature and function can be written natively without the use of any third-party plugins. Most important to the user, a native app is developed while keeping native behavior in mind – which differs from platform to platform.
“Cross-platform” covers several types of apps and even websites. Simply, the experience of an application or a website that is designed to work on any device.
Web apps work inside a browser and are very similar to websites, except that they do something. To most people, Gmail.com is a website. However, Gmail does far more than just display information, it actually does stuff. Sends emails, sorts information into folders, allows you to interact with your contacts or chat with a friend. Facebook.com or Google Docs are both highly sophisticated web applications that you use from a browser. These all display like websites. A lot of native purists don’t think of web applications as applications – they just lump them in with websites. This is unfair to many web app developers who are doing very complex things (like at Google) within a browser.
Many people praise how a web app can look just like a native app, swipe horizontally like an app, detect portrait or landscape orientation, forego typical look and feel of a browser, etc., but at the end of the day, it is still displayed within a browser and can’t call on a lot of the features native to a device such as notifications, complex gestures, run in the background, camera, etc.
A hybrid app is similar to native in that it is downloaded from one of the app stores and its content is displayed within a native app environment. It has a square icon that lives on your device’s home page, just like a native application.
There are also some development options that result in “native” apps but involve translating from non-native code bases into a native package. Apps created using Titanium or Xamarin allow a developer to use a single language like C# to create native apps that can be deployed across all platforms. The majority of the code is applied across all platforms, but not all. Some of the code is written specifically for each platform to create a native interface that leverages the same behaviors users identify with as being specific to their platform of choice.
Which kind of mobile apps are right for your business?
Web apps don’t have to be launched through an app store; they are pulled up from your browser window. They will show up in an organic online search. They don’t require installation and maintenance is simple. As mentioned before, they don’t have access to all of the APIs resident on a smart device. But they are truly cross-platform. And there are millions of web developers out there who have the skills necessary to develop for the mobile environment.
Hybrid apps can be a cost-effective method when targeting multiple mobile platforms. They allow you to access some of the native APIs like your device’s camera. They also work offline and don’t require internet connectivity. One of the downsides of hybrid app development is the reliance on a third-party tool required to cause the web, abstraction and native layers to talk to each other. Hybrids also don’t have the advanced graphic performance of a native app and tend not to have the same level of speed as a native app.
When it comes to mobile apps, we really tend to be native purists, but that doesn’t mean that other options don’t have value. Aside from having access to all of the APIs native to a device, native apps have faster graphics performance, don’t require connectivity and offer a superior user experience. The downside of native development (if there really is one) is that you have to develop each app independently for each platform. But if you are looking for a superior performing app that serves as a major brand touch point with your customer base, you should carefully consider going native. Part of what contributes to native development’s premium status is that developers who deliver an end-to-end competency need to be masters of their platforms. At stable/kernel, we are thrilled to have attracted some of the top talent in our industry. It means we can ensure our clients offer their users the highest performing native app experience possible.