The Complete Mobile App Development Course with Flutter

Course

Online

£ 50 + VAT

Description

  • Type

    Course

  • Methodology

    Online

  • Start date

    Different dates available

Discover how to use Flutter, the popular open-source framework created by Google for developing Android and iOS apps. This course will show you how to build a complete Contacts App from scratch, and how to make the most of this high-performance, intuitive framework.

The app will feature editable fields for each contact’s name, email address, and phone number; customizable profile pictures; and native integration (such as writing emails and calling a contact from the app).

This course will cover:

How to write clean code
Setting up the UI
Working with widgets
Incorporating UI animations
Persistent storage
Using plugins for native functionality

…and more!

Frameworks and tools covered: Dart, Android SDK 8.0 and 9.0, Flutter SDK 1.2.1

Your Courses, Your Way

All of our project-based courses are designed to be flexible – you can access courses 24/7 to fit them around your schedule, and choose the learning materials that suit you best.

You can even download your course videos and watch them offline using the Zenva app, available on iOS and Android.

Learn from World-Class Instructors

Our course instructors participate in elite developer programs and have been recognized for their demonstrated excellence in development and teaching.

That way, you can be confident that you’re learning the most up-to-date content from industry experts.

Interactive Lessons with Codemurai

Our unlimited access package comes with free access to all of the courses in our mobile app, Codemurai!

Available on iOS and Android, it’s full of interactive programming lessons and exercises so you can continue your learning on the go.

Achieve Real Results

Our community of 1,000,000+ learners and developers have used the skills learned with us to publish their own games and websites, land their dream jobs, and even start their own businesses – and you have the potential to do the same!

Check out what our learners think below:

Facilities

Location

Start date

Online

Start date

Different dates availableEnrolment now open

About this course

No prior experience with Dart or mobile development is required for this course. However, familiarity with basic programming concepts (such as variables, objects, conditionals and so on) is assumed.

Questions & Answers

Add your question

Our advisors and other users will be able to reply to you

Who would you like to address this question to?

Fill in your details to get a reply

We will only publish your name and question

Reviews

This centre's achievements

2021

All courses are up to date

The average rating is higher than 3.7

More than 50 reviews in the last 12 months

This centre has featured on Emagister for 3 years

Subjects

  • Access
  • Email
  • Image
  • Project
  • Writing
  • Install

Course programme

Introduction 1:48


Introduction 1:48



1:48

Install Flutter on Windows 5:43


Install Flutter on Windows 5:43



5:43

Install Flutter on MacOS 3:21


Install Flutter on MacOS 3:21



3:21

Setup Android SDK 6:10


Setup Android SDK 6:10



6:10

Setup Android Emulator 2:57


Setup Android Emulator 2:57



2:57

Install VS Code 2:01


Install VS Code 2:01



2:01

Set up VS Code Flutter Plugins 3:34


Set up VS Code Flutter Plugins 3:34



3:34

Creating a Flutter Project 1:43


Creating a Flutter Project 1:43



1:43

Exploring the Project Structure 3:39


Exploring the Project Structure 3:39



3:39

Running the Default Demo App 1:51


Running the Default Demo App 1:51



1:51

What is a Widget 2:08


What is a Widget 2:08



2:08

Most Used Pre-built Widgets 4:56


Most Used Pre-built Widgets 4:56



4:56

Building a ContactsPage Widget 7:04


Building a ContactsPage Widget 7:04



7:04

Displaying a Vertical List 4:28


Displaying a Vertical List 4:28



4:28

Adding a ListView 3:39


Adding a ListView 3:39



3:39

Importing a 3rd Party Library 2:01


Importing a 3rd Party Library 2:01



2:01

Using the Faker Library 1:28


Using the Faker Library 1:28



1:28

Creating a Contact Model Class 4:49


Creating a Contact Model Class 4:49



4:49

Creating a List of Contacts 3:44


Creating a List of Contacts 3:44



3:44

Displaying Contacts in a ListView 3:07


Displaying Contacts in a ListView 3:07



3:07

Converting ContactsPage to a StatefulWidget 3:45


Converting ContactsPage to a StatefulWidget 3:45



