When developing “apps” for mobile devices, organizations need to consider if they are going to be developing native apps, web apps or hybrid apps. Determining mobile needs can mean the difference between creating something that has short-term advantage and/or long-term strategic value. Let’s explore what are the differences between various types of mobile apps along with the pros and cons of each type.
A native mobile app is one where the app being developed is specific to a mobile device (e.g., iOS, Android etc.), where the code is executed at the mobile device level and the app leverages the internal capabilities (e.g., camera, keyboard, geo-locator etc.) of the mobile device. On the other hand, a web app is one where the app being developed is not specific to a mobile device, where the code is not executed at the mobile device level and the app does not leverage the internal capabilities of the mobile devices. In other words, a web mobile app is an app developed for the web that can be easily displayed by the mobile device. Lastly, a hybrid mobile app is the one that is some sort of a mix between a mobile native app and a mobile web app.
Following are some of things that need to be considered when developing an app that utilizes the Internet:
- Privacy: In creating apps, the data collection, data sharing and data usage needs to be considered. Privacy concerns include the app’s access to data beyond what it claims to access, how personal date is shared using/across the Internet and if the app is accessing/updating other apps on the mobile device that the customer is not aware of.
- Security: Security is an obvious concern for both organizations and individuals. In apps that use the Internet, we have to make sure that data transmitted over the Internet is secure, be confident about the security of the mobile device itself, know when is the mobile device executes the code and how secure are the servers that execute the code.
- Limited Capability: Due to the generic nature of web apps, they are limited in what capabilities of the mobile devices they can utilize but on the other hand native mobile apps use the capabilities of the mobile device itself. This consideration means that customers can have an excellent experience or a mediocre one.
- Presentation: Due to limited real estate on a mobile device and less processing power as compared to a laptop or a desktop, presentation of content has to be in a way that is quick and not overwhelming.
- Code: In a native mobile app, the code is retrieved from the servers and stored on the mobile device. This means that native mobile app code needs to be thoroughly tested for specific devices and device vulnerabilities. In a web app, the code remains on the servers and never downloaded to the specific mobile devices.
- Code Execution: In a native mobile app, the code is run on the mobile device itself which means that memory, processing power, features and vulnerabilities of each mobile devices have to be taken into consideration. On the other hand, in a web app code is run on the servers and thus there is tremendous amount of processing power and storage needed on the servers to handle many customers accessing the web app.
- Data: A native mobile app could be sending data to servers (e.g., GPS coordinates etc.) and/or retrieving data from servers (e.g., traffic etc.). For this exchange of data, the native mobile app has to take into consideration the network bandwidth and number of times the network mobile app needs to connect to the servers which means that quality and speed of connectivity is important. For a web app, connectivity remains important otherwise a less desirable customer experience might be achieved.
- Storage: In developing a native mobile app, storage limits needs to be considered for each mobile device this means that various devices need to be tested. On the other hand, the main concern for storage is for the servers and how much data they can handle.
- Cost: A web app is only developed once which can then be accessed by various mobile devices. Thus, it is cheaper to develop and maintain as opposed to a native mobile app where specific code needs to be developed for each mobile device that accesses it. This consideration means that development timelines for native mobile apps is longer than web apps.
Now that we understand the various things that need to be considered before and app is developed, lets ask the following questions that would help is deciding which type of app should be developed:
In the Future
|Who are the users of your apps?||Who should be users of your apps?|
|What data do you extract and share?||What data should you extract and share?|
|Where does the data come from?||Where should the data come from?|
|When apps are available to use?||When apps should be available to use?|
|Why app development matters?||Why app development should matter?|
When you are asking the above questions, keep in mind that merely jumping on the bandwagon to develop an app since everyone else is doing it is a not a sound strategy. Ignore all the noise and truly understand if an app is really needed by your customers, employees, stakeholder, partners and vendors. Lastly, be cognizant that if the app truly meets the need that you are trying to assess and address for the future.