Udemy
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
Development
Web Development Data Science Mobile Development Programming Languages Game Development Database Design & Development Software Testing Software Engineering Development Tools No-Code Development
Business
Entrepreneurship Communications Management Sales Business Strategy Operations Project Management Business Law Business Analytics & Intelligence Human Resources Industry E-Commerce Media Real Estate Other Business
Finance & Accounting
Accounting & Bookkeeping Compliance Cryptocurrency & Blockchain Economics Finance Finance Cert & Exam Prep Financial Modeling & Analysis Investing & Trading Money Management Tools Taxes Other Finance & Accounting
IT & Software
IT Certification Network & Security Hardware Operating Systems Other IT & Software
Office Productivity
Microsoft Apple Google SAP Oracle Other Office Productivity
Personal Development
Personal Transformation Personal Productivity Leadership Career Development Parenting & Relationships Happiness Esoteric Practices Religion & Spirituality Personal Brand Building Creativity Influence Self Esteem & Confidence Stress Management Memory & Study Skills Motivation Other Personal Development
Design
Web Design Graphic Design & Illustration Design Tools User Experience Design Game Design Design Thinking 3D & Animation Fashion Design Architectural Design Interior Design Other Design
Marketing
Digital Marketing Search Engine Optimization Social Media Marketing Branding Marketing Fundamentals Marketing Analytics & Automation Public Relations Advertising Video & Mobile Marketing Content Marketing Growth Hacking Affiliate Marketing Product Marketing Other Marketing
Lifestyle
Arts & Crafts Beauty & Makeup Esoteric Practices Food & Beverage Gaming Home Improvement Pet Care & Training Travel Other Lifestyle
Photography & Video
Digital Photography Photography Portrait Photography Photography Tools Commercial Photography Video Design Other Photography & Video
Health & Fitness
Fitness General Health Sports Nutrition Yoga Mental Health Dieting Self Defense Safety & First Aid Dance Meditation Other Health & Fitness
Music
Instruments Music Production Music Fundamentals Vocal Music Techniques Music Software Other Music
Teaching & Academics
Engineering Humanities Math Science Online Education Social Science Language Teacher Training Test Prep Other Teaching & Academics
AWS Certification Microsoft Certification AWS Certified Solutions Architect - Associate AWS Certified Cloud Practitioner CompTIA A+ Cisco CCNA Amazon AWS CompTIA Security+ AWS Certified Developer - Associate
Graphic Design Photoshop Adobe Illustrator Drawing Digital Painting InDesign Character Design Canva Figure Drawing
Life Coach Training Neuro-Linguistic Programming Personal Development Mindfulness Meditation Personal Transformation Life Purpose Emotional Intelligence Neuroscience
Web Development JavaScript React CSS Angular PHP WordPress Node.Js Python
Google Flutter Android Development iOS Development Swift React Native Dart Programming Language Mobile Development Kotlin SwiftUI
Digital Marketing Google Ads (Adwords) Social Media Marketing Google Ads (AdWords) Certification Marketing Strategy Internet Marketing YouTube Marketing Email Marketing Google Analytics
SQL Microsoft Power BI Tableau Business Analysis Business Intelligence MySQL Data Modeling Data Analysis Big Data
Business Fundamentals Entrepreneurship Fundamentals Business Strategy Online Business Business Plan Startup Blogging Freelancing Home Business
Unity Game Development Fundamentals Unreal Engine C# 3D Game Development C++ 2D Game Development Unreal Engine Blueprints Blender
2021-02-20 08:53:22
30-Day Money-Back Guarantee
Development Mobile Development Google Flutter

Flutter & Firebase: Build a Complete App for iOS & Android

Learn Dart, Flutter & Firebase by Google, and build a real-world, production ready app
Rating: 4.6 out of 54.6 (2,152 ratings)
8,487 students
Created by Andrea Bizzotto
Last updated 2/2021
English
English [Auto]
30-Day Money-Back Guarantee

