One solution which was discussed by Gustaf Nilsson Kotte at Nordic APIs, Stockholm last month is the use of HTML hypermedia APIs coupled with adaptive Web design. You can watch his presentation on YouTube, but here’s the tl;dw version:
- The number of device types and mobile OSes will only increase (a la FFOS).
- Users require a great experience regardless of their device choice, forcing app developers to cater to all tastes and options.
- Because all the UI and presentation code for these different mobile platforms is invariably different, it should be pulled back to the server where it can be reused across OSes and devices.
- This logic should be made available to the mobile apps across platforms as hypermedia APIs using HTML as the media type (as opposed to JSON).
- The HTML can be written to adapt based on the capabilities of the device, progressively enhancing depending on what the device supports.
- For FFOS (and others), displaying the output of such an API yields a mobile Web app that can be rendered w/ the system browser. Using progressive enhancement techniques common on the modern Web, the API’s HTML output can upgrade or downgrade as needed to provide the best user experience possible.
- When building a native mobile app, the API’s HTML output can be parsed using the DOM; HTML controls, styles, etc. can be turned into native equivalents. This conversion can be limited to screens that are used most frequently while leaving lesser used parts of the app as HTML that are rendered w/ a WebView control.
This idea stirred up a lot of discussion, and people were white-boarding things during the breaks. The sparks of innovation were flying, and it was great to experience!
The conversation continued in Copenhagen where Ronnie Mitra of Layer 7 discussed his experiences building hypermedia APIs and consuming those from apps. He talked about some of the challenges and benefits of this design style, and pointed out that the choice of API architecture should be driven by the end developer experience that is desired. Gustaf’s colleague, Mads Enevoldsen, also delved into this topic, presenting attendees with the maturity model that services must go through if they want to follow the HATEOAS architecture.
— Travis Spencer (@travisspencer) May 21, 2013
Given the relevance to FOSS development and the work that Telenor Comoyo is doing, I’m sure it will also come up in Trondheim, Norway where we’ll be meeting on June 11. I’ve heard from Sune Jakobsson that Comoyo will have some demos available during the networking time prior to the talks, so plan on coming early. That day, you’ll also have the chance to hear from Intel, Telefonica, Twobo, Dopter, and others about developing APIs for the telecom industry. You’ll also have the opportunity to win a free Firefox phone. Comoyo will be giving away a free Keon and Peak Firefox phone!