I know little about India's legal system but consider intellectual property laws. For example, if your idea is patentable, consider patenting it. Yes, this is expensive (and not popular with some people) but this is what patents are for. Make sure each source code file includes a copyright notice. IP law will not stop people stealing your code and ideas but you may be able to prevent them from using them.
If your idea builds upon or integrates with another product or organization. Consider talking to that organization and see if you can work out a preferred or sole licensing arrangement. Hypothetically, if your app is going to market soft drinks, approach soft drink companies and pitch your idea. If they like it, they might fund it, give you technical help and deny that assistance to others.
For technical controls, consider componentizing the system and using segregation of duties. Specifically:
- Split the development team into separate teams. Physically separate them so the developers in one team cannot talk to others.
- Split the product into components with well defined interfaces and assign each team a different component.
- Place the source code of each component in a separate source control system and deny other teams access to that component.
When componentizing, consider vertical slices of the system (e.g. UI, business logic and storage) rather than horizontal layers (e.g. 1 UI team, 1 business logic team, etc). Otherwise, each team may see too much of the system.
This way, each team will know their component but, if someone talks or takes code elsewhere, the worst they can do is talk about their component. You often see this approach in very security-sensitive systems.
For network accessible components, use authentication, auditing and using different development and production credentials. Specifically:
- Have each interface require authentication, e.g. a user name and password.
- Supply development testing credentials but use different credentials in production
- Keep an audit log of accesses and regularly review it.
This ensures any these components are used only for their intended purposes. This may be a reason to move some functionality off the app and onto cloud services, for example.
That said, anything that impairs information sharing within the team is likely to impact team morale and performance. Effectively, you are saying you do not trust your development team. In that case, how can you expect them to trust you? If you trust your developers and share your success with them, they will work harder because it is their product, too.
Also, be aware that the key to most new projects is its execution, not the initial idea. Your idea might be great but, chances are, it is going to change a lot as you develop your product and expose it to customers.