What you'll learn

  • Build a complete, real-world app with Flutter & Firebase
  • Write iOS & Android apps with a single codebase
  • Write production-ready code following best practices and become a competent Flutter developer
  • Fast-track your Flutter learning with practical tips and proven techniques

Course content

25 sections • 409 lectures • 20h 50m total length

  • Preview01:50
  • Preview02:01
  • Preview03:24
  • Preview02:42
  • Preview00:34
  • Preview03:13

  • The Dart Language
    02:25
  • Introduction to Dartpad
    00:48
  • Preview01:42
  • Preview01:43
  • String interpolation
    03:03
  • Type inference with var
    03:13
  • Var and final
    01:54
  • The dynamic keyword
    01:53
  • Introduction to functions
    04:18
  • Function return types
    02:05
  • Optional parameters, nullability and default values
    02:31
  • Named parameters
    01:58
  • The arrow operator
    01:51
  • Introduction to classes
    02:01
  • Class constructors
    03:05
  • Instance methods
    02:14
  • Inheritance
    02:56
  • The super constructor
    01:59
  • The base Object class and the toString method
    01:48
  • Overriding the toString method
    05:25
  • Abstract classes
    03:21
  • More on abstract classes
    02:33
  • Using abstract classes with functions
    01:54
  • Computed properties
    02:39
  • Mixins
    04:37
  • Introduction to lists
    03:43
  • Introduction to maps
    03:31
  • Generics and type annotations
    04:53
  • If and else statements
    03:51
  • The ternary operator
    02:25
  • The while loop
    03:13
  • The for loop
    01:59
  • Closures and the fold method
    04:12
  • Enumerations
    02:45
  • Switch statements
    02:49
  • Wrap-up
    01:11
  • Useful Links & Resources
    00:03

  • macOS setup and Flutter 1.x
    00:18
  • Flutter setup on macOS
    02:39
  • Setting the PATH variable
    04:26
  • Flutter doctor
    00:50
  • Xcode and iOS simulator setup
    02:17
  • Installing Android Studio
    05:54
  • Installing the Android emulator
    02:20
  • Running Flutter from the command line
    05:21
  • Flutter setup on Android Studio
    03:35
  • Installing Visual Studio Code
    03:11
  • Useful Links & Resources
    00:05

  • Flutter setup on Windows
    01:27
  • Updating the path variable
    02:09
  • Flutter doctor
    00:54
  • Installing Android Studio
    04:27
  • Installing the Android emulator
    03:18
  • Running Flutter from the command line
    02:57
  • Flutter setup on Android Studio
    04:19
  • Installing Visual Studio Code
    02:52
  • Useful Links & Resources
    00:05

  • Creating a Flutter project with Android Studio
    03:28
  • A tour of the project folders
    02:40
  • Running the Android emulator and iOS simulator
    02:09
  • Overview of the Flutter counter app
    01:08
  • Hot reload and hot restart
    04:06
  • Introduction to widgets
    02:22
  • The MaterialApp widget
    01:51
  • The Scaffold widget
    02:37
  • Preview03:25
  • Preview02:42
  • Updating the counter with setState
    02:10
  • Wrap up
    01:10
  • Useful Links & Resources
    00:02
  • Shortcuts for VS Code and Android Studio
    00:11

  • Preview01:42
  • Switching between apps
    00:54
  • Writing the root widget of the app
    04:07
  • Adding the MaterialApp
    02:50
  • Adding some folders to our project
    02:19
  • Adding a sign-in page
    03:35
  • The ThemeData class
    02:12
  • The AppBar widget
    02:38
  • Preview of the SignInPage layout
    01:27
  • Adding a Column layout
    03:17
  • Preview03:55
  • Code formatting with dartfmt
    04:53
  • Adding some boxes and extracting code into a method
    03:39
  • Private methods
    03:25
  • Adding some padding
    04:33
  • Preview01:14
  • Text, TextStyle and FontWeight
    03:12
  • Introduction to buttons
    01:49
  • Adding the first button
    03:29
  • Preview04:14
  • Customising button colors
    03:09
  • MaterialColor explained
    03:08
  • Changing button shapes
    02:16
  • Making code reusable
    01:24
  • Creating a reusable custom RaisedButton
    06:39
  • Creating a reusable SignInButton
    04:13
  • Setting default values
    02:22
  • Making the button height configurable
    03:55
  • Adding the remaining buttons
    04:36
  • Adding logos: introduction
    01:17
  • Updating the pubspec.yaml file
    04:02
  • Image variants
    01:53
  • Adding an image inside a button
    03:33
  • Arranging widgets horizontally in a Row
    04:27
  • The Opacity widget
    02:39
  • Creating a custom SocialSignInButton
    05:58
  • The @required annotation
    05:03
  • Using assertions for better widget API design
    09:02
  • Useful Links & Resources
    00:02

  • Local and remote authentication
    03:56
  • Introduction to Firebase
    01:33
  • Creating a Firebase project
    02:03
  • Configuring Firebase for Android
    08:58
  • How to fix: "'keytool' is not recognized as an internal or external command"
    00:18
  • Configuring Firebase for iOS
    07:22
  • Installing the firebase_core and firebase_auth packages
    03:22
  • Initializing the Firebase App
    03:08
  • Running on iOS and updating Cocoapods
    01:25
  • Futures, async and await
    02:00
  • Signing in anonymously with Firebase
    04:15
  • The FirebaseAuth singleton and private constructors
    03:06
  • Explaining the short-hand syntax for callbacks
    01:25
  • Error handling with try/catch
    02:43
  • Useful Links & Resources
    00:26
  • Recommendations about choosing and updating packages
    00:15

  • Preview of the sign-in and sign-out flow
    03:09
  • Creating a landing page widget
    02:21
  • Adding a Firebase User to the LandingPage
    01:43
  • Adding a callback to the SignInPage
    02:54
  • Hooking up the onSignIn callback
    03:05
  • Creating the home page
    04:02
  • Adding the sign-out functionality
    02:46
  • Hooking up the onSignOut callback
    02:34
  • Retrieving the current user when the app starts
    02:11
  • Explaining global access and scoped access
    05:35
  • Creating the Auth class
    02:38
  • The abstract AuthBase class
    03:03
  • Using the Auth class
    04:36
  • Lifting state up and its drawbacks
    04:38
  • State Management & App Architecture
    02:30

  • Preview02:43
  • Preview04:01
  • Handling errors and closing streams
    04:51
  • The authStateChanges stream
    02:19
  • Listening to the authStateChanges stream
    02:36
  • Adding the StreamBuilder code
    04:33
  • More on StreamBuilder
    03:08
  • Refactoring the sign-in flows
    02:41
  • Wrap-up on Streams and StreamBuilder
    02:57
  • Useful Links & Resources
    00:01

  • Overview of the Firebase sign-in methods
    01:59
  • Enabling support for Google Sign In
    02:29
  • Adding Google Sign-In to the Auth class
    05:14
  • Hooking up Google Sign-In to our button
    01:34
  • Configuring Google Sign-In on iOS
    03:48
  • Google Sign-In flow explained
    02:50
  • Supporting Google Sign Out
    03:01
  • Testing Google Sign-In on Android
    02:56
  • Checklist: Google Sign-In Flutter setup on Android
    00:58
  • Viewing registered users on the Firebase console
    00:46
  • Registering a Facebook App
    07:32
  • Enabling Facebook Sign-In on Firebase
    02:28
  • Installing the Facebook login package
    01:23
  • Enabling MultiDex support on Android
    01:37
  • Adding the Facebook Sign-In code
    04:35
  • Testing Facebook Sign-In on Android
    03:35
  • Facebook iOS setup in Xcode
    04:39
  • Testing Facebook Sign-In on iOS
    02:10
  • Accessing the user's data and privacy considerations
    02:56
  • Useful Links & Resources
    00:05

Requirements

  • Experience with another programming language is beneficial, but not strictly required
  • NO prior Dart, Flutter and Firebase experience required
  • NO prior mobile app development experience required

Description

Want to learn how to build native mobile apps with Flutter?

Then you are in the right place. 

Flutter is a mobile framework by Google for building beautiful and fast native apps. Flutter is very productive and offers a rich set of widgets that makes building apps a breeze. Once you experience hot-reload and everything else Flutter has to offer, you will never want to go back.

In this course you will build a complete, real-world application for iOS and Android, by using Dart, Flutter and Firebase.

This course starts from the basics, and includes a full introduction to Dart and Flutter. This means that NO prior experience with Dart and mobile app development is needed.

As you make progress, the course will introduce more advanced topics, with special emphasis on writing production-ready code, so that you can learn how to build robust applications that scale.

And by learning Firebase as well, you will understand how to make modern reactive apps, and see why Flutter and Firebase are a great combination.

Important concepts are explained with clear diagrams. You will always learn what you will be building and why, and then how to do it.

This will give you a strong foundation, and the techniques you learn here will be valuable in your own Flutter apps.

So by the end of this course you will be a competent Flutter developer.

Course Structure

This is a complete course. With 21 hours of content, it will teach you everything you need to know about Flutter.

- Each lesson builds on top of the previous one (source code included).

