In this series we will tackle the problem of optimizing network access to fetch data from the network, a common theme of networked applications. While it is certainly trivial to fetch data from a server in any modern framework or OS, optimizing the frequency of access to the network, in order to save bandwidth, battery, user frustration, amongst other things, is complex. More so if you want to reduce code duplication, ensure testability, and leave something useful (and comprehensible) for the next engineer to use.
Any digital product is distributed to its users through channels such as smartphones, computers, and others. User experience is crucial to their success, and there is only a good UX with a good engineering process. This inseparable connection requires an extended implementation of the software development lifecycle (SDLC) so that engineering has the best possible information during implementation and can materialize the idea of the product as imagined.