I'm an iOS dev, and occasionally think about trying Android, but then I read something like this: http://www.mhgames.org/2011/02/the-sad-state-of-the-android-market/<p>Any advice on how to prevent this? In an Apple world, you could ping Apple (ignoring the jailbreak world). But the problem above seems to be that people are selling stolen IP in the Android Market.
If a dedicated and talented reverse engineer wants to acquire the know-how (code) and resources (images, icons, ...) of a binary, it is impossible to stop them. You could make the discovery more difficult, but you can never make it impossible. It's not a matter or Android versus iOS, instead, it's just a fact of systems and binaries. It can and does happen on iOS as well. If it is accessible, then it's vulnerable. Plain and simple.<p>The backend code on SaaS is not accessible, save for a breach, so to combat the above, many in the mobile space have moved to SaaS models, or models with an important SaaS component. If you are just serving data from your on-line component, then you're even more stuffed by others figuring out your secret sauce since their clones will/could be using the data services you are paying for to support your customers.
This may not be very helpful, but if you keep innovating and tying in the new products, then you would in theory pretty much stay ahead of the game completely.<p>That being said, there may be was to encode your resources using various Java obfuscation tools out there. I haven't looked into it too much. My graph theory application Edgy for Android has some nice code that I meant to get around to open-sourcing anyway, but I do understand that I don't have the creative investment it sounds like your project has.