When it comes to building an app, there are two routes you can take. A native app, or a web app. Here I will try to explain what each one is, and how each has its benefits.
A native app is an app developed for a single mobile platform and is installed directly onto the device. Native apps are downloaded from the marketplace of choice for that platform, iOS devices use the Apple App Store, and Android devices mainly access Google Play for their app downloads. Native apps are what we develop here at MultiPie, they have multiple advantages over Web Apps which we will discuss later, but it’s not always the correct choice.
On iOS, we code apps using a programming language called Objective-C in Xcode, this is the native language that all applications on iOS devices run using, including all of the Apple built applications. On Android the language you use is Java, and it can be built using multiple tools, the main one being Eclipse. With Android you can delve deeper into the hardware and build using C++, but unless you need a super efficient real time game, this is not really necessary.
A web app is an app which runs in the web browser of your device, it is essentially a website which is made to act as though it is an app for your phone. Using methods to make the size of the website the same as the screen on the phone and some clever techniques for page transitions you can get a surprisingly similar looking app to native apps, but web apps lack in features compared to native apps.
Native apps, since they are built specifically for that device, get access to all of the features of that device. iOS and Android devices all have accelerometers, GPS location, magnetometer (Compass), cameras and a whole host of other features. With native applications you get to use these features and it’s usually a pretty simple addition to make to the app. With web apps you struggle to access many of these features and implementing them can be a huge pain.
Also, since web apps are ran on a web browser rather than natively on the device you can usually notice the speed of the app is a little sluggish, button presses don’t respond instantly and animations are never perfectly smooth. The technology behind websites wasn’t built to support animated content the same way that native apps are, but they can be coaxed into behaving very similar, with a bit of time and effort.
Web apps aren’t all that bad though, they have multiple advantages of their own which can lead you to deciding that it would suit your type of app better. Web apps, since they are online by their very nature, can be easily updated. All you have to do to update the web page and the app will be updated! No need to send an update to Apple to approve and no need for users to go to their app store of choice to update their app when the update is approved. Users just use the web app like normal and things update on the fly.
Web apps are also great if you want to build an app that works on everything. Websites can be viewed on pretty much every platform now, and if built in a nice way will look good on what ever it’s viewed on. All mobile platforms can view web apps relatively well now, Android, iOS, Windows and Blackberry will all work as good as each other. And the beauty of a web app is that you build one app and it will run on all platforms. You will of course have to do special things for different platforms, which can bloat the code a little bit, but it’s nothing as much as building an entirely new app, which is what you have to do with a native app.
Native apps are given access to all the tools of the trade when it comes to building the UI for the apps. You are given all of the standard user interface items, such as the iOS standard navigation bar, or the Android’s action bar. Having access to these user interface items can make the app look and feel like it was made by Apple or Google themselves. On a web app these items have to be mimicked to look and feel the same meaning that a lot of the time things ‘just don’t feel right’.
In the end it comes down to what you really want from your app. Do you need it to be on many platforms, look the same on all of them and be online only? Or do you want your app to be built specifically for a platform, to take advantage of the speed and features of that device and to look as though it was built for that platform? There are advantages and disadvantages to both, but in the end a native app will always run and feel better. That is why they are usually the more expensive option, but you’re paying for quality in the end!
Here at MultiPie we develop native apps for all mobile platforms. If you feel that a native app will work best for you, or you’d like our thoughts on what we think, head on over to our contact page and drop us a message.