3:45

Populating the Contacts to initState 2:32


Populating the Contacts to initState 2:32



2:32

Adding isFavorite to Contact Class 2:39


Adding isFavorite to Contact Class 2:39



2:39

Finishing isFavorite UI 4:23


Finishing isFavorite UI 4:23



4:23

Setting State 6:27


Setting State 6:27



6:27

Sorting Contacts Based on isFavorite 3:20


Sorting Contacts Based on isFavorite 3:20



3:20

Creating a Custom Widget 2:31


Creating a Custom Widget 2:31



2:31

State Management - Lifting State up and Callbacks 6:46


State Management - Lifting State up and Callbacks 6:46



6:46

State Management - Adding a ScopedModel 6:36


State Management - Adding a ScopedModel 6:36



6:36

Moving Functionality to ContactsModel 1:46


Moving Functionality to ContactsModel 1:46



1:46

Using a Scoped Model 3:04


Using a Scoped Model 3:04



3:04

Accessing the Model through ScopedModelDescendant 6:21


Accessing the Model through ScopedModelDescendant 6:21



6:21

Notifying Listeners of ScopedModel 2:04


Notifying Listeners of ScopedModel 2:04



2:04

Another Way of Accessing the Model 2:55


Another Way of Accessing the Model 2:55



2:55

Sorting the Contacts Alphabetically 6:25


Sorting the Contacts Alphabetically 6:25



6:25

Adding a ContactCreate Page 2:21


Adding a ContactCreate Page 2:21



2:21

Creating an Input Form 3:00


Creating an Input Form 3:00



3:00

Reason for Using Keys for Widgets 1:27


Reason for Using Keys for Widgets 1:27



1:27

Getting Data out of the Form with a Key 4:08


Getting Data out of the Form with a Key 4:08



4:08

Styling an Input Form 5:33


Styling an Input Form 5:33



5:33

Validating the name field 5:23


Validating the name field 5:23



5:23

Regular Expressions to Validate the Email 4:18


Regular Expressions to Validate the Email 4:18



4:18

Validating the Phone Number 2:53


Validating the Phone Number 2:53



2:53

Adding New Contacts to the ContactsModel 1:55


Adding New Contacts to the ContactsModel 1:55



1:55

Implementing the Saving of the Form 5:33


Implementing the Saving of the Form 5:33



5:33

Adding a Floating Action Button 2:13


Adding a Floating Action Button 2:13



2:13

Navigating using MaterialPageRoute 6:29


Navigating using MaterialPageRoute 6:29



6:29

Creating ContactEditPage 3:30


Creating ContactEditPage 3:30



3:30

Passing Edited Data to the ContactForm 2:50


Passing Edited Data to the ContactForm 2:50



2:50

Navigating to ContactEditPage 2:20


Navigating to ContactEditPage 2:20



2:20

Pre-populating ContactForm with Data 2:20


Pre-populating ContactForm with Data 2:20



2:20

Editing a Contact in the ContactModel 5:00


Editing a Contact in the ContactModel 5:00



5:00

Preserving isFavorite Value after Editing 4:54


Preserving isFavorite Value after Editing 4:54



4:54

Adding Null Safe Access Elvis Operators 1:40


Adding Null Safe Access Elvis Operators 1:40



1:40

Making List Items Slidable 4:27


Making List Items Slidable 4:27



4:27

Fixing Slidable UI with a Container 1:42


Fixing Slidable UI with a Container 1:42



1:42

Creating a Helper Build Function 1:58


Creating a Helper Build Function 1:58



1:58

Deleting a Contact from the ContactModel 1:27


Deleting a Contact from the ContactModel 1:27



1:27

Adding Default Images for Contacts 2:50


Adding Default Images for Contacts 2:50



2:50

Displaying a default image in ContactEditPage 2:52


Displaying a default image in ContactEditPage 2:52



2:52

Getting Device Dimensions with MediaQuery 2:59


Getting Device Dimensions with MediaQuery 2:59



2:59

Fixing ContactCreatePage’s Contact Image


Fixing ContactCreatePage’s Contact Image




Making a Hero Animation 5:55


