I want to safe my app from reverse engineering. What precautions should be taken ?
You cannot prevent a determined programmer from looking at code if it is running on his system.
You can make it more difficult, however, by using Obfuscation:
It’s in Project Properties.
Even Visual Studio .NET relies on obfuscation for its security.
The only way to be completely secure is the run the sensitive code somewhere else, such as your own server - but that can be vulnerable too.
One of my apps for android/iphone was copied. I thought I it would be more difficult, but while it was programmed using a different tools, they opened the APK android file to copy the formulas and data tables I was using. I used basic obfuscation, but didn’t help.
I’ve looked at other ways to protect, but in the end I’ve just concentrated on updating my app regularly making it a moving target for someone to try to keep up with.
and what about data encryption?
Data which is encrypted is safe. However, you need to be careful with the key - if you hard code that, your data is vulnerable.