Here are my notes from Gustaf Nilsson Kotte's talk in RuPy 2013 about the combination of hypermedia and mobile first web design.
- Hypermedia APIs are about not putting application logic in API clients
- Adaptive web design are for building for the multi-device web.
- The two work well together.
Hypermedia APIs, Microformats
- Prefer fat APIs over fat clients. Rule such as authorization must be implemented in the API. But often they're also re-implemented in clients because they need to know how to follow them.
- The way to solve that is REST and HyperMedia.
- "You do stuff by reading pages, and then either follow links or submit forms." - Jon Moore. That's how humans surf the web.
- Using HTML as the API data type is not a bad idea. Lots of hypermedia controls. Old, standardized, everybody knows it. Good tooling support. There's also a tool for visualizing the API, called a web browser. Mentioned an article about this by Jon Moore
- JSON is ok too.
- Microformats1 had a problem: The purpose of a class was not communicated. In Microformats2, "a character and a class" means "this is semantic information". Example of a representation, where HTML forms with microformat information mixed in communicated what can be done with an item.
Hypermedia <3 Mobile First
- Be conscious of how much data you're sending out.
- If the user wants to read something, the primary content should be that thing. Everything else is secondary.
- Responsive web design is probably the most common technique under the adaptive web design umbrella. It's based on progressive enhancement - a good, sound web design principle.
Have a baseline that works with everything, then optmize that for the higher end.
The API and the web can be the same thing.
Same code for ewb and API. Can share templates too. But separate URLs. Then you can optimize for both perspectives: In API you can remove scripts, styles. In web you might not need all links/information that the API has.
Know Your AngularJS Inside Out
Build Your Own AngularJS helps you understand everything there is to understand about AngularJS (1.x). By creating your very own implementation of AngularJS piece by piece, you gain deep insight into what makes this framework tick. Say goodbye to fixing problems by trial and error and hello to reasoning your way through them
- RuPy 2013: OpenStack Development: How We Build It And ow You Can Help
- RuPy 2013: Dealing With Complexity