Minded Systems

MVC just got an e from G

Google I/O 2016 is winding down and we’re all getting a chance to digest the bevy of announcements. Google Home created a long of buzz and Daydream (aka. Android VR) got a lot of attention. Buried in the pile was a somewhat smaller announcement that may come with some pretty significant long term impacts; Android Instant Apps.

Android Instant Apps are being touted as rather innocuous bits of code added to existing apps to enable functionality without installation. Google intends to remove the visual interface requirements by inter mediating the app experience entirely. Android Instant Apps are designed to extend to the MVC design principles to support an extensible set of interfaces.

Like many developers I was curious about the functionality and went to the sign-up page. I found a questionnaire with some basic developer sign-up questions, nothing surprising. The follow-along page however asked some questions that seem very telling. The most notable question was whether or not my app targets API 23. Sheepishly I answered no as I have not updated it in a while, but more importantly API 23 included a significant change to apps in that it introduced support for app backups. This came with the immediate improvement of not losing one’s app settings when restoring or transferring devices provided the apps supported it. It bears mentioning as it has significance later on.

Late last year, Google also introduced their app streaming service with a select number of partners. While there hasn’t been much news from these implementations or the service in general since then it certainly identified that Google has the technology to run apps in the cloud and it works.

Now, we have the final piece with Android Instant Apps and the implied consequence they have on the typical app development model. As a quick primer; MVC is the typical approach for app development, Model-View-Controller. Models hold and manipulate the data the app uses. Views display and organize user interface elements. Controllers mediate data from the models to the views and UI interactions from the views back to the models. What Instant Apps intend to do is extend the notion of MVC to support an alternative controller types (instead of the accepted View controller type). While “Android Instant Apps” is a branded implementation, adding extensible controller types for non-visual user interfaces may totally alter the way developers think about MVC. When a view (or visual interface) isn’t used the controller becomes a point of arbitrary extension; MVC(e) if you will.

Why does any of this really matter? In a nutshell, Google assistant. In terms of user-relevant data, apps are vehicles to local storage and the cloud is a vehicle to server storage. In order to be a true virtual mobile assistant, Google assistant will ultimately require access to both sets of data. Are we all going to allow Google to come it our phones? Nope. Are we all going to constantly sync all our apps to the cloud? Certainly not. However, what if there was a way to run a copy of the same apps we have on our phones in the cloud. ….Check. Now what if that app running in the cloud could be run as if it were on my phone using my personal settings (from a cloud settings backup perhaps). ….Check. Now if only the app developers had an controller API they could implement to allow Google assistant to access parts of that app.

Since we’re talking about Google, its worth mentioning the potential longer-term goal here. Using the idea of extensible controllers for accessing app data models using non-visual interfaces like voice assistants begs a couple questions; what other non-visual interfaces could leverage the app ecosystem in this way? And more in line with Google, have Android users fed its AI and machine learning enough app usage data for their computers to do all interface controls entirely, visual or not?

Please provide a valid email address

Trackback URL