Long-running tasks or asynchronous operations are common in mobile apps. For example, these operations can be fetching data over network, writing to database, reading data from a file, etc. To perform such operations in Flutter/Dart, we usually use a Future class and the keywords async and await. A Future class allows you to run work asynchronously to free up any other threads that should not be blocked. Like the UI thread.