Network Abstraction Layer
Now a days software products want an abstraction layer on top of the third party libraries to make project more resilience to change or break in third party code. Sometimes third party free code stops supporting the newer versions of underlying client devices. So need of abstraction layer on top of third party reference code arises in the software industry to avoid heavy dependency on third party code. With this we can change the third party libraries without modifying the client application code.
ViewModel dispatch the service object to Network layer and receives the result from Network layer aka Network Manager, HTTPClient etc. In this way we can remove the client application direct dependency on Alamofire (a well known Network library).