Flutter & Dart - The Complete Guide
A Complete Guide to the Flutter SDK & Flutter Framework for building native iOS and Android apps
Watch Promo Enroll in Course
Join the most comprehensive & bestselling Flutter course and learn how to build amazing iOS and Android apps!
Thanks to Flutter, you don't need to learn Android/ Java and iOS/ Swift to build real native mobile apps!
Because Flutter - a framework developed by Google - allows you to learn one language (Dart) and build beautiful native mobile apps in no time. Flutter is a SDK providing the tooling to compile Dart code into native code and also gives you a rich set of pre-built and pre-styled UI elements (so called widgets) which you can use to compose your user interfaces.
Because of its ease of use and flexibility, Flutter is an extremely popular solution for building native mobile apps for Android & iOS.
This course will teach Flutter & Dart from scratch, NO prior knowledge of either of the two is required! And you certainly don't need any Android or iOS development experience since the whole idea behind Flutter is to only learn one language.
The course will start at the very basics and teach you Flutter & Dart step-by-step, from the ground up. You'll learn about all core concepts, the base Dart syntax and also many crucial advanced features - therefore, by the end of the course, you'll be able to build your own Flutter apps.
Of course, you'll learn Flutter not only in theory but by building multiple, realistic demo apps, allowing you to apply what you learned on real examples.
With Flutter, you'll be able to write code only once and ship your apps both to the Apple AppStore and Google Play.
You can use the rich widget suite Flutter provides to add common UI elements like buttons, switches, forms, toolbars, lists and more. Or you simply build your own widgets - Flutter makes that a breeze, too. This course covers it all!
Here's what's included in the course:
- Detailed setup instructions for both macOS and Windows
- A thorough introduction to Flutter, Dart and the concept behind widgets
- An overview of the built-in widgets and how you may add your own ones
- Debugging tipps & tricks
- Page navigation with tabs, side drawers and stack-based navigation
- State management solutions
- Handling and validating user input
- Connecting your Flutter app to backend servers by sending HTTP requests
- User authentication
- Adding Google Maps
- Using native device features like the camera
- Adding beautiful animations & page transitions
- Image upload
- Push Notifications - manual approach and automated
- And more!
This course is for you if ...
- You're interested in building real native mobile apps for the two most popular mobile platforms - iOS and Android
- You want to explore the full set of features Flutter offers
- Don't want to spend hours learning two completely different languages
Course prerequisites:
- Basic programming language knowledge will help but is not required
- You DON'T need to know Flutter or Dart
- You DON'T need to know iOS (Swift/ObjectiveC) or Android (Java)
25+
hours
250+
lessons
Course Curriculum
-
PreviewWhat Is Flutter? (2:49)
-
PreviewWelcome To This Course! (1:16)
-
PreviewFlutter uses Dart! (1:51)
-
PreviewOne Codebase, Multiple Platforms (2:56)
-
PreviewFlutter Setup - Overview (3:58)
-
PreviewWindows Setup (13:26)
-
PreviewmacOS Setup (17:53)
-
PreviewProject Creation & Setting Up a Code Editor for Flutter Development (5:10)
-
PreviewRunning a First Flutter App (9:06)
-
PreviewUnderstanding Material Design (2:35)
-
PreviewAbout This Course (4:43)
-
StartCourse Resources (Code Snapshots, Community & Slides)
-
StartModule Introduction (1:21)
-
StartAnalyzing A New Flutter Project (8:50)
-
StartFrom Dart To Machine Code (3:05)
-
StartHow Programming Languages Work (5:51)
-
StartStarting From Scratch: Understanding Functions (6:05)
-
StartImporting Features From Packages (5:02)
-
StartHow Flutter Apps Start (2:26)
-
StartUnderstanding Widgets (2:52)
-
StartUsing a First Widget & Passing Values to Functions (4:37)
-
StartPositional & Named Arguments (3:58)
-
StartDeep Dive: Position & Named Arguments
-
StartCombining Multiple Widgets (2:50)
-
StartUnderstanding "const" Values (3:58)
-
StartBuilding More Complex Widget Trees (7:25)
-
StartUnderstanding Value Types (6:54)
-
StartConfiguring Widgets & Understanding Objects (7:24)
-
StartWorking with "Configuration Objects" (Non-Widget Objects) (5:14)
-
StartGenerics, Lists & Adding Gradient Colors (4:13)
-
StartHow To Configure Widgets & Objects (3:03)
-
StartPractice: Styling Text (3:27)
-
StartOnwards to Custom Widgets: Why Do You Need Them? (2:37)
-
StartUnderstanding Classes (5:01)
-
StartBuilding Custom Widgets (9:27)
-
StartWorking with Constructor Functions (5:56)
-
StartSplitting Code Across Files (3:18)
-
StartPractice: Create a Custom Widget (3:49)
-
StartIntroducing Variables (5:22)
-
StartVariables & Types - Combining Two Key Concepts (2:23)
-
Start"final" & "const" - Special Kinds Of "Variables" (4:53)
-
StartInstance Variables (Properties) & Configurable Widgets (10:03)
-
StartPractice: Reusable Widgets & Constructor Functions (6:40)
-
StartDisplaying Images & Using Multiple Constructor Functions (6:35)
-
StartAdding Buttons & Using Functions As Values (6:09)
-
StartStyling Buttons & Working with Padding (6:17)
-
StartHow NOT To Build Interactive Widgets (3:48)
-
StartIntroducing Stateful Widgets (15:06)
-
StartGenerating Random Numbers (7:54)
-
StartModule Summary (10:21)
-
StartKnowledge Check: Flutter & Dart Basics
-
StartModule Introduction (2:01)
-
StartA Challenge For You! (2:21)
-
StartChallenge Solution 1/2 - Creating a Widget (11:46)
-
StartChallenge Solution 2/2 - Working with More Widgets (17:05)
-
StartAdding Icons to Buttons (3:43)
-
StartAdding Transparency to Widgets (4:22)
-
StartRepetition & Exercise: Adding a Stateful Widget (10:50)
-
StartRendering Content Conditionally (7:02)
-
StartAccepting & Passing Functions as Values (9:16)
-
StartThe "initState" Method (4:28)
-
StartDeep Dive: Flutter's (Stateful) Widget Lifecyle
-
StartUsing Ternary Expressions & Comparison Operators (7:05)
-
StartUnderstanding "if" Statements (4:52)
-
StartUsing "if" Statements In Lists
-
Startif Statements & Comparison Operators
-
StartAdding a Data Model & Dummy Data (8:48)
-
StartConfiguring a Column (5:35)
-
StartCreating a Reusable, Custom Styled Button (12:05)
-
StartAccessing List Elements & Object Properties (5:53)
-
StartMapping Lists & Using the Spread Operator (7:45)
-
StartAlignment, Margin & Padding (3:57)
-
StartMutating Values in Memory (5:46)
-
StartManaging The Questions Index As State (5:49)
-
StartMore on Button Styling (1:20)
-
StartUsing Third-Party Packages & Adding Google Fonts (7:26)
-
StartPassing Data via Functions Across Widgets (13:18)
-
StartMore Conditions (4:27)
-
StartGetting Started with the Results Screen (8:02)
-
StartPassing Data to the Results Screen (2:40)
-
StartIntroducing Maps & "for" Loops (12:00)
-
StartUsing "for" Loops In Lists
-
StartAccessing Map Values & Using "Type Casting" (10:53)
-
StartCombining Columns & Rows (6:07)
-
StartExpanded To The Rescue! (3:07)
-
StartFiltering & Analyzing Lists (7:43)
-
StartMaking Content Scrollable with SingleChildScrollView (4:07)
-
StartTime to Practice: Flutter Basics - Problem (1:54)
-
StartTime to Practice: Flutter Basics - Solution (9:36)
-
StartBeyond the Basics: Optional, Important Dart Features (8:53)
-
StartModule Summary (7:32)
Course Prerequisites
Basic programming language will help but is not a must-have
You can use either Windows, macOS or Linux for Android app development - iOS apps can only be built on macOS though
You DON'T need to know Flutter or Dart
You DON'T need to know iOS (Swift/ObjectiveC) or Android (Java)
All pre-requisites are covered by courses in our "Academind Pro" Membership.
Don't take my word for it - here's what other students are saying.
Tomaž Lovrenčič
Very comprehensive and descriptive information is provided along the path. For most of us probably Dart itself is not the programming language we are have been working on other project, therefore a more "from the scratch" perspective is highly appropriate.
Vinu Pollyr
Very well taught, the instructor does a very good job at explaining the fundamentals and at the same time reflect on the latest practices in using flutter.
Stepheniec
Fantastic course so far. Maximillian is a very professional instructor, he speaks clearly and doesn't rush through concepts. Even at an absolute beginner's level, I feel very confident in the skills I'm learning already. I would 100% recommend this course.
30 Day Money Back Guarantee - No Questions Asked!
Our courses helped thousands of students learn something new and improve their lives.
We're so convinced by our course quality that we guarantee your success and provide a full refund within the first 30 days if you're not happy with the course.
Your Instructor
As a self-taught professional I really know the hard parts and the difficult topics when learning new or improving on already-known languages. This background and experience enable me to focus on the most relevant key concepts and topics. My track record of many 5-star rated courses, more than 2,500,000 students worldwide as well as a successful YouTube channel with 900.000 subscribers is the best proof for that.
The most rewarding experience for me is to see how people find new, better jobs, build awesome web applications, work on amazing projects or simply enjoy their hobby with the help of my content.
That's why, together with Manuel Lorenz, I founded Academind to offer the best possible learning experience and to share the pleasure of learning with our students.
Frequently Asked Questions
Join 3658 happy students!
Single-Course License
Full access to "Flutter & Dart - The Complete Guide"
$89
Access to this course only.
This is a one-time payment that grants access to this course only, not to any other courses.
Academind Pro Membership
Unlimited access to this and all other current & future courses!
$25/month
Cancel Anytime!
This is a recurring payment, charged automatically on a monthly basis. You can cancel anytime from inside your user profile to avoid being charged again once your billing cycle ends. For more information, please contact Academind.