Post contributed by 4CTechnologies Technical Consultant, Matt Nicol
With the explosive adoption of smart phones and tablets worldwide, it is vital to consider a mobile strategy when planning a variety of technological initiatives for your business. As it has been discussed in this blog in the past, there are currently more mobile devices in the U.S. than there are people! If your company wishes to provide a mobile app, one of the first questions to ask is, “Should my app be a native app or a Web app?”
What is the difference between a native app and a Web app?
Native apps are developed to run on specific mobile devices—in fact, the bulk of the code running the app is on the device itself. For apps designed to be used by the general public, users typically install apps from a store provided by the manufacturer of the phone or operating system, such as the iTunes App Store on iOS or Google Play for Android devices. Enterprise apps, which are designed to be distributed to users within a company, can also be installed from a location within a company’s network.
The development technologies used to create native apps target specific mobile operating systems. For example, iOS apps are written in the Objective-C programming language, while Android apps are often written in Java. Third-party packages also exist that allow developers to write apps in other languages, such as C# and ActionScript, and target multiple operating systems from one code base.
Web apps, on the other hand, are designed to run in a Web browser, and thus can be accessed by a variety of devices. The bulk of the code running the app is on a server external to the device, and users interact with the app through a native Web browser app, such as Safari in iOS.
Development-wise, Web apps typically employ multiple technologies. The user interface and front-end logic are written in HTML, CSS, and JavaScript. Collectively, these are often referred to as HTML5 technologies. The more complex or centralized logic is typically processed on a Web server and is written in a language like PHP, C#, or Ruby.
So, for example, a user may fill out an order form in an e-commerce site that is in HTML5. When the user submits that form, it is sent to a Web server to process the order, and then the server sends a Web page back to the device that informs the user that the order was processed successfully.
Which type of app is right for my business?
Both native and Web apps have their rightful place in certain workflows.
For instance, because native apps run directly on mobile devices, they can have access to specific features of the phone, such as the address book, photo albums, gyroscope, etc. If your initiative relies on features that are closely tied to the device, or your business depends on selling the app itself, you definitely need a native app. An example of such an app is Selective Disturbance, which enables users to have greater control over the Do Not Disturb functionality in iOS by defining groups from their address books.
Web apps, on the other hand, are perfect for workflows that are device independent. For example, you can access your company’s Web site whether you are using a Windows PC, a Mac, or an Android tablet. E-commerce apps are also great candidates for Web apps. Typically, you want to sell your products to as many people as possible and not just users of a particular device!
Other items to consider include:
- Native apps must conform to the guidelines set forth by the operating system and/or device manufacturer, or they may not be allowed to be published. For example, Apple provides information about the types of apps allowed on iOS and interface guidelines on its Web site. Web apps, on the other hand, can be developed and published without approval from a third party.
- If you wish to sell items within your native app, you typically retain 70% of the proceeds from each sale, and 30% goes to the device manufacturer or distribution partner. See Apple’s and Google Play’s sites. With Web apps, you keep 100% of the proceeds.
- The support for HTML5 technologies differs across the various Web browsers. While skilled developers will ensure that your Web app looks and behaves as expected on the most common Web browsers that virtually all of your customers will use, it is not feasible to guarantee a consistent “look-and-feel” across the dozens of versions of the dozens of Web browsers that a small percentage of people can possibly use. Native apps, being tied directly to a particular platform, have the advantage of providing a consistent base for how your app will look in virtually all cases.
- If your app must function in an offline state, a native app is often a better choice. While there are HTML5 technologies that allow Web apps to function without a network connection, there is considerably more flexibility in what is possible to do with native apps that are offline.
Each technology initiative is different, and the particular requirements of your app may not fall under these general guidelines. The professionals at 4CTechnologies have the expertise to help you decide between a native and a Web app, and also have the know-how to design, develop, and market your app. Contact us to discuss your goals today!