App, short for application, is a term that has been used in IT for quite some time, but only became popular with consumers in 2008, when it was used in relation to mobile devices (PCMag 2013 [online]). Different kinds of paradigms can be identified in the mobile app landscape: Native app vs web app vs hybrid app. Each has its specific purpose, advantages and limitations.
Native apps are specifically developed to run on certain mobile OSs (platforms), using an Integrated Development Environment (IDE) and Software Development Kit (SDK). Native apps need modifications to be able to run on other platforms, e.g., apps that are targeted for the iOS platform can only run on Apple devices such as iPhone, iPad, and iPod touch. For the 3 major platforms (iOS, Android, and Windows Phone), there are already 5 native platform languages: C/C++ can be used for iOS and Android, Objective C is used for iOS, C# is used for for Windows Phone, Java is used for Android, and Visual Basic.NET is used for for Windows Phone (Shackles 2012, p. 3).
The differences between native apps and web apps are:
Native apps are installed physically on the device itself and are distributed through application stores like Google Play store and the App Store. They are targeting specific platforms and are provided with complete access to device capabilities and benefit from hardware-accelerated performance. A web app runs via a web browser on the device and often requires either a wi-fi or cell signal to function.
Because of greater cooperation between native apps and their platform’s OS, local user data and application data storage like runtime, state or preferences are allowed, thereby enhancing speed since no online data transferring is needed. That’s why it is often first choice for game developers.
Native app examples are:
All the apps you see on your device that are installed by default are Native apps. iOS apps are written in Objective-C or Swift, most Android apps in Java, and C++ is used for Windows apps. The most important reason for this is that all apps can make use of the Native UI/UX and have access to all the built-in features of the device.
Native app vs Web app: Pros and Cons
- The source code of native apps is compiled unlike the source code of web apps, which is interpreted by the browser before being processed. Ergo, native apps always execute faster than web apps (Wagner 2013, p. 359) and are therefore often first choice for game developers.
- The major drawback of native apps is that they do not support cross- platform development and targeting all major platforms is a very elaborate process.
- Web apps don’t have complete access to device capabilities such as the camera, accelerometer and so on.
A remaining difference is that web apps are not available to the user when there is no Internet connection present, although there is limited browser caching. Web apps are not stored on the device but run in a web browser on the device. They are not distributed through application stores, rendering them more difficult to sell (Kyrnin 2011, p. 407). On the other hand, the fact that web apps are not sold through applications stores has the advantage of not having to rely on store approval. Since web apps are actually web sites, they are easy to deploy, access, and update (Balkan 2012, p. 266). Although the user experience (UX) with web apps is different compared to native apps, these differences will become smaller over time (Rodger 2011).
With the rise of the fourth generation wireless (4G), which is ten times faster than 3G mobile broadband, mobile devices can transfer data pretty much anywhere on a high speed (Mani 2013 [online]). But the main justification for the existence of web apps is that they are cross-platform. App developers are in favour of the WORA approach “Write once, Run anywhere” (Hales 2012, p. 20).
The devices and their specific Mobile OSs that manage the devices’ hardware and the apps that run on them are referred to as Mobile platforms. Since the introduction of the first PDA and its Newton OS by Apple in 1987, a lot has changed (Helas et al 2012). There is a generous amount of application platforms on the market today. Some are more dominant than others. The protagonists in the Mobile OS market are: Android (Google), iOS (Apple), Windows Phone and BlackBerry OS (RIM) (Supermonitoring 2013 [online]). Less used (insignificant) OSs are: Symbian (Nokia), Samsung Bada, webOS (Hewlett-Packard), Linux Maemo and MeeGo.
The differences between mobile apps and websites are:
- Mobile apps are specifically designed for smaller displays and touch-screen interface
- Apps (short for applications) are downloaded from a store and installed on your device, rather than being rendered within a browser
- Apps store their data locally on the devices, in contrast to websites that store data on web servers
- Websites are slower than mobile apps because they don’t “communicate” directly to the device but through a web interface
- Websites can;t make use of mobile device features like camera, compass, contact list, etc.
- Websites require internet connectivity to work
If you’re interested in learning more about low-code and no-code app development, check out our comprehensive guide that covers everything you need to know about app development approaches, programming languages, and best practices for building custom mobile apps with or without coding skills.