Does end-to-end encryption make sense?
It depends. It will prevent the server (and its admins) from snooping on the data from the users, and at the same time prevent them from helping decrypt data if the encryption key is lost.
End to End Encryption can be a source of headache if your service is used by "persons of interest" (aka criminals, journalists, political persons, etc). In those cases, your service may face pressure from government to either implement a backdoor or somehow expose the data from your users.
How should I share the private key and should it be shared?
It depends on how secure you want your service to appear. If your clients trust your service, you can implement a "share key" direct on the application. It would then share your public key with the intended recipient from inside the application.
If they have moderated trust, it could copy the public key to the clipboard to be pasted on IM apps or sent by email, for example. Or they could generate the key pair outside of the app, import the private key and send the public key to the recipients direct.
And what happens if the user installs the app and loses the private key? Will the encrypted data be lost? And is there a way to prevent this situation?
There must no way to decrypt the data without the key, otherwise there's no point in encrypting anything. If you built a secure system and the private key is lost, the data is impossible to decrypt.
You have little to do in this situation. If you store the private key somehow, it's not E2E. If you don't store it at all, a lost key means inaccessible user data forever.
What you can do is encourage the user to backup its key. Giving the user a file with the key is enough to restore it, but you must do so in a way that the user will not disclose this file accidentally.
If the user have two or more devices, you could make the application use the same private key on each one and have a way to transfer the key between devices. This reduces the chances of the user losing access to all his data but increases the chances for an attacker to get access to the private key.