- Offline First Web Development
- Daniel Sauble
- 320字
- 2021-07-30 10:30:48
Making the case to yourself
Unreliable and nonexistent Internet connectivity is a widespread problem, both in highly developed nations and nations that are less developed. Consider a few statistics from ITU, the United Nations specialized agency for information and communication technologies (http://www.itu.int/en/ITU-D/Statistics/Documents/facts/ICTFactsFigures2015.pdf):
- As of 2015, 4 billion people from developing countries remain offline
- Only 9.5% of the people in the least developed countries (LDCs) use the Internet
- Only 29% of the people in rural areas have mobile coverage that is 3G or faster
- Only 1 in 100 people in Africa have a fixed broadband subscription
If you optimize for a fast Internet connection, you are making an implicit decision about who you're designing for. If you don't want Internet connectivity to dictate who can use your app, design the offline experience first. Even if you're building an application that only Americans will use, consider that potentially 3 out of every 100 people are eking out a mere 56 kbps. Every megabyte has a large impact on their user experience and ISP bills.
This doesn't mean that you have to build an app that looks like Craigslist. There are intelligent ways to make an app scale its behavior based on the Internet connection available. You can even use location services to become aware about the potential dead zones in time to take preventative measures. We'll cover these strategies in Chapter 8, Networking While Offline.
Are you convinced that building with an offline-first mindset is a good idea? Great! Now, how do you sell this vision to the decision makers around you? Many activities have a negative impact on productivity in the short-term but a positive impact in the long-term: writing tests, conducting user research, including good comments in the source code, and so on. In the same way, switching to an offline-first paradigm can be perceived as an unnecessary distraction, even though the long-term benefits are clear. Let's address this now.
- Clojure Programming Cookbook
- PWA入門與實踐
- 高效微控制器C語言編程
- Python自動化運(yùn)維快速入門(第2版)
- 認(rèn)識編程:以Python語言講透編程的本質(zhì)
- 游戲程序設(shè)計教程
- MySQL數(shù)據(jù)庫管理與開發(fā)實踐教程 (清華電腦學(xué)堂)
- Protocol-Oriented Programming with Swift
- 常用工具軟件立體化教程(微課版)
- 深入淺出React和Redux
- Test-Driven Development with Django
- 零基礎(chǔ)看圖學(xué)ScratchJr:少兒趣味編程(全彩大字版)
- 青少年學(xué)Python(第2冊)
- TypeScript圖形渲染實戰(zhàn):2D架構(gòu)設(shè)計與實現(xiàn)
- Isomorphic Go