Making a Hero Animation 5:55



5:55

Setting up the image_picker Library 2:07


Setting up the image_picker Library 2:07



2:07

Configuring Image Picker on iOS 3:10


Configuring Image Picker on iOS 3:10



3:10

Using the image_picker Library 3:49


Using the image_picker Library 3:49



3:49

Picking an Image from the Device 4:17


Picking an Image from the Device 4:17



4:17

Displaying the Picked Image in ContactForm 5:19


Displaying the Picked Image in ContactForm 5:19



5:19

Displaying Images while Creating a Contact 3:07


Displaying Images while Creating a Contact 3:07



3:07

Adding an Image Field to the Contact Class 1:15


Adding an Image Field to the Contact Class 1:15



1:15

Displaying the Contact’s Image in ContactTile


Displaying the Contact’s Image in ContactTile




Pre-populating an Edited Image in ContactEditPage 2:08


Pre-populating an Edited Image in ContactEditPage 2:08



2:08

SEMBAST and Other Packages for Data Persistence 2:29


SEMBAST and Other Packages for Data Persistence 2:29



2:29

Converting Contact Objects to Map 3:32


Converting Contact Objects to Map 3:32



3:32

Converting Map Objects to Contacts 4:10


Converting Map Objects to Contacts 4:10



4:10

Opening a SEMBAST Database 8:16


Opening a SEMBAST Database 8:16



8:16

Writing Asynchronous Code with Completer 6:39


Writing Asynchronous Code with Completer 6:39



6:39

Preparing for the Singleton Pattern 4:35


Preparing for the Singleton Pattern 4:35



4:35

Making AppDatabase into a Singleton 3:00


Making AppDatabase into a Singleton 3:00



3:00

Understanding How SEMBAST Stores Data 3:39


Understanding How SEMBAST Stores Data 3:39



3:39

Creating a Data Access Object for Contacts 6:12


Creating a Data Access Object for Contacts 6:12



6:12

Adding ID Field to Contact Class 2:57


Adding ID Field to Contact Class 2:57



2:57

Preserving the ID while Editing 1:27


Preserving the ID while Editing 1:27



1:27

Updating and Deleting Contacts with SEMBAST 4:12


Updating and Deleting Contacts with SEMBAST 4:12



4:12

Getting All Contacts in Sorted Order - Part 1 3:43


Getting All Contacts in Sorted Order - Part 1 3:43



3:43

Getting All Contacts in Sorted Order - Part 2 2:19


Getting All Contacts in Sorted Order - Part 2 2:19



2:19

Adding ContactDao to ContactsModel 2:46


Adding ContactDao to ContactsModel 2:46



2:46

Loading Contacts from ContactDao in ContactsModel 4:54


Loading Contacts from ContactDao in ContactsModel 4:54



4:54

Modifying ContactsModel to Work with ContactDao 3:03


Modifying ContactsModel to Work with ContactDao 3:03



3:03

Fixing Newly Broken Code 1:57


Fixing Newly Broken Code 1:57



1:57

Testing Persistent Storage Functionality 3:04


Testing Persistent Storage Functionality 3:04



3:04

Displaying a Loading Indicator 2:39


Displaying a Loading Indicator 2:39



2:39

Adding Back the Favoriting of Contacts 3:21


Adding Back the Favoriting of Contacts 3:21



3:21

Making Contacts Sortable based on isFavorite 4:57


Making Contacts Sortable based on isFavorite 4:57



4:57

Adding UI for Contacting the Contacts 2:48


Adding UI for Contacting the Contacts 2:48



2:48

Using url_launcher to Call a Contact 6:56


Using url_launcher to Call a Contact 6:56



6:56

Writing an Email to a Contact 1:42


Writing an Email to a Contact 1:42



1:42

Adding Padding to the ContactForm 0:58


Adding Padding to the ContactForm 0:58



0:58

Course conclusion 1:15


Course conclusion 1:15



1:15

Additional information

On-demand, 24/7 access 5.8 hours of video Certificate of completion Source code and PDF notes Closed captions

The Complete Mobile App Development Course with Flutter

£ 50 + VAT