Right, because I really want to have to take out my phone, unlock it, click an app icon, wait for it to load and authenticate my credentials (assuming I'm not forced to sign in -- again), find the arm/disarm button in some cluttered UI, and then click the button. As opposed to just pulling out the key fob and clicking the arm/disarm button? No apps, please.
I feel like modern-day developers have effectively forgotten how to do local network communication. I know about NAT traversal and similar problems, but you can still architect your system in such a way that your cloud backend is a dumb NAT traversal helper/proxy, which then makes it trivial for your client to offer a cloud-less, local connection option for those users that know how to forward ports/have IPv6/etc (or when you go out of business and your cloud service goes offline).
Not only due to the obvious security, privacy and availability problems, but because the lifetime of apps is very short in the grand scheme of things.
I'll bet there is zero chance a phone app for a solar install today is still going to be working in the 25 year lifetime of that solar panel system.
However, the only interface to its control box/recorder is through a plugin for Internet Explorer 7. I have to access it through a virtual machine running Windows XP.