What are Micro-Apps?
Micro-Apps are small, actionable items with interactions limited to just a few screens. What’s the experience of using a micro-app like? You should know. You’ve been using one for years, now. I’m talking about push notifications.
Push notifications show up on your phone, you interact with them in seconds, and you’re done. That’s the experience. Back in the good ol’ days, you would tap the push notification and you’d be taken to the app associated with that push notification. If the app was setup well, you’d be taken to the specific screen associated with the content of the push notification.
After a while, push notifications got even more sophisticated and users were able to execute an action directly from the push notification itself (e.g. The Outlook push notification for a new meeting includes “Accept” or “Decline” options right in the push notification itself.). So, when users received the notification, they could respond with a single tap.
The Micro-App Container
While the new generation of push notifications offered more utility (as in the example mentioned above), they still required a dedicated app to do the “heavy lifting.” It’s easy to add an Accept or Decline button to a notification, but you still need the Outlook app to do whatever happens when you tap one of those two buttons. This puts a bigger burden on enterprise developers as more apps need to be developed to support the new business functionality.
The big innovation with micro-apps is a flexible container that does much of the heavy lifting, but is also able to work in a dynamic environment. This means that much of the functionality is coded into the container app, but gets activated by some dynamic content that is downloaded—which is the micro-app. This lets enterprise developers focus more on business logic, and less on the common app plumbing.
Similarities and differences
Comparing items involves looking for similarities and differences. For example, snowflakes are all white and cold, but have different angles and patterns. You can compare mobile apps in a similar way. Most mobile apps—especially enterprise apps—share a lot of common functionality. What are the similarities? Quite a lot: authentication, push notifications, offline support, analytics, updates, just to name a few. What are the differences? Not as many as you might think: user Interface, business logic, etc.
The power of micro-apps is that the common functionality can be handled at the container level. This is where the common functionality “lives.” The differences (user interface, business logic) are represented by dynamic content that’s downloaded to the container and executed.
The advantage is that leveraging a common container for multiple bits of business logic takes a huge burden off developers and QA. Using a tested and proven container to service many micro-apps speeds up development and update activities. This also helps ensure a high level of quality across micro-apps as a result of requiring fewer changes for new UI and business logic.
The micro-app is the dynamic portion that is downloaded into the container, then executed and displayed for the user. Typical micro-apps look similar to push notifications. The UI includes a scrolling list of actionable widgets/cards with a small selection of simple options to facilitate the easy completion of those tasks (e.g. “Approve/Reject”).
Micro-app functionality should be simple enough to be handled with a screen or two. This keeps the interaction short, quick and non-intrusive. Once the user takes action, the micro-app is removed from the list. This also reduces a micro-app’s development and testing requirements. A few screens can be developed more quickly than an entire app to allow for quicker deploys.
Apps live and die on the data they present users. For micro-apps (especially enterprise micro-apps) to function properly, there needs to be a layer at the back end to help connect data to the dynamic front end. This takes some initial investment in a mBaaS layer—which will pay dividends when it becomes easier for micro-apps to access back end data stores.
This mBaaS layer allows micro-apps to connect to enterprise back end systems (e.g. SAP, Salesforce.com, etc.) via simple web service calls. The mBaaS layer then handles the heavy lifting and dealing with different protocols etc. involved in connecting to each one. This layer can also optimize the data coming from the back-end systems before it gets to the mobile app as well. This helps developers by allowing a single way (HTTP calls) to access backend data rather than having to deal with different protocols that apply to specific data providers.
Security is always a big concern when dealing with data access, especially when it comes to enterprise data. But since the container app has a built-in login mechanism, we’ll know the user is authenticated. The container app could use this login information to generate a short-lived token that lets the micro-app access a particular data set. This will enhance security so that even if an access token is compromised, it would likely have expired before any unauthorized parties would gain access to it.
App Store Restrictions
A key reason for the success of micro-apps is their container’s ability to dynamically load and execute code. Apple’s App Store has specific restrictions against doing this in consumer-facing apps. But by using Enterprise Distribution—which is a given for Enterprise Micro-Apps—you’re free to build apps that do so, as long as only company employees are running the container apps.
Faster, Cheaper Deployment
Micro-app technology gives enterprises the ability to quickly deploy functionality at a low cost per micro-app. Changes may also be quickly deployed, since testing a small piece of functionality is much easier than testing an entire mobile app—further reducing development/testing time and the cost to deploy new functionality.
Reduced developer effort dramatically lowers the bar for getting apps into the hands of users. Some tasks may be too small to justify the cost, effort, and time of deploying as a traditional app. The micro-app approach makes it feasible to deploy these small scope—but still useful— tasks to mobile users.
Micro-apps have the potential to enable enterprises to make big leaps forward in terms of automating more tasks for employees, thereby boosting productivity. To find out more about developing micro-apps to streamline business processes and make life a little easier for employees, please feel free to reach out at any time.
Mobile Architect at Propelics