Building native applications for platforms such as Android and iOS is bread and butter for many of our customers — but not all. Sometimes, a website will suffice. But how does a customer easily do this, packaged appropriately for the dedicated device use case?
We’ll explore that in this installment of Esper Deep Cuts by looking to the WEST.
Deep Cuts #6: Web Apps Dedication
It all started with avocados. Hold that for now.
Web apps are software applications that create the experience pulling from a web server accessed through a web browser. Why would you ever use them for a dedicated device use case? It makes for cost-effective development! Instead of the complexity of building and maintaining native apps, you can use an existing web property to deliver your use case on a dedicated device. A web app requires Internet connectivity (it typically won’t work without it) and is appropriate for simple use cases, like displaying static content or situations with simple user input.
When you move to the dedicated use case on Android, you don’t want to use a standard browser implementation, as the user can manipulate the browser session in ways you don’t intend. Sure, you could do it via a precise Managed Configuration applied to Google Chrome. However, that’s a tough implementation path to manage and only lets you have one experience per device, usually set in kiosk mode. What if you need to have many such experiences on a single device?
Google addressed this via Managed Google Play by enabling the customers of EMM providers to create web apps and publish them through Managed Google Play straight from the EMM’s console. But your EMM needs to support this (Esper is an Android Enterprise EMM partner and indeed does). All you have to do is include your website’s URL, an icon image, and a title. You choose a display mode:
- fullscreen with no status or navigation bars,
- status and navigation bars visible when the web app is open, or
- status bar, URL, and refresh button visible when the web app is open (and this is the only option available if you are NOT using HTTPS)
Google’s cloud then generates the web app, which eventually appears as an app in your Managed Google Play account in the Esper Console. These apps are like Managed Google Play Enterprise Apps in that they are only available to your organization; no one else in the Google Play ecosystem can access them. You distribute them just like any other Play Store app using Esper.
However, this method has limitations. You must have Google Chrome installed on the device, and the shortcut must be visible on the home screen. This may be fine for kiosk mode, but if you are showing the home screen to your users in what we call multi-app mode, Chrome is available for use as is. Most dedicated device customers don’t want that.
The other is that the quality of service for generating these web apps is not guaranteed. Google advises that they will publish your web apps within 10 minutes, but that’s just what it says — an advisory. Your mileage will vary.
Furthermore, you are at the mercy of Managed Google Play’s quality of service for that web app to be installed on the target devices using Play Store infrastructure. While it works, you don’t get the fine-grained control that the Esper App Cloud and Blueprints give the IT Operator.
Additionally, what do you do if your fleet contains AOSP devices and not just GMS?
Enter the Avocado
Through a partner, we worked with a mutual prospect with an interesting use case. They represented avocado growers and planned to provide supermarkets with tablets containing a set of avocado recipes to promote sales in those markets.
Since they already had all the required content (recipes) hosted on a mobile-optimized website, they decided the quickest path to market with the simplest maintenance was web apps, with a single web app per recipe. We are not talking about a couple of recipes; it was tens and tens of recipes, each requiring a corresponding web app.
They needed to lock down the device, so Esper hit their radar (via the aforementioned partner), and the avocado team gave us a try.
They procured a device before talking to Esper (should have talked to us first!) and were convinced that the device was GMS because the ROM had YouTube and Chrome preloaded. Since generating a web app through Managed Google Play is simple, they gave it a try and got an install fail, stating the device was not managed by Google Play Services.
They then talked to us directly about their situation. First, Managed Google Play would not have worked well for their use case as they would have had to show the Chrome shortcut on the home screen delivered by the Esper launcher. Without that, the Managed Google Play web apps would not function.
But more germane to the immediate situation, we quickly recognized this was one of those devices where the ODM cherry-picked a few GMS apps to drop into the ROM build but did not bother including Play Services (which we have seen before with non-GMS devices, noting it breaks Google’s rules). So, of course, Managed Google Play would fail.
To win the deal, we had to figure out how to help this customer generate tens of web apps that would run on an AOSP device and work well within the Esper infrastructure. At our core, we’re engineers, so rather than manually build each web app using Web View, this endeavor led to creating a tool we call the WEb app Support Tool (WEST).
WEST started pretty simple — as a Cloud-based tool to generate the pile of web app APKs. The Esper operator gave WEST the URL and the icon to use (noting that WEST would apply a default icon if one wasn’t supplied). WEST would then fire off a cloud job to generate the corresponding app package. We would then upload the web app to the customer’s Esper App Cloud, and they could deploy it as they wished using Esper’s previous iteration of Blueprints, called Templates. WEST made it easy for the Esper team to create the pile of web apps that run on AOSP for this customer.
Since WEST uses Web View, it also covers GMS. Furthermore, Web View is great for this use case — since we designed it to render websites inside of other apps, it already has built-in limitations that fit the web app use case.
Customer happy! Then we found out we hit a vein of need. It makes sense: AOSP is common for many vertical market use cases, especially in restaurants and retail, and the Play Store web app is not a good fit for many dedicated device use cases. So when we matched the prospect’s need to WEST, we found ourselves putting it to work.
This led to customer feedback across many different use cases. From that, we iterated on WEST:
- The flexibility to automatically grant a set of permissions, controllable by the IT operator depending on the use case (Camera — for example, scanning a QR code; Location — if the use case requires using the device’s location, like for a map; Microphone — if voice input is required; Storage — for uploading or storing files).
- A set of display options: default, minimal (no app title bar), and immersive (no app title bar, no Android status and notification bars).
- A set of additional build options: automatic app data clearing when the web app goes into the background, opening links in the current view (not the default Web View behavior), rendering error and warning toasts in the web app, and entering allowed HTTP web domains and addresses (not normally allowed on Web View but it has come up for customers serving content from their LAN — something you can’t do with Google Play web apps at all).
The capper is we implemented Managed Configuration for WEST web apps. A call out here: Managed Config is a great piece of infrastructure created by Google that works on GMS and is intended to work within the Play Store construct. At Esper, we built standalone support for Managed Config to include the fine-grain delivery and control of Managed Configs at the Blueprint level in a JSON form. By doing this, we enable IT Operators to codify their Manage Configs and easily open up to managing Manage Configs via API. The bonus is we brought Manage Config to AOSP devices as well.
This means WEST web apps are prime candidates to take advantage of our Managed Config infrastructure, which provides deep configuration capabilities through Blueprints on both AOSP and GMS devices. It covers configurations from changing the default URL without rebuilding the web app to allowing swipe navigation. If you’d like to see the full current set of available Managed Configurations, read through to the end of the article.
We’ve seen so many different use cases for WEST web apps, from enabling the delivery of simple forms that rely on an existing web property to using one as a point of single sign-on for the host of apps on the device. It works in kiosk mode, yet if the device needs to be in multi-app mode, it can still deliver a kiosk-like experience, and it will not expose the generic web browser shortcut on your home screen.
With all that’s available to you via WEST, use your imagination to discover what you can do with it!
Considerations
Web apps are a great way to offer a use case without a lot of heavy lifting, but there are a few things to consider:
- You need to ensure you don’t have any means to navigate outside the scope you intend for the experience. While you have no navigation bar, the user can still click on whatever links are exposed on the website and potentially end up somewhere you don’t intend them to.
- This also means the entire experience must be within the scope of the particular web property served up.
- You typically need an Internet connection for this to work, but given that we support HTTP, you can have it work off of a web server on a LAN.
- You will still need a web app icon appropriate for your use case and the proper app name you wish to display to the user.
Conclusion
WEST web apps are available as an add on to all Esper plans — Architect, Bridge, or Genesis. If you sign up for WEST, we’ll give you access to a site where you can load your configuration options for your web app and fire off the cloud job, along with complete documentation for Managed Config. Then, the web app will quickly show up in your Esper tenant for deployment via Blueprints, and you can drop in your JSON for Managed Config if you wish.
With that, we are curious about where you can take this. Start the journey by signing up for an Esper trial, and we’ll reach out to talk about WEST.
Sometimes, you never know where an avocado can take you. For us, it is go WEST!
Appendix: WEST Managed Configurations
Available at of the time of publication, subject to change (typically for the better):
- Set Default Web URL
- Set Cache Mode
- Hide App Title Bar
- Show Progress Bar
- Set Action Bar Background Color
- Set Action Bar Text Color
- Set Progress Bar Color
- Set Progress Bar Background Color
- Show Home Button
- Show Back Button
- Show Forward Button
- Set Layer Type
- Clear Data on Focus Loss
- Allow Downloads
- Set App Title
- Allow Javascript
- Allow File Access
- Block Network Image
- Block Network Loads
- Allow Geolocation
- Allow DOM Storage
- Allow Zoom Controls
- Set Support Zoom
- Set Display Zoom Controls
- Set User Agent String
- Toggle Safe Browsing
- Allow Plugins
- URL Allow List
- UrlAllowList
- URL Block List
- Javascript can Open Windows Automatically
- Load with Overview Mode
- Use Wide View Port
- Allow Swipe Refresh
- Allow Swipe Navigation
- Allow Open New Windows In Current View
- Load Images Automatically
- Set Database Enabled
- Set Mixed Content Mode
- Show Error Toasts
- Show Warning Toasts
- Set Media Playback Requires User Gesture
- Override Key Event
- Set Initial Scale
- Allow Download On Mobile Data
- Allow Download Over Metered
- Allow Download Over Roaming
- Allow Redirect File Preview
- Allow File Preview