4.65 out of 5
4.65
91 reviews on Udemy

Flutter REST API Crash Course: Build a Coronavirus App

Build a Coronavirus Tracking App, and learn how to use REST APIs in Flutter
Instructor:
Andrea Bizzotto
3,712 students enrolled
English [Auto]
Build a simple, yet complete Coronavirus tracking application using REST APIs
Good app architecture: learn how to structure your code and keep it modular
Attention to detail and emphasis on writing a production-ready app

Welcome to this crash course, where you will learn how to use REST APIs with Dart and Flutter.

I created this course because REST APIs are used everywhere in today’s web. And if you master the basics of the Dart http library, you can write Flutter apps that can tap into thousands of web APIs.

In this crash course you will build a simple but completely functional Coronavirus tracker application in Flutter.


Included in this course

Short introduction to REST: what it is and how it works.

Overview of the nCoV 2019 health API. This is used to fetch global data about the Coronavirus outbreak.

Api keys & access tokens: what they are and how to use them.

REST Client: a VSCode extension that you can use to send HTTP requests and view the response directly in VS Code.

Design a REST API service using the Dart http package.

– Make requests and parse the JSON response data into strongly-typed model classes.

Build a dashboard UI with nice-looking cards that show the data from the API.

Combine multiple API requests into a single response by using futures.

Use a RefreshIndicator to get updated data from the API.

Error handling, and how to show alert dialogs to the user.

Data caching with Shared Preferences, so that the data is saved on device for offline use.

Most importantly, you will learn about good app architecture as a way to structure our code and keep it modular.

This course is all about mastering the basics. It covers many important topics, with attention to detail, and emphasis on how to write a production-ready app.

By the end of this course, you will be able to build Flutter apps that connect with any other REST API that you want to use.

Course organization

The course follows a linear structure, and shows how to build a fully functional application from scratch.

The content is divided into multiple sections, each covering a specific topic in detail.

Full source code is provided for each lesson, and the entire project is available on GitHub.

Premium Support

Beyond all the video content, premium support is included, so that you can ask questions if you get stuck. I’ll do my best to answer all questions within 24 hours – but please keep them relevant to the course material.

Prerequisites

This course is NOT for absolute beginners.

– You should already be familiar with the Dart Language. If you are not, you can follow my introduction to Dart, which is available for free on my YouTube channel.

– You should already have Flutter installed on your system, and Visual Studio Code or Android Studio configured for Flutter development.

– You should already have some knowledge of the most common Flutter widgets, and understand the difference between stateful and stateless widgets.

Teaching style

This is a fast-paced crash course. We will build a full application from scratch, but I will not explain every single step in detail. Instead, I will focus on the most important concepts, and always explain what we’re going to build and why, and then how to do it.

Enroll Today

If you want to learn how to build maintainable Flutter apps using REST APIs, and become a better software engineer, then this course is for you.

I’m very excited to share this course with you, so enroll now to get started.

Intro to REST, the nCoV 2019 REST API, and REST Client

1
RESTful APIs: The Basics
2
The nCoV 2019 Coronavirus API: Setup instructions, API Keys and Access Tokens
3
REST Client for VS Code: Initial setup & sending requests
4
Using Environment Variables and excluding sensitive data with .gitignore
5
REST Client: Adding the remaining requests
6
Useful Links & Resources

Building an API Service with the Dart http package

1
App Architecture Overview
2
Installing the http package
3
Saving the API key + GitHub source code + the Error Lens extension
4
The API class
5
The APIService class: requesting an access token

Important note about Android Release apk builds.

Some students have reported that running requests with the APIService implemented in this video leads to SocketException errors in release mode.

Here's a relevant StackOverflow thread:

Flutter Http error SocketException: OS Error: Connection refused

To fix this, follow these two steps:

  • Ensure that the AndroidManifest.xml file contains the Internet permission: uses-permission android:name="android.permission.INTERNET"

  • Add an 'Accept': 'application/json' header when making the request:

final response = await http.post( api.tokenUri().toString(), headers: { 'Accept': 'application/json', 'Authorization': 'Basic ${api.apiKey}' }, );

6
Parsing the http response and retrieving the access token
7
Using the API Service to show the access token
8
Adding the remaining endpoints to the API class
9
Requesting and parsing data from the remaining endpoints
10
Using the APIService class to show endpoint data
11
Recap on the APIService class
12
Useful Links & Resources

Building a Data Repository and creating the basic UI

1
The Data Repository
2
Loading and refreshing the access token when needed
3
Adding a Provider for the DataRepository
4
Creating a basic dashboard UI
5
Creating a custom card widget to show endpoint data
6
Loading the initial endpoint data from the API
7
Adding a refresh indicator
8
Useful Links & Resources

Loading data from multiple endpoints and polishing the UI

1
Loading data from multiple endpoints with Future.wait
2
The EndpointsData class
3
Improving the DataRepository class with generics and function arguments
4
Showing all the cards
5
Adding the icon assets to the project
6
Update the cards layout, image and color
7
Useful Links & Resources

Date formatting and reading the last updated date from the server

1
Showing when the data was last updated: client vs server approach
2
Parsing date information from the API response data
3
Creating a new data model to hold the date and value from the API
4
Showing the last updated date in the UI
5
Formatting dates with the intl package
6
Add thousands' separators with the NumberFormat class
7
Useful Links & Resources

Error handling and caching data with Shared Preferences

1
Error handling overview, and understanding the call stack
2
Showing an alert dialog to the user
3
Completing the error handling code
4
Introduction to data persistence with Shared Preferences
5
Writing a DataCacheService
6
Integrating the DataCacheService in the DataRepository
7
Injecting the DataCacheService in main.dart
8
Hot fix: The getter 'date' was called on null
9
Useful Links & Resources

Conclusions & next steps

1
Conclusion & next steps
You can view and review the lecture materials indefinitely, like an on-demand channel.
Definitely! If you have an internet connection, courses on Udemy are available on any device at any time. If you don't have an internet connection, some instructors also let their students download course lectures. That's up to the instructor though, so make sure you get on their good side!
4.7
4.7 out of 5
91 Ratings

Detailed Rating

Stars 5
57
Stars 4
30
Stars 3
3
Stars 2
0
Stars 1
1
a8f086532affe991147c60a771dcb334
30-Day Money-Back Guarantee

Includes

3 hours on-demand video
6 articles
Full lifetime access
Access on mobile and TV
Certificate of Completion

External Links May Contain Affiliate Links read more

Never Miss Any Course Join Our Telegram Channel Join Channel
+ +