Writing secure code can be difficult when there are code bases with internal and outsourced teams for user experience (UX), specific feature sets such as finding devices during app startup, ensuring rule settings properly execute, and others such as ensuring app updates do not negatively affect IoT devices in the network. With such complexity for one application, bugs are bound to be discovered and security controls circumvented by attackers. Yes, this is inevitable for any software although techniques are available to make reverse engineering more difficult for attackers to compromise applications and steal a company's intellectual property (IP).
These techniques can be built into the application logic to protect against runtime modification, static analysis of applications binaries via obfuscation of application classes, and segmentation...