With an estimated 3.2 billion smartphone users in 2019, the mobile app industry is growing and not showing any signs of slowing down. Along with this growth in smartphone usage comes increased demands and expectations from end users. Apps need to use the latest smartphone features, be fast & easy to use. This is further complicated with the need to develop for both Android and Apple smartphones as well as tablets. For someone with an app idea, considering all these factors can be a bit overwhelming. This is where Infinity Interactive steps in. Infinity has extensive experience in the mobile app arena and can help you identify the best approach for your app and target audience. Today, companies are not just restricted to developing a native mobile app. They can also build mobile web apps, progressive web apps, and cross-platform apps. This post will cover the pros and cons of each with the hope of giving a clear path for taking an app idea into app reality.
mobile web apps
what is a mobile web app?
- Easier to maintain
- Does not need to be submitted to app stores such as Apple’s App Store or Google’s Play Store
- Can be updated very quickly ensuring all users are using the latest version of the web app
- Having to support multiple browsers in addition to multiple devices/form factors
- Requires the users to be online with an active internet connection
- Poor discoverability without an app store
- Web apps have slower performance and must be downloaded every visit
- Cannot use all the device features and hardware
progressive web apps
what is a progressive web app?
Progressive web apps (PWAs) are web apps that use a specific set of technologies and patterns that allow for usage of both web and native platform features. One item to have in mind for a mobile app is determining what device features are critical to the success of a project. Not all device features are accessible from a PWA, such as NFC, Bluetooth, or FaceID to name a few on Apple devices. When it comes to Android devices, there is more support for PWAs regarding access to device features. Device and browser features can be explored by going to What Web Can Do Today (sic). One item of caution with PWAs — the “What Web Can Do Today” site may not always be accurate. For example, the iPhone 11 Pro Max supports “Audio & Video Capture” if the user uses Safari but not if using Chrome.
- All the advantages of the mobile web app
- Allows for caching of content (This can be a double-edged sword)
- Has background sync and push notifications
- All of the cons of mobile web app without having to download the app every time the site is visited
- Features are limited and are years behind on Apple iOS
- Requires multiple steps to add to the home screen and the app list
what is a native app?
A native mobile app is an application built for a specific device family and Operating System (OS). These are the apps available to Android and Apple users in their respective app stores. A native application is compiled to the platform specific binary file and runs natively on the device. Building a native app often means using the device family’s programming language to develop an app. You may have heard of the term “Objective-C” or “Swift” when it comes to making an Apple app or perhaps heard of “Java” or “Kotlin” when developing an Android app. There are also other language options available that compile to a native binary, such as C# if using a tool like Xamarin. When the decision is made to build a native app the first challenge tends to be deciding which platform to target. Should it be on Apple or Android or both?
- The best performance from all four types of applications
- Allows submission to the app stores for greater discoverability
- Far better user experience
- Allows for offline applications
- Has access to all features and hardware available to applications immediately
- Better accessibility
- Does not need to support multiple browsers
- Better control over how the UI is rendered
- Standardized behavior for UI with built-in navigation and controls
- Monetization is easier and integrated with the platform’s store
- Users have higher expectations of native applications
- Native apps must go through the app store review processes and follow the guidelines and rules of each store
- As a result, updates are slower and can take multiple days to make changes to content - that is not controlled by an API
- Users may be running different versions of the app if they don’t update
what are cross-platform apps?
A cross-platform app is an application written using a cross-platform tool such as React Native or Xamarin.Forms. When written using these technologies, there is only one programming language to worry about and one code base that will create native apps for multiple platforms such as Apple and Android devices. Cross-platform applications have greatly improved in the past few years. Previously, they all looked the same across platforms, did not take advantage of platform specific features, and were very clunky. Now it is almost impossible to tell the difference between a purely native application and a cross-platform application.
- All of what native apps have with a slight hit to performance
- Allows for code sharing across multiple platforms including web
- May need platform specific knowledge to implement some customizations or features
- The more platform specific an app, the more platform specific code must be written which takes away from the amount of code shared across platforms
- More application dependency on third party libraries
This primer covered the different types of approaches to bringing mobile app ideas to app reality. The needs of the app will determine which choice is the best approach. Even if the app is developed with one choice, it’s never too late to migrate to a different approach. The Facebook app was originally a web view that wrapped around a web page which allowed for a native app in the app store. They faced a lot of backlash with this approach since it wasn’t as responsive as a native app and have since then used native only. Navigating these waters can be intimidating and that’s where Infinity can help.
Tags: technology mobile android ios objective-c swift java kotlin csharp xamarin