We need to observe the REAL reachability of network. That's what RealReachability do. It introduces ping module for us to check the real network status, together with SCNetworkReachability API. And it uses FSM(finite state machine) to control all of the network status to confirm that only status change will be sent to application.
Dependency injection (DI) is a software design pattern that implements Inversion of Control (IoC) for resolving dependencies. In the pattern, Swinject helps your app split into loosely-coupled components, which can be developed, tested and maintained more easily. Swinject is powered by the Swift generic type system and first class functions to define dependencies of your app simply and fluently.
Apple has declared Swift as the first Protocol Oriented language. If you've tried to write protocol oriented code, you may have discovered that the promise isn't quite the reality. In this talk, you'll learn to rethink your types to avoid protocol problems without giving up their power.
Chris looks at how we can take standard networking code, and use Swift's features to make it generic and simple. While live-coding, he factors out common parts into a struct, so that the resulting code is easy to test and highly reusable.