Not really, I mean you could modularize your app in various ways, but then you'll get a fraction of the work out of the devs working on it that you could.
Fact is that developers have to be the product elite - if they're going to be any good at their job they need to know your application inside and out. They need to know where it's good and they need to know where it could be better but you don't have time to fix that right now.
You're stuck trusting them both ways - if you can't trust them with your code then you also can't trust them not to add something that belongs to someone else or that's been GPL'ed and then your whole app's in trouble.
Your best bet is not security by hiding the code from them, but legal protection if they further distribute it.
- They have to sign an NDC - giving your code to anyone else is clearly theft.
- It should be very clear that existing code is your IP, and any new code they contribute to your code base is also your IP - they're breaking employment terms if they contribute something that can't have its exclusive rights transferred to you.
- They can contribute to other products while working for you (in their own time) but contributing to a competitor should be clearly defined as gross misconduct.
Software products are not just about code, they're about the knowledge of the application. A new dev can take months to get up to speed, and it takes ages to recover from someone leaving who truly knows your app.
Or to put it another way: spend 5 years writing a large and complex app, move the whole code base to a brand new team and the original team will still be able to have a 2.0 version out before the new team adds any decent functionality to the old code base.
Therefore, most important of all: keep them happy - their in-depth knowledge of your code is invariably worth more than the code anyway.