As retrieving data from the web is a hot topic, you'll find plenty of resources that deal with it. A good starting point is a short article on the official website explaining the process with a simple example. You can find it at https://flutter.dev/docs/cookbook/networking/fetch-data.
Multi-threading and asynchronous programming might be confusing for many developers when they first deal with it. There's a really useful guide at https://dart.dev/codelabs/async-await that thoroughly explains the main concepts of how to use this pattern with several examples and use cases.
Parsing JSON content can get complicated when data is complex. You can find a complete guide to it at https://flutter.dev/docs/development/data-and-backend/json.
For a deeper understanding of the ListView widget, a necessary step is reading the content at https://api.flutter.dev/flutter...