A major decision point in early initiatives is between building a native app or with mobile web. There are a number of things to consider from a user standpoint as well as technical considerations. I also give some options for hybrid and compromises between these two main modalities.
Native apps are generally built as platform specific. On iPhone that’s Swift or Objective C and on android it’s Kotlin or Java. This leads to the first downside: cost. These technologies require specialized developers that are more expensive. If you want to hit 99% of users, you have to build for both platforms, duplicating the front end work. On the devops and deployment side, handling app front ends can be very difficult. Some users may not update the app as quickly as you’d like, and this leads to a matrix of selections that need to be made each time a front end connects to a backend. Which version of the endpoint needs to respond to this request? When do we deprecate and not allow users any access in especially old versions? The biggest downside that I see doesn’t have to do with technology, but rather user behavior. For early companies, gaining users is the main goal. The initial barrier to entry in mental commitment for new users is much higher for apps than websites. Searching you out on the app store, and downloading to the phone is a commitment compared to visiting a URL.
The act of downloading is a positive for companies that have more clout though. Once it’s downloaded, it stays, and may lead to more loyalty. Other major pros come from being closer to the phone’s hardware. This generally makes local tasks faster, and gives more access to certain phone features. Native is clearly the way to go for games. The accelerometer is generally unavailable to websites. NFC (how apple pay works) is also a native only feature. The biggest positive is likely offline access at all times for any local only features, being able to cache videos and files for use off-grid.
Mobile web is largely the opposite. It is low commitment to start, and easy to test out. It is much cheaper to build, given many web developers and Python and NodeJS ubiquity. The mobile website you build duplicates for your desktop web, no need to build three versions (native x 2 and web). All users get the updated experience immediately upon pushing the changes to your hosted platform. No users have to update their app. Recall that you’ve never taken any action to update your Gmail experience.
The main downsides of mobile web include less access to advanced phone features. You always need an internet connection, because the data and usage is coming from your server. If your app doesn’t give obvious consistent value that makes people re-type in the URL, they may forget about the service, and stop returning. Generally, you can get access to GPS, microphone, and camera on mobile web, but sometimes it feels a bit more clunky.
There are a few in-between answers that can help mitigate negatives of each method. For mobile web, you can create app “links” to your webpage. These look like an app on your homescreen, but will take you to a website in the browser. This creates mindshare in the user, and makes it easier to pick up where you left off. For apps that are not incredibly security conscious, this link could have a UUID that corresponds to a user, essentially logging them in to get a personalized experience without having to type in creds each time.
To create a mobile app with less cost and more compatibility, you can use something like React Native. This is a framework built on NodeJS that lets you build in a website style and deploy to a native app on both iOS and android. This mitigates the front / back server problems and user updating issues. It is cheaper than going full native, but a bit more expensive than mobile web. It does, however, require an internet connection.
This is a major decision that shouldn’t be taken lightly, because switching from one strategy to the other is quite costly. I’ve laid out a number of considerations above, but your situation is unique. Reach out if you want more thoughts from someone who’s built dozens of MVPs in both modalities.