We live in a networked world, and most modern applications need to access the network to retrieve information stored on a server running on the Internet (or on the user’s local network).
Even on a superfast connection, a request usually takes several milliseconds. Using blocking I/O and waiting for a response on the foreground thread of the application is not an option, as it would freeze the app and result in a pretty terrible user experience. Users would probably assume your app has died, and ...