Yes, the biggest barrier for Dapps (or decentralized apps) is the requirement for users to sign every transaction with a private key. Most users just want to use username / password, and do not wish to do the chores of private key management. That is why most dapps you see today are "money" related -- investment, gambling etc. There are really two ways to mitigate this. We discussed both options at length in the book. https://www.buildingblockchainapps.com/
1. Build key management into your client. That is, to provide a "wallet" in your web app or mobile app and help the user access the key transparently once they login.
2. Automatically generate keys for public apps. This approach is essentially what you see when you create and publish a Dapp from the BUIDL IDE tool:
To see a full example of "disposable private keys for public Dapps", check out this tutorial: