The Complete Mobile App Development Course with Flutter [2019]

This course has been archived and is no longer supported. For our latest courses on app development, consider trying our evergreen learning pathways with a 1-Year Unlimited Access Package.

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!

WHO CAN TAKE THESE COURSES?

We start with the absolute basics and go through everything step-by-step – so even if you have zero experience in programming, you’ll be able to easily follow along.

More experienced? Whether you’re wanting to brush up, expand your skills, or learn a new technology, our courses are structured in a way that makes it easy to skip ahead to the lessons that are relevant and interesting to you.

REINFORCE YOUR LEARNING

Zenva’s courses feature quick challenges that will speed up your learning.

Access live coding lessons where you can practice coding right in your browser, and instantly see the results of any changes you make to the code:

Reinforce key concepts with in-course quizzes, which appear throughout courses:

COURSES BY THE WORLD’S BEST

Our course instructors aren’t just fun to learn from – they’re also industry practitioners, and have been formally certified for their excellent programming and teaching skills. That way, you can be confident that you’re developing strong, modern skills that will set you up for success as a developer.

YOUR COURSES, YOUR WAY

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

With an online platform optimized for all modern devices, you can even learn on the go!

✅ Watch video lessons

✅ Download course printouts

✅ Explore interactive lessons

✅ Practice with source code

✅ Build real projects

✅ Earn completion certificates

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:

⭐⭐⭐⭐⭐

MIHIR PATEL

I love the lectures, concise course objectives, and how they not only teach you enough to get started, but prepare you for the advanced stuff later down the road.

⭐⭐⭐⭐⭐

MONICA MANCUSI

With Zenva, I started learning a more accurate way to approach problems and develop solutions. It’s full of interesting topics that I love to learn in conjunction with my work.

⭐⭐⭐⭐⭐

CRAIG BICKFORD

I chose Zenva because of the large selection of topics and the fact that I can choose what courses I want to take whenever I want to take them. That level of freedom is unique to Zenva.

⭐⭐⭐⭐⭐

ANDREA CARDENAS-ROEDER

The Unity courses at Zenva helped me achieve a level of comfort with game development that I didn’t think was possible. They give you the confidence to expand your skills, and were so easy to understand.

Course Requirements
Introduction
Install Flutter on Windows
Install Flutter on MacOS
Setup Android SDK
Setup Android Emulator
Install VS Code
Set up VS Code Flutter Plugins
Creating a Flutter Project
Exploring the Project Structure
Running the Default Demo App
What is a Widget
Most Used Pre-built Widgets
Building a ContactsPage Widget
Displaying a Vertical List
Adding a ListView
Importing a 3rd Party Library
Using the Faker Library
Creating a Contact Model Class
Creating a List of Contacts
Displaying Contacts in a ListView
Converting ContactsPage to a StatefulWidget
Populating the Contacts to initState
Adding isFavorite to Contact Class
Finishing isFavorite UI
Setting State
Sorting Contacts Based on isFavorite
Creating a Custom Widget
State Management – Lifting State up and Callbacks
State Management – Adding a ScopedModel
Moving Functionality to ContactsModel
Using a Scoped Model
Accessing the Model through ScopedModelDescendant
Notifying Listeners of ScopedModel
Another Way of Accessing the Model
Sorting the Contacts Alphabetically
Adding a ContactCreate Page
Creating an Input Form
Reason for Using Keys for Widgets
Getting Data out of the Form with a Key
Styling an Input Form
Validating the name field
Regular Expressions to Validate the Email
Validating the Phone Number
Adding New Contacts to the ContactsModel
Implementing the Saving of the Form
Adding a Floating Action Button
Navigating using MaterialPageRoute
Creating ContactEditPage
Passing Edited Data to the ContactForm
Navigating to ContactEditPage
Pre-populating ContactForm with Data
Editing a Contact in the ContactModel
Preserving isFavorite Value after Editing
Adding Null Safe Access Elvis Operators
Making List Items Slidable
Fixing Slidable UI with a Container
Creating a Helper Build Function
Deleting a Contact from the ContactModel
Adding Default Images for Contacts
Displaying a default image in ContactEditPage
Getting Device Dimensions with MediaQuery
Fixing ContactCreatePage’s Contact Image
Making a Hero Animation
Setting up the image_picker Library
Configuring Image Picker on iOS
Using the image_picker Library
Picking an Image from the Device
Displaying the Picked Image in ContactForm
Displaying Images while Creating a Contact
Adding an Image Field to the Contact Class
Displaying the Contact’s Image in ContactTile
Pre-populating an Edited Image in ContactEditPage
SEMBAST and Other Packages for Data Persistence
Converting Contact Objects to Map
Converting Map Objects to Contacts
Opening a SEMBAST Database
Writing Asynchronous Code with Completer
Preparing for the Singleton Pattern
Making AppDatabase into a Singleton
Understanding How SEMBAST Stores Data
Creating a Data Access Object for Contacts
Adding ID Field to Contact Class
Preserving the ID while Editing
Updating and Deleting Contacts with SEMBAST
Getting All Contacts in Sorted Order – Part 1
Getting All Contacts in Sorted Order – Part 2
Adding ContactDao to ContactsModel
Loading Contacts from ContactDao in ContactsModel
Modifying ContactsModel to Work with ContactDao
Fixing Newly Broken Code
Testing Persistent Storage Functionality
Displaying a Loading Indicator
Adding Back the Favoriting of Contacts
Making Contacts Sortable based on isFavorite
Adding UI for Contacting the Contacts
Using url_launcher to Call a Contact
Writing an Email to a Contact
Adding Padding to the ContactForm
Course conclusion
Full Source Code – Mobile App Development with Flutter

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.

