So lately we've been talking with companies about project ideas. One of the big questions that comes up pretty often and early in the conversation is:
"Do you want a native, hybrid, or web app?"
This isn't a question that people generally put much thought into--or even quite know how to approach it if they aren't developers. To help out, below is an overview and a list of the pros and cons of the three types of apps you might want to have developed.
A Native Application
A native app is an application that is designed for a particular mobile platform only. Often, a native app will be designed for iOS, Android, or both, although there is also a market for Windows native development in some areas.
- Can use mobile device hardware: for example, you can use a device’s the fingerprint authentication, camera, 3D touch, etc.
- Can be designed to be available when there is no internet (critical to some types of industry)
- Needs to be specifically developed for each platform--so you’d have to develop once for iOS, then another time for Android.
- Android has variations between devices and operating systems, so can be costly to support everything.
- Must be specifically downloaded from an app storeLess storage space is available if you are trying to design for offline capabilities
- Higher upkeep costs, since changes to the operating system of the device can break features on the application
A Hybrid Application
A Hybrid App is a web app that is wrapped in a native shell.
- Looks like a native app
- Strong/fast graphics performance
- Can often use mobile device hardware
- The majority of the development can be done once, without needing to develop much separately for iOS and Android
- Functionality is limited to what works in both the iOS platform and each supported Android platform
- Android has differences between versions, so there are risks that an application will work on some devices and not others
A Web Application
This is an application that runs directly in a browser window.
- Development for web tends to cover the majority of browsers. You will still need to make tweaks (with the notable exception of Internet Explorer, which is notoriously uncooperative and seems to be far trickier to support in conjunction with other browsers).
- The layout is easier to make responsive to the screen size
- If you don’t test on all possible browsers, there may be idiosyncrasies between them.
- You cannot leverage the haptic features that may exist in a device
- Cannot use barcode scanning
- There is no app store to drive use
Overall, the type of application you develop should be based on the needs and long-term plans for your project. If you aren't sure, you can always ask your friendly neighborhood dev shop for guidance (or contact Skyward, of course!)--usually by describing HOW you want it to be used, they can help you identify what method would make the most sense for you!
Some related reading:
Feel free to comment on anything that I missed!