I have one little question. Suppose I have private key of user in ionic app. Is this enough to make transactions using infura API and web3?
Yes! And the only challenge is how are you going to save that private key in the mobile app. A high level of security is required in order for the users to trust your app. In addition you should provide a way to restore private keys created in the app, either bu providing a 12-word seed like metamask and other crypto wallet managers.