Companies Home Search Profile

Dart and Flutter: The Complete Developer's Guide

Focused View

Stephen Grider

31:12:24

76 View
  • 001 How to Get Help.mp4
    01:03
  • 002 Course Resources.html
  • 002 diagrams.zip
  • 003 Join Our Community!.html
  • 004 Course Organization.mp4
    03:29
  • 001 Dart Overview.mp4
    02:43
  • 002 The Dartpad Editor.mp4
    02:19
  • 003 Our First Program.mp4
    02:32
  • 004 Pulling the Pieces Apart.mp4
    02:44
  • 005 Functions in Dart.mp4
    03:36
  • 006 Introduction to Types.mp4
    08:36
  • 007 Why Use Types.mp4
    05:36
  • 008 String Interpolation.mp4
    03:19
  • 009 Object Oriented Programming in Dart.mp4
    03:12
  • 010 Creating Classes.mp4
    04:33
  • 011 Creating Class Instances.mp4
    03:57
  • 012 Constructor Functions.mp4
    07:26
  • 013 Review on Constructors.mp4
    03:41
  • 001 App Overview.mp4
    01:12
  • 002 OOP Design Flow.mp4
    03:19
  • 003 Adding Fields to Classes.mp4
    05:59
  • 004 Associated Methods.mp4
    01:22
  • 005 More Initialization with Constructors.mp4
    02:52
  • 006 For Loops.mp4
    03:08
  • 007 Adding Elements to Lists.mp4
    03:56
  • 008 More on Variable Initialization.mp4
    04:46
  • 009 Customizing Print Statements.mp4
    03:35
  • 010 ToString on Cards.mp4
    04:30
  • 011 Shuffling a List.mp4
    06:11
  • 012 Annotating Argument Types.mp4
    04:42
  • 013 Filtering Lists.mp4
    03:46
  • 014 Annotating Argument Types.mp4
    02:39
  • 015 Filtering Lists.mp4
    05:49
  • 016 Shorthand Function Syntax.mp4
    07:14
  • 017 Removing Individual Records.mp4
    02:45
  • 018 RemoveCard Implementation.mp4
    06:08
  • 019 Named Parameters.mp4
    04:00
  • 001 Flutter Setup on MacOS.mp4
    02:01
  • 002 SDK Extraction.mp4
    02:02
  • 003 Editing the PATH Variable.mp4
    07:46
  • 004 XCode License.mp4
    01:24
  • 005 Generating Flutter Projects.mp4
    01:20
  • 001 Android Setup on MacOS.mp4
    01:58
  • 002 Android Dependencies.mp4
    01:17
  • 003 Android Project Setup.mp4
    01:13
  • 004 More Android Dependencies!.mp4
    01:25
  • 005 Android Emulator Creation.mp4
    01:51
  • 006 Flutter Startup.mp4
    01:27
  • 007 Finished Android Setup.mp4
    00:23
  • 001 iOS on Mac Setup.mp4
    01:06
  • 002 XCode Setup.mp4
    00:36
  • 003 iOS Simulator Startup.mp4
    01:44
  • 004 App Startup.mp4
    00:23
  • 001 Flutter Install.mp4
    03:39
  • 002 More Flutter Installation.mp4
    02:47
  • 003 Android Install.mp4
    00:47
  • 004 Additional Dependencies.mp4
    01:03
  • 005 Generating a Project.mp4
    00:53
  • 006 Selecting an Image.mp4
    01:49
  • 007 Starting the Emulator.mp4
    03:18
  • 008 Finishing Android Setup.mp4
    00:23
  • 001 Code Editor Setup.html
  • 002 Whats Flutter About, Anyways.mp4
    05:53
  • 003 App Overview.mp4
    02:07
  • 004 The Four Step Design Process.mp4
    04:14
  • 005 Import Statements.mp4
    04:36
  • 006 Creating Widgets.mp4
    04:56
  • 007 Displaying Content on Screen.mp4
    02:30
  • 008 Showing a Scaffold.mp4
    06:09
  • 009 Customizing the App Bar.mp4
    03:57
  • 010 Named Parameter Clarification.mp4
    05:02
  • 011 Required Parameters.mp4
    03:19
  • 012 Child Parameters.mp4
    02:17
  • 013 Displaying Icons.mp4
    05:48
  • 014 Adding Custom Widgets.mp4
    03:50
  • 001 Stateless vs Stateful Widgets.mp4
    04:15
  • 002 The Build Method.mp4
    04:00
  • 003 Local Import Statements.mp4
    05:34
  • 004 Quick Breather and Review.mp4
    03:17
  • 005 Refactoring Stateless to Stateful.mp4
    05:41
  • 006 More Refactoring to Stateful Widgets.mp4
    08:38
  • 001 Generics in Dart.mp4
    06:33
  • 002 Why Two Classes.mp4
    06:25
  • 001 Photos API.mp4
    03:06
  • 002 Working with JSON.mp4
    05:25
  • 003 Casting JSON to Model Instances.mp4
    04:02
  • 004 Named Constructors.mp4
    06:36
  • 005 Adding an Image Model.mp4
    05:44
  • 006 Function References.mp4
    03:41
  • 007 The HTTP Package.mp4
    04:09
  • 008 Issuing HTTP Requests.mp4
    02:54
  • 009 Handling Dart Futures.mp4
    07:50
  • 010 Parsing Future Responses into a Model.mp4
    04:17
  • 011 Updating the AppState Widget.mp4
    03:41
  • 012 Building Lists of Widgets.mp4
    04:57
  • 013 Sending Images to the ImageList.mp4
    03:35
  • 014 The Final Keyword.mp4
    05:32
  • 015 Building Lists with ListView.mp4
    05:56
  • 016 Listing URLs.mp4
    01:38
  • 017 Text to Images.mp4
    03:56
  • 018 Containers for Positioning.mp4
    08:07
  • 019 Adding Border Style.mp4
    07:19
  • 020 Column Widgets for Layout.mp4
    09:18
  • 021 Selective Padding.mp4
    05:05
  • 022 App Review.mp4
    04:47
  • 001 App Overview.mp4
    05:26
  • 002 Boilerplate App Code.mp4
    04:50
  • 003 Creating the Login Screen.mp4
    06:32
  • 004 More Container Styling.mp4
    04:31
  • 005 Labels and Hint Text.mp4
    08:45
  • 006 Customizing Keyboard Type.mp4
    03:21
  • 007 Handling Password Inputs.mp4
    05:09
  • 008 Displaying Buttons with RaisedButton.mp4
    04:11
  • 009 Changing Widget Colors.mp4
    01:35
  • 010 Layout Control.mp4
    08:05
  • 011 Form Validation.mp4
    03:44
  • 012 Referencing Widgets with Global Keys.mp4
    04:24
  • 013 The Form Widget and FormState.mp4
    05:18
  • 014 Creating a Global Key.mp4
    02:09
  • 015 Referencing FormState with Global Keys.mp4
    04:30
  • 016 Validating via FormState.mp4
    05:55
  • 017 Triggering Validation.mp4
    06:38
  • 018 Retrieving Form Values.mp4
    06:31
  • 019 Final Form Submittal.mp4
    04:02
  • 020 Code Reuse with Mixins.mp4
    03:54
  • 021 Mixin Validator Implementation.mp4
    05:11
  • 001 A Quick Detour.mp4
    01:00
  • 002 Streams by Analogy.mp4
    05:59
  • 003 Characteristics of Streams.mp4
    04:08
  • 004 StreamControllers and Sinks.mp4
    05:18
  • 005 Mapping a Stream.mp4
    02:39
  • 006 Adding a StreamTransformer.mp4
    04:25
  • 007 Implementing the Listener.mp4
    03:27
  • 008 Stream Review.mp4
    07:52
  • 009 Lets Build a Game.mp4
    05:35
  • 010 Why Streams.mp4
    09:47
  • 011 Word Guessing.mp4
    05:32
  • 012 Streams Take and Where Functions.mp4
    06:08
  • 013 Validation with Streams.mp4
    05:56
  • 014 Email Validation.mp4
    04:19
  • 015 Wiring up the Error.mp4
    04:35
  • 001 BLOCs vs Stateful Widgets.mp4
    06:42
  • 002 The Purpose of Streams with Blocs.mp4
    07:39
  • 003 Generating a New Project.mp4
    00:55
  • 004 App Boilerplate.mp4
    03:05
  • 005 Second Time on LoginScreen.mp4
    03:13
  • 006 TextFields with RaisedButtons.mp4
    07:48
  • 007 How to Use TextFields.mp4
    03:17
  • 008 BLOC Design for TextFields.mp4
    04:03
  • 009 Annotating Stream Types.mp4
    05:01
  • 010 Issues with Bloc Access.mp4
    06:26
  • 011 Shortcut Access with Getters.mp4
    08:40
  • 012 Public vs Private Fields.mp4
    07:32
  • 013 Improving the BLOC Api.mp4
    04:07
  • 014 Validation Transformers.mp4
    06:52
  • 015 A Technicality Around Mixins.mp4
    04:26
  • 016 Cleaning Up Controllers.mp4
    03:18
  • 017 Bloc Application.mp4
    06:49
  • 001 The StreamBuilder Widget.mp4
    11:26
  • 002 Streambuilder for Password Fields.mp4
    04:18
  • 003 Scoped Bloc Approach.mp4
    03:08
  • 004 Provider Implementation.mp4
    05:37
  • 005 The Providers of Function.mp4
    07:33
  • 006 The Providers Constructor.mp4
    02:16
  • 007 The Provider in Action.mp4
    03:19
  • 008 Accessing the Bloc.mp4
    05:32
  • 009 Breather and Review.mp4
    05:37
  • 010 Enabling Form Submission.mp4
    05:16
  • 011 Stream Merging Possibilities.mp4
    04:07
  • 001 Introducing RxDart.mp4
    04:13
  • 002 More on RxDart.mp4
    05:52
  • 003 The CombineLatest Function.mp4
    10:06
  • 004 CombineLatest in Action.mp4
    06:38
  • 005 More on StreamBuilder.mp4
    03:39
  • 006 Interpreting Stream Values.mp4
    05:57
  • 007 Broadcast Streams.mp4
    04:41
  • 008 Disabled by Default.mp4
    03:13
  • 009 Replacing Controllers with Subjects.mp4
    08:21
  • 010 Review of BLOCs.mp4
    03:23
  • 001 App Overview.mp4
    02:52
  • 002 Animation Library Classes.mp4
    10:37
  • 003 App Boilerplate.mp4
    02:47
  • 004 StatefulWidgets for Animations.mp4
    04:19
  • 005 Widget Structure.mp4
    02:26
  • 006 Displaying a Cat.mp4
    03:44
  • 007 The InitState Method.mp4
    03:54
  • 008 Declaring the TickerProvider.mp4
    05:45
  • 009 Tweens with Curves.mp4
    05:43
  • 010 Performance Savings with AnimatedBuilder.mp4
    05:02
  • 011 Nature of Animation.mp4
    07:01
  • 012 Starting the Animation.mp4
    01:47
  • 013 Watching for Taps with GestureDetector.mp4
    04:59
  • 014 Reversing Animation States.mp4
    06:34
  • 015 Building the Box.mp4
    03:27
  • 016 Layouts with the Stack Widget.mp4
    02:43
  • 017 Order of Drawing Widgets.mp4
    02:51
  • 018 Add Center Widget.mp4
    03:33
  • 019 Positioned Widgets.mp4
    11:06
  • 020 Expanding Stack Dimensions.mp4
    06:57
  • 021 Three Reasons for Strange Layouts.mp4
    07:16
  • 022 Positioned Constraints.mp4
    03:57
  • 023 Negative Offsets.mp4
    03:56
  • 024 Stack Clip Settings.mp4
    03:45
  • 025 Adjusting Tween Ranges.mp4
    02:19
  • 026 Adding Box Flaps.mp4
    03:28
  • 027 Rotating Widgets.mp4
    06:13
  • 028 Rotation by Radians.mp4
    06:14
  • 029 Changing Rotation Point.mp4
    03:37
  • 030 A Touch of Positioning.mp4
    05:18
  • 031 BoxAnimation Controller.mp4
    06:59
  • 032 Adding Animated Builders.mp4
    06:27
  • 033 Resetting Animations.mp4
    04:09
  • 034 Constraining Animation Range.mp4
    04:20
  • 035 Adding the Right Flap.mp4
    03:14
  • 036 Negative Rotation Values.mp4
    04:05
  • 037 Toggling Animation State.mp4
    02:36
  • 038 Animation Wrapup.mp4
    02:49
  • 001 App Overview.mp4
    03:08
  • 002 Hacker News API.mp4
    08:51
  • 003 More API Challenges.mp4
    08:04
  • 004 API Performance Strategy.mp4
    08:27
  • 005 Creating the ItemModel Class.mp4
    08:38
  • 006 A Few More ItemModel Properties.mp4
    05:24
  • 007 API Provider Implementation.mp4
    06:46
  • 008 Fetching Individual Items.mp4
    08:32
  • 001 Testing with Dart.mp4
    04:43
  • 002 A Few Imports.mp4
    05:09
  • 003 Writing Expectations.mp4
    05:22
  • 004 Mocking HTTP Requests.mp4
    05:52
  • 005 Returning JSON.mp4
    05:42
  • 006 Testing FetchItem.mp4
    05:17
  • 001 SQLite DB Provider.mp4
    04:03
  • 002 Database Imports.mp4
    04:27
  • 003 Async Constructors.mp4
    02:22
  • 004 Creating a DB Connection.mp4
    05:09
  • 005 Creating Tables with SQLite.mp4
    03:41
  • 006 Adding Table Columns.mp4
    04:22
  • 007 Issuing Queries.mp4
    07:55
  • 008 Multiple Named Constructors.mp4
    04:31
  • 009 Massaging DB Return Maps.mp4
    04:31
  • 010 Turning Class Instances to Maps.mp4
    08:41
  • 011 Implementing the Repository.mp4
    04:05
  • 012 More on the Repository.mp4
    07:09
  • 013 Type Annotations.mp4
    06:12
  • 014 Casting Lists.mp4
    03:31
  • 001 More on the Repository.mp4
    02:45
  • 002 Abstract Classes.mp4
    07:02
  • 003 The Need for Abstract Classes.mp4
    04:27
  • 004 Why Abstract Classes.mp4
    07:34
  • 005 More on Abstract Classes.mp4
    07:02
  • 006 Repository Interface Design.mp4
    07:16
  • 007 Defining the Source.mp4
    05:52
  • 008 Cache Definitions.mp4
    02:08
  • 009 Lists of Sources and Caches.mp4
    03:30
  • 010 Ultimate Reusability.mp4
    04:05
  • 011 Quick Gotcha.mp4
    02:18
  • 012 Another Quick Gotcha!.mp4
    01:07
  • 013 FetchTopIds Implementation.mp4
    02:28
  • 001 App Setup.mp4
    02:45
  • 002 A Touch of Boilerplate.mp4
    02:45
  • 003 Data Fetching Concerns.mp4
    10:12
  • 004 Solution Outline.mp4
    03:22
  • 005 FutureBuilder in Action.mp4
    12:04
  • 006 The Stories Provider.mp4
    06:02
  • 007 Bloc Design.mp4
    06:49
  • 008 Exposing Bloc Getters.mp4
    03:32
  • 009 Wiring up the Stories Provider.mp4
    03:20
  • 010 Bloc Testing.mp4
    07:51
  • 011 Type Annotations Solve Problems.mp4
    03:23
  • 012 Circular Progress Indicator.mp4
    03:20
  • 013 Item Fetching Architecture.mp4
    07:01
  • 014 Giant Gotcha with StreamBuilder.mp4
    08:33
  • 015 Giant Gotcha Solution.mp4
    07:16
  • 016 Implementing ScanStreamTransformer.mp4
    05:38
  • 017 Finishing the ScanStreamTransformer.mp4
    02:27
  • 018 Adding the Items Controller.mp4
    03:49
  • 019 A Gotcha Around Streams Impossible!.mp4
    03:28
  • 020 Single Transformer Application.mp4
    03:46
  • 021 The ListView Tile.mp4
    04:07
  • 022 StreamBuilder Setup.mp4
    03:27
  • 023 Wrapping Up the FutureBuilder.mp4
    03:56
  • 024 Double Gotcha!.mp4
    03:56
  • 025 Stream Subscriptions.mp4
    10:01
  • 026 Stream Subscription Fix.mp4
    01:13
  • 027 Additional Streams.mp4
    02:37
  • 028 A Laborious Refactor.mp4
    08:42
  • 029 Result of Refactor.mp4
    02:28
  • 030 Quick Debug Session.mp4
    03:57
  • 031 Resolving Database Conflicts.mp4
    09:00
  • 032 Building Story Tiles.mp4
    05:18
  • 033 Comments Icon.mp4
    04:43
  • 034 Applying Dividers with Height.mp4
    05:36
  • 035 Loading Container Stand-in.mp4
    03:23
  • 036 Building the Loading Container.mp4
    04:21
  • 037 Showing the Loading Container.mp4
    02:55
  • 038 Long-Lived Cache Values.mp4
    02:35
  • 039 Swipe to Refresh Indicator.mp4
    02:54
  • 040 Implementing a Refresh Widget.mp4
    04:33
  • 041 Clearing Database Tables.mp4
    07:51
  • 042 Communicating a Future to onRefresh.mp4
    08:22
  • 001 Navigation in Flutter.mp4
    04:05
  • 002 Map Based Routing.mp4
    05:56
  • 003 OnGenerateRoute-Based Navigation.mp4
    03:39
  • 004 OnGenerateRoute Implementation.mp4
    06:34
  • 005 Navigating in Style!.mp4
    10:05
  • 006 A PageRoute for NewsDetail.mp4
    07:25
  • 007 A Scaffold in NewsDetail.mp4
    03:41
  • 008 Parsing Route Settings.mp4
    04:43
  • 009 The Comments Bloc Provider.mp4
    06:04
  • 010 Comments Bloc Design.mp4
    05:12
  • 011 More on Comments Bloc.mp4
    07:35
  • 012 Recursive Data Fetching.mp4
    12:46
  • 013 Quick Fix.html
  • 014 Connecting the Comments Provider.mp4
    03:42
  • 015 Testing Recursive Fetching.mp4
    03:22
  • 016 Consuming the Item Map.mp4
    05:15
  • 017 Displaying the Story Title.mp4
    05:48
  • 018 Text Styling.mp4
    06:14
  • 019 Container Alignment.mp4
    05:31
  • 020 Building the Comments List.mp4
    07:29
  • 021 More Logic Extraction.mp4
    04:39
  • 022 The Comment Widget.mp4
    05:01
  • 023 Comments FutureBuilder.mp4
    03:21
  • 024 Showing Individual COmments.mp4
    06:34
  • 025 Recursive Rendering.mp4
    05:50
  • 026 Styling the Comment List.mp4
    04:26
  • 027 Defaulting Null Values.mp4
    03:37
  • 028 Handling Deleted Comments.mp4
    02:56
  • 029 Nested Comments.mp4
    03:26
  • 030 ListTiles ContentPadding Property.mp4
    05:24
  • 031 Replacing Placeholder Characters.mp4
    05:14
  • 032 Loading Containers for Comments.mp4
    02:56
  • 033 App Wrapup.mp4
    06:10
  • 034 Last Fix!.mp4
    01:41
  • 001 Dart Local Installation.mp4
    02:38
  • 002 Dart Install on Mac.mp4
    03:23
  • 003 Editor Setup for Dart.mp4
    03:43
  • 004 App Overview.mp4
    02:38
  • 005 Folder and File Structure.mp4
    06:43
  • 006 The PubSpec File.mp4
    03:08
  • 007 Running Dart Files.mp4
    03:58
  • 008 Program Design Methodology.mp4
    08:15
  • 009 Class Creation.mp4
    02:38
  • 010 Terminal Design.mp4
    03:15
  • 011 Terminal Implementation.mp4
    02:14
  • 012 Stdout and Stdin.mp4
    05:17
  • 013 Import Statements.mp4
    06:24
  • 014 Stdout Instance.mp4
    04:35
  • 015 More on Import Statements.mp4
    09:54
  • 016 Testing the Import Class.mp4
    03:22
  • 017 Checking Operating System.mp4
    03:51
  • 018 Clearing Windows Terminal.mp4
    02:23
  • 019 Clearing Other Terminals.mp4
    01:07
  • 020 Testing ClearScreen.mp4
    01:22
  • 021 Collecting Input Over Stdin.mp4
    07:12
  • 022 Option Class FIelds.mp4
    07:07
  • 023 Adding Dynamic Fields.mp4
    02:14
  • 024 Printing Individual Options.mp4
    06:58
  • 025 Testing Option Printing.mp4
    04:36
  • 026 List Shortcomings.mp4
    04:35
  • 027 Maps in Dart.mp4
    11:35
  • 028 Refactor to Maps.mp4
    03:43
  • 029 The Prompter Class.mp4
    04:00
  • 030 Testing the Prompter.mp4
    03:54
  • 031 Extracting the Terminal.mp4
    04:29
  • 032 Var vs Final for Variables.mp4
    07:01
  • 033 Finals Affect on Values.mp4
    06:01
  • 034 Consts Dual Nature.mp4
    06:22
  • 035 Consts Behavior by Type.mp4
    12:02
  • 036 Marking Terminal as Const.mp4
    02:12
  • 037 Private Variables.mp4
    07:22
  • 038 Finishing Prompter.mp4
    05:35
  • 039 Error Handling.mp4
    03:25
  • 040 Asking Binary Questions.mp4
    04:04
  • 041 Testing Binary Inputs.mp4
    04:20
  • 042 Code Similarities.mp4
    04:33
  • 043 Refactor for Code Reuse.mp4
    05:00
  • 044 More on Private.mp4
    05:15
  • 045 Central Lib File.mp4
    02:44
  • 046 A Single Export Point.mp4
    03:09
  • 047 A Relevant Example File.mp4
    03:16
  • 048 Outstanding Project Config.mp4
    02:53
  • 049 Uploading the Prompter Lib.mp4
    05:40
  • 001 App Overview.mp4
    02:51
  • 002 Project Setup.mp4
    04:05
  • 003 Importing Library Code.mp4
    05:38
  • 004 Forcibly Exiting a Program.mp4
    04:09
  • 005 Prompting for File Type.mp4
    03:27
  • 006 Implementation Flow.mp4
    04:13
  • 007 Working with the Current Directory.mp4
    05:07
  • 008 Filtering Non-Files.mp4
    07:13
  • 009 Filtering Non-Images.mp4
    03:29
  • 010 Building Options from Images.mp4
    06:03
  • 011 Testing Image Selection.mp4
    02:29
  • 012 Converting Images.mp4
    06:06
  • 013 The ConvertImage Function.mp4
    03:03
  • 014 Reading File Contents.mp4
    03:40
  • 015 Encoding to JPG or PNG.mp4
    03:39
  • 016 Writing Files to the Hard Drive.mp4
    05:33
  • 017 Returning the Image Name.mp4
    01:42
  • 018 Testing Image Conversion.mp4
    02:37
  • 019 Opening the Image.mp4
    03:23
  • 001 Bonus!.html
  • Description


    Everything you need to know for building mobile apps with Flutter and Dart, including RxDart and Animations!

    What You'll Learn?


    • Build beautiful multi-screen apps with Flutter
    • Understand the different approaches for loading and maintaining data in Flutter apps
    • Create and publish open source projects using Dart
    • Learn how to build offline-enabled apps with incredibly efficient data loading
    • Comprehend the best method for reading the incredible amount of Flutter documentation
    • Store long-term data on a user's physical device using SQLite
    • Master streams and understand reactive programming to create Flutter apps

    Who is this for?


  • Developers looking to build quality apps with Flutter
  • What You Need to Know?


  • Previous programming experience with Javascript, Java, Python, or similar is required .
  • More details


    Description

    If you're tired of spinning your wheels learning Swift or Android, this is the course for you.

    Animations? You will learn it.  Architectural Patterns? Included.  Navigation? Of course!

    Flutter is a newcomer to the mobile development scene.  Strongly supported by Google, it is already viewed as an ideal platform for replacing native Swift and Android development.  Thanks to its amazing standard library of widgets, fast compile times, and amazing documentation, developers are falling in love with Flutter!  

    This course supports MacOS and Windows - develop Android and iOS apps easily!

    Flutter apps are created using the language Dart.  No problem if you're not already familiar with Dart; this course includes a lightning fast introduction to Dart at the beginning, along with hours of bonus lectures at the end of the course solely focused on Dart and its advanced features.  If you come from a background working with Java, Ruby, or Javascript, you'll feel right at home with Dart - the syntax is nearly identical, only a few core concepts need to be learned.  Dart is a strongly typed language - but don't be discouraged if you're not a fan of strong types!  I spend special time in this course to make it extra clear why developing with a strongly typed language is a breeze!

    One of the greatest challenges around developing Flutter applications right now is understanding how to design and architect apps.  Flutter is still in rapid development, and the community at large is still trying to find out the best techniques.  With this in mind, special attention is paid in the course to making sure you understand the primary design patterns advocated by Google's Flutter team, including both the 'Stateful Widget' pattern and the 'BLOC' pattern.  The 'BLOC' pattern makes heavy use of Reactive Programming techniques, which you'll learn about in this course as well.  These techniques can be easily applied to other languages and frameworks as well - talk about a bonus!

    Of course, no mobile app is complete without some nice looking animations.  You'll learn how to build animations using Flutter's standard library of tools, which can be easily used to make interactions that your users will love.  You should plan to complete the course with knowledge of how to reference Flutter's standard library of widgets to assemble complex animations.

    Sign up today and you will:

    • Understand the Dart language and its primary features
    • Store information for long periods of time on the user's device with offline storage
    • Learn how to optimize network requests for improved performance on mobile networks
    • Delight your users with complex animations
    • Expose the functionality of your apps with multi-screen navigation
    • Steer through the incredible amount of Flutter documentation
    • Master Reactive Programming with streams by using RxDart
    • Implement advanced design patterns advocated by Google's official Flutter team
    • Handle user input with form validation
    • Learn to build open source Dart packages and distribute them to other developers

    I've built the course that I would have wanted to take when I was learning Flutter. A course that explains the concepts and how they're implemented in the best order for you to learn and deeply understand them.


    Who this course is for:

    • Developers looking to build quality apps with Flutter

    User Reviews
    Rating
    0
    0
    0
    0
    0
    average 0
    Total votes0
    Focused display
    Category
    Stephen Grider
    Stephen Grider
    Instructor's Courses
    Stephen Grider has been building complex Javascript front ends for top corporations in the San Francisco Bay Area.  With an innate ability to simplify complex topics, Stephen has been mentoring engineers beginning their careers in software development for years, and has now expanded that experience onto Udemy, authoring the highest rated React course. He teaches on Udemy to share the knowledge he has gained with other software engineers.  Invest in yourself by learning from Stephen's published courses.
    Students take courses primarily to improve job-related skills.Some courses generate credit toward technical certification. Udemy has made a special effort to attract corporate trainers seeking to create coursework for employees of their company.
    • language english
    • Training sessions 397
    • duration 31:12:24
    • English subtitles has
    • Release Date 2023/09/10