Very few businesses really need a mobile application. If you use Bluetooth or GPS, you know what you need. But for everyone else, whether you want a mobile app depends mostly on the experience you offer your users.
Technology Marches On
Mobile development, particular cross-platform (e.g. both iOS and Android), is at a much more mature stage of its technological lifecycle than it was even a few years ago. Cross platform frameworks have developed to the point where releasing to iOS and Android is the standard, and increasingly the same code is able to run on the web as well. Either this works because the mobile development framework uses web-native technologies like React Native, or the code can be compiled to WebAssembly. This maturity of the mobile development ecosystem means faster development, fewer bugs, and greater cross-platform support for native mobile APIs. Technological barriers to entry in native mobile apps are as low as they've ever been, and are likely to keep dropping.
Mobile app development still requires additional effort around deployment but progress is being made there as well. Tools such as AWS's Amplify in combination with their EC2 Mac Instances allow for more automation of the development and deployment lifecycle, further reducing the engineering effort and cost of creating a mobile app.
So if you feel a mobile app is out of reach for your development budget that may change soon, if it hasn't already. However, building something just because you can afford it isn't good practice. Without a compelling case for a mobile application, in-browser web applications represent a great alternative. While mobile frameworks have improved, browser APIs have kept pace. With a few exceptions, like Bluetooth and GPS, most functionality can be replicated perfectly well in the browser - from camera integration to file upload. Browser applications remain simpler to build, and cost less money to develop. But as that gap narrows, you may find yourself tempted to skip the web app and go straight to mobile.
But Users Don't Care
The issue with blindly developing a mobile application for your business is simple enough to state. It's all about the user experience. Consider the difference from the user's perspective between downloading a mobile app and using a web application. Likely the user is already in their browser, discovering your app through a web search. In this case the transition to using a web app is just a question of clicking the link and likely creating an account. No context switching, no downloads, and with the proliferation of password managers account creation is nearly automatic. The barrier to entry for mobile is significantly higher; instead of being linked directly to the app they have to go to the store and wait for it to download, find a place for it in their already crowded screen, and then open your application — assuming they were already browsing on mobile instead of desktop, in which case they have to switch devices.
On top of the clear difference in their experience setting up the app, users have been burned before. Obnoxious apps that spam notifications, or even worse have shoddy security, have become easier and more prolific as development costs decrease. Users respond to this, and are less likely to want your app on their phone if you don't make a convincing case for it. If the app doesn't give the impression that it will improve a user's experience versus simply using your site, why would anyone bother to download it? If you build an app that doesn't add value, expect low downloads and mediocre brand-damaging reviews. Even among the people who do download the app, they'll never open it except to get the thing to shut up.
What Works on Mobile?
If you want a mobile app, you need frequent, positive user engagement. Nobody wants to download an app they check once a month, or only notice when it spams them with discount offers. But when an app is something users want to check daily, and when they want the instant feedback from its notifications, they'll be much happier with a native mobile experience.
Instagram is a great example of this done well. Nothing in the Instagram app really requires that it run outside the browser, but the Instagram mobile app still managed over 170 million downloads in Q4 2021. Users care about what's happening on Instagram enough that they want the convenient access, speed, and notifications you get from native mobile. It's not the technology that drives the Instagram mobile experience, but the experience and psychology of Instagram's users.
This isn't necessarily something you can force. Not every business model supports this degree of user engagement, nor should they. An app like TurboTax that (ideally) will be opened once a year simply does not make much sense on mobile. Not that this stopped them, and while their overall rating is decent at 4.5 stars, check out the highlighted reviews on their app store page. All one and two stars deriding a glitchy experience.
Trying to force user engagement when it doesn't naturally fit your application generally leads to negative user experiences as they get annoyed with the degree that the app pressures them to open it and fulfill some manufactured or marketing-oriented task. And you expose your brand to significant risk if the mobile app doesn't provide the same degree of quality as your web app, which is likely more mature and hardened against bugs.
Be honest with yourself and your business about what your application really offers. Is it something users will want to check every day? Will they get excited when they see a notification? If not, a focus on native mobile could actually dissuade users from engaging with your app, when they would have happily clicked on a browser link and given it a chance.
If your business model does support and thrive on user engagement, it's really never been easier to develop a mobile application. You'll need to take into consideration the pitch to your users to download it, but so long as you can convince users to give it a shot, they'll probably be happier and more engaged with a native mobile app.