What is offline-first application design anyway


Programming
Posted 11/9/2016 1:10:14 PM by MICHAEL HAYNES, Associate Editor


What is offline-first application design anyway
Offline first application development is the latest iteration of progressive enhancement in application development. It means creating applications to work without internet access in the most resource constrained environments like underground train stations or in remote places abroad. Features can be added to make the applications more robust once internet access is available, but overall it provides users with a more consistent experience when using an application. 

We recently had a conversation with Bradley Holt, Developer Advocate at IBM to discuss why this movement is so important and why the future of application development lies within the ability to provide users access to data without relying on a network connection?

ADM: Why is it important for organizations and development teams to consider implementing an Offline First strategy?


Holt: The biggest advantage of an offline first strategy is it improves user experience, which is crucial to the success of an application and an area that every developer should strive to excel at. When developers build applications, they have reliable network connection and are working in an environment very different from what the user will experience so it’s important to consider all scenarios where the apps might be used.

An offline first approach is also critical for organizations that are targeting market share in developing countries. Developing countries’ network connection is not as advanced and an offline first approach creates applications that are built to work with as little network connection as possible, not the other way around.  

ADM: What are the benefits of Offline First and how does an Offline First development strategy improve user experience?


Holt: All application users can relate to receiving a notification that your application has stopped running due to lack of internet connection. Offline first prevents this roadblock and provides a consistent app experience for the user with or without an internet connection.

ADM: What attracted you to join the Offline First community and become an advocate for the Offline First movement?


Holt: I have been interested in decentralized networks and connections for a long time. I’ve written books on CouchDB and have always been curious about how moving features to the edges of the network improves accessibility. Offline first was a term coined in 2013 and when I came across it, I realized these were ideas I had already been thinking about. It simply explained the underlying techniques of how to improve application availability, and I quickly decided I wanted to be involved with this movement.

ADM: How does an Offline First strategy support the changing and evolving roles of developers?


Holt: Offline first is part of the bigger progressive web application movement and is one we expect to become a modern development practice. With an offline first approach, the application logic is pushed to the edges of the network and most of the application usage is on the end-user’s device, not the network. This also helps to break down the silos of front-end and back-end developers as the role of the two begins to become more blurred.

ADM: How is IBM supporting the Offline First movement and how does IBM implement Offline First strategies within its development teams?


Holt: The offline first movement is a small but growing community of developers and technology professionals, and IBM is taking the lead to support offline development strategies. For example, IBM sponsored the first ever offline camp. Offline camp brought developers from various organizations together in the Catskill Mountains to share offline first strategies they implement within their teams. IBM works closely with the community to collaboratively build awareness for offline first development. IBM Cloudant, IBM Verse and The Weather Company all have offline first strategies integrated into their underlying technology.

ADM: Where do you think the future of application development is headed and how will it change in the coming years?


Holt: The future of application development will be focused both on the user and developer experience. Progressive web applications make it easy for developers to digest and develop. We anticipate the offline first approach will become as popular as the mobile first movement and become a regular practice for developers. Most native applications already take an offline first approach by storing data locally on the device.

ADM: Don't we have ubiquitous connectivity? Why should I care about making my app work offline?


Holt: It is actually impossible to achieve 100% ubiquitous connectivity due to the distributed nature of networks. Also network availability in developing countries, on airplanes or in remote locations is unreliable and not guaranteed. Accepting this principle and designing applications to have more functionality when network connection is not available improves the usability of an application.

ADM: What are some of the biggest challenges to building Offline First apps?


Holt: Security is a big concern for offline first applications. An offline first approach means that most of the application data is stored on the user’s device, so a traditional practice of application security no longer applies. It challenges the security models of the typical client server architecture as more application logic is pushed to the client side.

ADM: What tools, frameworks, and design patterns are available for building Offline First apps?


Holt: There are a lot of tools available to developers to begin building offline first apps. Progressive web apps is one example and there are many open source and database tools like Cloudant, CouchDB and PouchDB that support offline first applications strategies.




Subscribe to App Developer Daily

Latest headlines delivered to you daily.