How was SEIUM?
SEIUM is a week-long polyglot conference held at the University of Minho in Braga, Portugal. I was invited to give a talk titled No Service, which centered on the technology ecosystem for offline Web development.
My talk followed a morning workshop on building Android applications, which covered using local storage engines within apps. I had a natural audience for my presentation: people already considering how to make applications work independent of servers.
I covered three main subjects for offline-first HTML5 development:
- Application Cache and its “gotchas” that make it useful but annoying
- Service Workers and how they are fantastic but still not fully compliant across browsers
- In-Browser storage and how with
localStorage, it’s easy to implement as a key-value store
From this point, I got on to the subject of Local Databases.
Local Databases were a big focus of my talk. During this section I described the current ecosystem of browsers and their support for IndexedDB and the deprecated-but-still-widely-used Web SQL. I then looked at how libraries like LocalForage, Dexie and PouchDB abstract the pain of dealing with Local Databases. Going further, I explained the utility of PouchDB and its amazing reproduction of the Apache CouchDB interface that allows it to seamlessly work with IBM Cloudant and other tools that implement the CouchDB replication protocol. I also encouraged audience participation by using http://elsmore.me/seium-demo/ onstage, which is a basic chat app that uses PouchDB to demonstrate data sync functionality and offline capabilities.
I received lots of good questions, including the all-important one on “what not to store in PouchDB”. It was a pleasure to be invited to participate in the conference, and hope I get the opportunity to do so again in the future.
Offline-First in HeartBits hack
HeartBits was a hackathon organized by the Medical and Informatics faculties of the University to explore how technology could be applied to improve general health. With so many developers who had never been to a hackathon before, they produced a wide range of ideas.
I spoke with many of the attendees and recieved a fantastic overview of the student doctors’ goals — and an even better view of how their engineering teammates designed apps to achieve them. The collaboration between the two disciplines was astonishing.
During the event one team used some of the tools covered in my talk. They built a prototype of an offline Web app called GestaMed to help women manage their health and track medication schedules during pregnancy. The team consisted of four great people:
- Diogo Barroso, Faculty of Engineering of University of Porto (GitHub, LinkedIn)
- João Maia, Faculty of Engineering of University of Porto (GitHub, LinkedIn)
- Sofia Sousa Teles, Faculty of Medicine at the University of Lisbon
- Miguel Mendes, Faculty of Engineering of University of Porto
They researched and built a database of medications from textbooks on drug interactions and applied this data to ensure safe consumption during different stages of pregnancy. This database was then imported into IBM Cloudant so that it could be replicated to all the apps. The 24-hour deadline didn’t leave much time to devote to native UI development, so they built an Apache Cordova app to allow for cross-platform use. Finally, they also used PouchDB as the local storage to seamlessly sync data with IBM Cloudant.
They didn’t win, but they did an amazing job. It was brilliant watching them learn new technologies. All in all it was an amazing weekend. Here’s to next time. Cheers!