Open Web Apps, common application functionality, and coexistence with refapp apps

My 2¢…

This makes sense to me, since I think session info (and maybe other stuff I can’t think of right now) will be useful for developers wanting to build apps using just the Platform (not RefApp).

Regarding adding apps to the RefApp home screen, we could use an optional proprietary extension like openmrs_app_descriptor to contain the AppDescriptor. I’m not personally a huge fan of this though, because I like the idea of people building apps using the Platform only plus possibly just the OWA module to host their app. I don’t feel like it’s such a big deal for people to perform a one-time configuration to get their app on the home screen.

What if we made App Framework aware of OWA instead of the other way around? That way:

  1. developers who just want to use Platform+OWA can do so
  2. the openmrs_app_descriptor can be detected when App Framework is installed and ignored otherwise

I think I agree with @raff’s first reaction to creating an OWA for CSS/UI components. In my view (and I think the spec’s view), OWAs should be completely self-contained and should be installable on any platform that supports the OWA standard. @sunbiz demonstrated this by installing an OWA built for DHIS2 into OpenMRS, and it worked!

I do agree that different styling across the RefApp is not ideal, but in other app ecosystems it’s usually up to the app developer to upgrade their app. I much prefer the idea of creating something like a Bower package in order to not introduce OWA dependencies and keep our OWAs fully self-contained and installable anywhere.

My personal preference would be to have the following:

$ bower install openmrs-ui#2.3.1

This would include all our SCSS/CSS for that version, plus common HTML fragments like the header, breadcrumbs and whatever else we want to make available to app developers (whether they’re building an OWA or their own standalone app).

I’m interested to hear @sunbiz’s thoughts on this.

2 Likes