Every program attempts to expand until it can read mail. Those programs which cannot so expand are replaced by ones which can.

Jamie Zawinski

We software developers have been hitting on all cylinders lately. I mean, this industry is hot. If coders were singers we’d be Adele hitting the high notes in Madison Square Garden (you know, back when concerts were a thing).We’d be AH-nold sniffing out the bad guys in Commando. John Travolta in Saturday Night Fever. And I don’t mean the John shirking work in the hardware store; I’m talking about John in the white suit working that dance floor like only somebody living their best 1977 life can. We turn whiteboards black, make tests pass us, and our CI/CD workflows are getting worked.

So what’s wrong?

We’re putting the creep in feature creep, that’s what. An addiction for building has led to the creation of enterprise software that is too bloated, too difficult to master, and is almost universally loathed by users.

Ah I’ve gone and said it. That dirty, horrid four letter word. User. You know, Stan in marketing and Teresa in sales? Miles in the warehouse. Julio the truck driver. Mary and Marvin in tech support. And let’s not forget about the maintenance staff and front-line service personnel who all play crucial roles in making your place of business tick. They are required to use this enterprise software to update marketing databases, file technical support tickets, and approve expenses. In many cases, these tasks must be completed multiple times daily. And they hate every minute of it.

Many companies are attempting to streamline users’ software interactions by creating microapps. Microapps improve users’ ability to quickly address repetitive tasks by providing a highly tailored UI that focuses exclusively on a specific workflow. In this blog post I’ll introduce you to microapps, and show you an example of a microapp we’ve been building using DreamFactory and Citrix Workspace Microapp Builder.

What is a Microapp?

Many companies are tackling this challenge by creating microapps. We’ve previously written an introductory article about microapps which you’ll find here. To recap, microapps attempt to greatly streamline users’ ability to quickly address repetitive tasks by providing a highly tailored tool which satisfies three requirements:

  • The UI is specific to that task. For instance, imagine Stan (the marketing manager) has delegated the task of writing product descriptions to a colleague however he needs to review and approve the copy before the changes are published on the e-commerce site. A product description approval microapp would include just two screens: a list of unapproved product descriptions and an editing/approval form. That’s it.
  • Data that must be addressed is pushed to the user in the form of a notification. Continuing with the product description approval theme, Stan should never be left in the dark regarding whether there are outstanding unapproved descriptions.
  • The UI is mobile friendly, giving users the opportunity to quickly complete tasks regardless of location or time of day.

I would also argue that microapps often adhere to a fourth requirement: they are disposable. Not only do microapps serve a very specific purpose, but that purpose might be time-bound to a specific event. For instance, imagine creating a microapp to approve conference abstract submissions. This microapp might be available to its end users for perhaps a period of just a few weeks, and then shut down or at least disabled until next year.

Creating a Microapp

The aforementioned requirements give us some sense of the corresponding technologies that might be adopted to create a microapp. Note I’m not referring to specific programming languages or databases, because a microapp can be built using any modern web-based technology stack. Regardless of stack, each solution will embrace a certain set of characteristics:

  • The microapp UI must be responsive, meaning it will work equally well on a desktop, tablet, or mobile phone. Modern CSS frameworks such as Bootstrap, Materialize, and Tailwind solve this problem nicely.
  • Microapps are typically CRUD-based, meaning you’ll ideally embrace a rapid form builder tool or library. I’ve long used the LaravelCollective’s html package for this purpose.
  • Authentication and authorization protocols are crucial in order to ensure appropriate users and workplace groups are able to securely access and modify the desired data. Authentication APIs are readily available for all of today’s identity providers (IDPs), including Active Directory, Okta, AWS Cognito, and others.
  • Notifications are crucial to microapp engagement, because the goal is to proactively notify the user of newly addressable content, such as a recently modified product description. In the simplest form this might be an email- or Slack-based notification, however a dynamically updated user interface is also standard for today’s cutting edge web applications. Many libraries and automated tools are available for notification management, including the slack-notifier Ruby gem and Pusher, to name a few.

It’s likely anybody reading this blog is at least generally familiar with these concepts. However, left unsaid so far is how one goes about using technology to increase the likelihood of user engagement. What if over the course of time a user is expected to engage with two, five, or even ten microapps?

Many organizations rely upon a digital workspace solution such as Citrix Workspace. Such solutions provide users with a globally accessible and secure means for accessing corporate applications such as Outlook, SAP, Salesforce, Workday, and anything else an employee requires on a day-to-day basis. Additionally, Citrix Workspace bundles a no-code microapps builder which administrators can use to quickly build microapps capable of interacting with any data source exposed via a REST API. This capability means DreamFactory is a natural choice for plugging Citrix Workspace microapps into databases using DreamFactory-generated REST APIs for MySQL, Microsoft SQL Server, and many other databases.

Building Microapps with DreamFactory and Citrix Workspace Microapp Builder

We’ve spent the past few weeks experimenting with plugging the Citrix Workspace Microapp Administration tool into DreamFactory-generated database APIs, and can confirm the integration is practically seamless.

After generating your database-based API in DreamFactory, you’ll use the Citrix Microapp Integrations interface to reference the desired API endpoint (see below screenshot). This will initiate an easy point-and-click process in which you’ll map the returned JSON to your microapp interface.

You’ll also use the slick UI builder to create the desired microapp screens used to list, create, and modify data (see below screenshot).

Before publishing your microapp, you can assign it to the desired user or department, such as members of a particular Active Directory group. Once published, the microapp data will seamlessly sit alongside other data found within the users’ Citrix Workspace. For instance the following screenshots show what an example product description management microapp would look like when the user loads it from a mobile phone (left), and updates a product description (right):

Creating Your Own Microapp

If you’d like to start building microapps with Citrix Cloud and DreamFactory, check out the following links to get started:

Conclusion

In the coming weeks we’ll publish a series of new blog posts showing how you can create your own microapps using DreamFactory and Citrix Workspace. If you have any feedback, or would like to share your own experiences creating microapps, please email us at [email protected].