Let us try to build our own Network layer in pure Swift. It is super simple to build with Swift’s strong support for generics and type inference.

So let’s start with basics. This network layer is based on a URLSession object. By definition, this is an object that coordinates a group of related network data transfer tasks. You don’t even need to create a custom object of URLSession in most of the cases. We will also keep it simple and use the default shared instance.

Source: DZone