Tools and Frameworks

Dart, Android SDK 8.0 and 9.0, Flutter SDK 1.2.1

Why should I learn programming?

We’re living in the age of technology. In every industry, demand for developers is high and continues to rise, yet there’s a shortage of skilled developers. As a result, there’s a huge number of exciting opportunities out there for developers who want to take them.

By mastering the skills taught in these courses, you’ll prepare yourself for roles in a wide range of industries. Whether you want to work in a startup or a Fortune 500 company, you’ll learn in-demand knowledge and techniques that will help you to succeed.

What will I achieve by taking these courses?

You’ll not only learn the most in-demand modern languages, frameworks, and tools, but also how to apply them to your own projects and real-world situations.

Additionally, as our courses are primarily project-based, as you learn you’ll develop a rock-solid professional portfolio that can be used to impress potential employers.

Technology changes quickly. What happens if the content becomes outdated?

We’re committed to providing you with the most up-to-date, relevant content. If one of our courses becomes outdated due to modern practices, we’ll update it. Often, we’ll even remake it entirely using the latest versions of the languages, tools and frameworks.

We’re committed to keeping up with cutting-edge developments in the industry, and turn this knowledge into new courses, which we publish every month.

I’m an absolute beginner who’s never coded before. Can I still do these courses?

Yes, you can! We have entry-level courses on all key topics, and each of our curriculums feature guided learning paths that show you what courses are needed to reach your goals.

Additionally, if you need a little extra help, we have expert mentors on hand to answer any course-related questions that you might have.

What time commitment is needed?

We get that you’re busy, and so we’ve designed our courses to be completely flexible, so you can learn at your own pace and fit your courses around your schedule.

While we recommend that you put in at least a few hours a week (the more hours put in, the more you’ll get out!) there are no time limits or deadlines that you need to worry about.

Will these courses help me to change my career?

Many of our students have been able to successfully change their careers, land their dream job, get promoted, and even start their own businesses… and you have the potential to do the same!

You can also combine your existing skills with your new tech skills, and expand your career, rather than changing it completely.

Our courses have been designed to teach you highly transferable skills, and leave you with strong projects that can be added to your professional portfolio – whatever you want to do, we’ll help to get you there! 🙂

Buy Now For $50

OR access ALL Zenva courses with our subscription.

  • Access all 300+ courses
  • New courses added monthly
  • Cancel anytime
  • Certificates of completion

Subscribe

ZENVA'S SPRING SALE - Get 60% off the annual plan! Claim Offer
+
Don't miss out! Offer ends in