There is a 3-way balancing act to be done here between
- Showing the user what's in store for them,
- Not annoying the user with too much handholdy onboarding and other obstacles, and
- Achieving business goals.
The latter aspect is quite easy - if the boss is waving about with OKRs and KPIs which say "we need to increase signups", you can just gate more stuff behind logins. Likewise, if the goal is "we need to appear in Google search", you have to put less stuff behind login-gates.
The other two are much more dependent on what you can expect your users to expect.
For example, when you install and first open Audacity (an audio editor), I, as the designer, can be pretty sure at the moment that you'll either want to record something or open a file next. For this, even the current UI is good enough: It has a red circle button to start a recording, and pretty much the only other thing you can do at this point is find the File menu to open/import something.
Could it have a more straight-forward UX here? Well yes, given these are the only two tasks you can do, I might be able to present you these options a bit more straight-forward, but what I don't really need to tell you is "welcome to audacity, press the record button to record" via a popup. What I also probably don't need is a popup featuring the two options, as this now requires people to learn that there are two entry points into doing the same thing, which change depending on whether it's the first or the second thing you do.
On the other extreme, for a dating app, it'd be pretty pointless to let you do anything without first having you fill out your profile to a minimum degree at least. Here, the users actually would expect us to design a good onboarding flow.
Apparently this is what iOS users expect and/or want?
I've had to set up an android phone again the other day, and all the Google apps have some sort of onboarding as well. Though Google being Google, I of course already was authenticated in the apps by default. I'm not aware of any major differences between OS users in this regard.
Are there studies showing people's preference for discovering apps for themselves vs being forced to go through an onboarding flow?
Even within content-driven apps, this is highly dependent on context. Soundcloud vs Spotify, YouTube vs Netflix vs Vimeo has quite different experiences all things considered. Even Reddit, the website vs Reddit, the mobile web page vs Reddit, the mobile app has drastically different experiences in what you can and cannot do before you have to sign in.
User testing your app is the way here - if people get stuck finding a particular option, maybe that option needs to be made more prominent, maybe the logic needs to be changed, maybe it indeed does need onboarding.
A compromise I could try doing is showing the signup flow by default, with an option to preview the app without signup up. The only app I could find that does this is Meetup, is there any reason not to do this from an UX perspective?
There's very little that speaks against this option from a UX perspective, but you'll likely find quite a strong push from the business people to reduce the visibility of the preview button, until you might as well simplify the app and presume that everyone is logged in all the time. So while in UX terms it kinda is the most flexible option and the best of both worlds, it also tends to die more quickly than the alternatives of "everything accessible from the start" and "everything behind a login".