- Each section covers a different topic.

You can follow the course from beginning to end, or choose the topics you’re most interested in.

Fast-track your learning

This course offers a lot of practical advice, along with tips and techniques that I have battle-tested over years of experience.

It goes far beyond "making things work", and gives you a very solid understanding of many different techniques and their trade-offs.

And it will show you how to think about problems and their solutions, with the mindset of a top professional software engineer.

So taking this course will save you a lot of time and money, and will prepare you for building real-world apps.

And if you get stuck, you can ask questions and they will be quickly answered.

Included in this course

  • Introduction to Dart

  • Setup instructions for macOS and Windows

  • Introduction to Flutter and widgets

  • Building layouts with Material & Cupertino widgets + build your own custom widgets

  • Navigation

  • Firebase Authentication (anonymous, email & password, Google, Facebook)

  • State Management: how to use setState, lifting state up via callbacks, global access, scoped access with Provider, BLoCs, ValueNotifier & ChangeNotifier

  • Streams, building reactive apps & advanced stream operations with RxDart

  • Forms, input handling and validation

  • Managing and updating packages

  • Databases and Cloud Firestore

  • Working with Forms and Cloud Firestore

  • Working with ListViews and multiple UI states

  • Date & time pickers

  • Unit & Widget tests with mockito (basics to advanced)

System requirements

  • Windows, macOS or Linux for Android app development

  • macOS for iOS app development

Who this course is for:

  • Beginner or intermediate Dart and Flutter developers
  • Experienced iOS and Android developers
  • Developers who want to write apps on iOS and Android with a single codebase
  • Developers that want to write modern, reactive apps with Firebase

Featured review

Cheryl Kirsten
Cheryl Kirsten
67 courses
6 reviews
Rating: 5.0 out of 5a year ago
Clear explanations, a useful practical application that demonstrates all the core things essential to building an app ready for release into the wild. Every step taken is clearly and thoroughly explained, plus downloadable code for every section of this course. A fantastic current course and is proving invaluable for strategies for building ideas for my own app. Cannot praise this course and Andrea's presentation highly enough.

Instructor

Andrea Bizzotto
Flutter GDE, Developer and Instructor
Andrea Bizzotto
  • 4.6 Instructor Rating
  • 2,849 Reviews
  • 24,313 Students
  • 3 Courses

I have extensive experience in mobile app development, having built complex apps for various clients and as an independent developer. I'm passionate about open source, teaching, and all things Flutter. In 2018, I started Code With Andrea, along with a YouTube channel and a blog, where I regularly share new articles and videos. All my learning materials have been very well received by new students and the Flutter community.

  • Udemy for Business
  • Teach on Udemy
  • Get the app
  • About us
  • Contact us
  • Careers
  • Blog
  • Help and Support
  • Affiliate
  • Impressum Kontakt
  • Terms
  • Privacy policy
  • Cookie settings
  • Sitemap
  • Featured courses
Udemy
© 2021 Udemy, Inc.