本站已收录 番号和无损神作磁力链接/BT种子 

Udemy - Flutter & Firebase Build a Complete App for iOS & Android 2020-2 [AhLaN]

种子简介

种子名称: Udemy - Flutter & Firebase Build a Complete App for iOS & Android 2020-2 [AhLaN]
文件类型: 视频
文件数目: 397个文件
文件大小: 12.61 GB
收录时间: 2021-8-12 01:53
已经下载: 3
资源热度: 290
最近下载: 2024-11-28 05:11

下载BT种子文件

下载Torrent文件(.torrent) 立即下载

磁力链接下载

magnet:?xt=urn:btih:68ab6067caa4ddbbf2f057c65cdd18c7ae248c27&dn=Udemy - Flutter & Firebase Build a Complete App for iOS & Android 2020-2 [AhLaN] 复制链接到迅雷、QQ旋风进行下载,或者使用百度云离线下载。

喜欢这个种子的人也喜欢

种子包含的文件

Udemy - Flutter & Firebase Build a Complete App for iOS & Android 2020-2 [AhLaN].torrent
  • 06 Building Layouts/114 Using assertions for better widget API design.mp4110.33MB
  • 01 Course Introduction/001 Course Introduction.mp416.94MB
  • 01 Course Introduction/002 Course Content.mp417.69MB
  • 01 Course Introduction/003 App Overview.mp461.82MB
  • 01 Course Introduction/004 Making the most of this course.mp412.68MB
  • 01 Course Introduction/005 What is Flutter.mp416.7MB
  • 02 Introduction to Dart/006 The Dart Language.mp419.23MB
  • 02 Introduction to Dart/007 Introduction to Dartpad.mp43.13MB
  • 02 Introduction to Dart/008 A simple program.mp46.27MB
  • 02 Introduction to Dart/009 Variable declaration and initialization.mp412.2MB
  • 02 Introduction to Dart/010 String interpolation.mp411.96MB
  • 02 Introduction to Dart/011 Type inference with var.mp416.07MB
  • 02 Introduction to Dart/012 Var and final.mp49.44MB
  • 02 Introduction to Dart/013 The dynamic keyword.mp49.02MB
  • 02 Introduction to Dart/014 Introduction to functions.mp421.88MB
  • 02 Introduction to Dart/015 Function return types.mp411.52MB
  • 02 Introduction to Dart/016 Optional parameters nullability and default values.mp414.4MB
  • 02 Introduction to Dart/017 Named parameters.mp412.22MB
  • 02 Introduction to Dart/018 The arrow operator.mp412.41MB
  • 02 Introduction to Dart/019 Introduction to classes.mp413.29MB
  • 02 Introduction to Dart/020 Class constructors.mp419.74MB
  • 02 Introduction to Dart/021 Instance methods.mp413.36MB
  • 02 Introduction to Dart/022 Inheritance.mp418.52MB
  • 02 Introduction to Dart/023 The super constructor.mp413.68MB
  • 02 Introduction to Dart/024 The base Object class and the toString method.mp413.11MB
  • 02 Introduction to Dart/025 Overriding the toString method.mp437.77MB
  • 02 Introduction to Dart/026 Abstract classes.mp415.39MB
  • 02 Introduction to Dart/027 More on abstract classes.mp414.22MB
  • 02 Introduction to Dart/028 Using abstract classes with functions.mp410.98MB
  • 02 Introduction to Dart/029 Computed properties.mp416.56MB
  • 02 Introduction to Dart/030 Mixins.mp426.04MB
  • 02 Introduction to Dart/031 Introduction to lists.mp418.66MB
  • 02 Introduction to Dart/032 Introduction to maps.mp415.27MB
  • 02 Introduction to Dart/033 Generics and type annotations.mp423.46MB
  • 02 Introduction to Dart/034 If and else statements.mp416.83MB
  • 02 Introduction to Dart/035 The ternary operator.mp410.38MB
  • 02 Introduction to Dart/036 The while loop.mp414.62MB
  • 02 Introduction to Dart/037 The for loop.mp49.11MB
  • 02 Introduction to Dart/038 Closures and the fold method.mp420.06MB
  • 02 Introduction to Dart/039 Enumerations.mp412.95MB
  • 02 Introduction to Dart/040 Switch statements.mp417.28MB
  • 02 Introduction to Dart/041 Wrap-up.mp49.62MB
  • 03 Flutter setup on macOS/044 Flutter setup on macOS.mp427.13MB
  • 03 Flutter setup on macOS/045 Setting the PATH variable.mp459.12MB
  • 03 Flutter setup on macOS/046 Flutter doctor.mp413.3MB
  • 03 Flutter setup on macOS/047 Xcode and iOS simulator setup.mp433.77MB
  • 03 Flutter setup on macOS/048 Installing Android Studio.mp445.85MB
  • 03 Flutter setup on macOS/049 Installing the Android emulator.mp416.24MB
  • 03 Flutter setup on macOS/050 Running Flutter from the command line.mp475.37MB
  • 03 Flutter setup on macOS/051 Flutter setup on Android Studio.mp433.09MB
  • 03 Flutter setup on macOS/052 Installing Visual Studio Code.mp429.13MB
  • 04 Flutter setup on Windows/054 Flutter setup on Windows.mp419.23MB
  • 04 Flutter setup on Windows/055 Updating the path variable.mp428.55MB
  • 04 Flutter setup on Windows/056 Flutter doctor.mp413.35MB
  • 04 Flutter setup on Windows/057 Installing Android Studio.mp456.82MB
  • 04 Flutter setup on Windows/058 Installing the Android emulator.mp431.38MB
  • 04 Flutter setup on Windows/059 Running Flutter from the command line.mp436.83MB
  • 04 Flutter setup on Windows/060 Flutter setup on Android Studio.mp448.02MB
  • 04 Flutter setup on Windows/061 Installing Visual Studio Code.mp432.07MB
  • 05 Introduction to Flutter/063 Creating a Flutter project with Android Studio.mp456.69MB
  • 05 Introduction to Flutter/064 A tour of the project folders.mp437.69MB
  • 05 Introduction to Flutter/065 Running the Android emulator and iOS simulator.mp430.2MB
  • 05 Introduction to Flutter/066 Overview of the Flutter counter app.mp413.55MB
  • 05 Introduction to Flutter/067 Hot reload and hot restart.mp446.68MB
  • 05 Introduction to Flutter/068 Introduction to widgets.mp426.46MB
  • 05 Introduction to Flutter/069 The MaterialApp widget.mp423.72MB
  • 05 Introduction to Flutter/070 The Scaffold widget.mp436.43MB
  • 05 Introduction to Flutter/071 The Flutter widget tree.mp440.12MB
  • 05 Introduction to Flutter/072 Stateless and stateful widgets.mp430.06MB
  • 05 Introduction to Flutter/073 Updating the counter with setState.mp427.84MB
  • 05 Introduction to Flutter/074 Wrap up.mp413.2MB
  • 06 Building Layouts/077 Overview of the Time tracker app.mp419.39MB
  • 06 Building Layouts/078 Switching between apps.mp412.76MB
  • 06 Building Layouts/079 Writing the root widget of the app.mp425.35MB
  • 06 Building Layouts/080 Adding the MaterialApp.mp419.5MB
  • 06 Building Layouts/081 Adding some folders to our project.mp418.97MB
  • 06 Building Layouts/082 Adding a sign-in page.mp425.33MB
  • 06 Building Layouts/083 The ThemeData class.mp421.57MB
  • 06 Building Layouts/084 The AppBar widget.mp420.05MB
  • 06 Building Layouts/085 Preview of the SignInPage layout.mp410.94MB
  • 06 Building Layouts/086 Adding a Column layout.mp425.58MB
  • 06 Building Layouts/087 The CrossAxisAlignment property.mp433.18MB
  • 06 Building Layouts/088 Code formatting with dartfmt.mp445.49MB
  • 06 Building Layouts/089 Adding some boxes and extracting code into a method.mp435.2MB
  • 06 Building Layouts/090 Private methods.mp431.01MB
  • 06 Building Layouts/091 Adding some padding.mp447.5MB
  • 06 Building Layouts/092 The MainAxisAlignment property.mp413.35MB
  • 06 Building Layouts/093 Text TextStyle and FontWeight.mp434.06MB
  • 06 Building Layouts/094 Introduction to buttons.mp418.74MB
  • 06 Building Layouts/095 Adding the first button.mp432.64MB
  • 06 Building Layouts/096 Button callbacks explained.mp440.59MB
  • 06 Building Layouts/097 Customising button colors.mp433.61MB
  • 06 Building Layouts/098 MaterialColor explained.mp436.12MB
  • 06 Building Layouts/099 Changing button shapes.mp423.15MB
  • 06 Building Layouts/100 Making code reusable.mp413.99MB
  • 06 Building Layouts/101 Creating a reusable custom RaisedButton.mp461.92MB
  • 06 Building Layouts/102 Creating a reusable SignInButton.mp432.98MB
  • 06 Building Layouts/103 Setting default values.mp421.86MB
  • 06 Building Layouts/104 Making the button height configurable.mp435.22MB
  • 06 Building Layouts/105 Adding the remaining buttons.mp450.39MB
  • 06 Building Layouts/106 Adding logos introduction.mp414.48MB
  • 06 Building Layouts/107 Updating the pubspec.yaml file.mp447.83MB
  • 06 Building Layouts/108 Image variants.mp418.72MB
  • 06 Building Layouts/109 Adding an image inside a button.mp436.48MB
  • 06 Building Layouts/110 Arranging widgets horizontally in a Row.mp447.28MB
  • 06 Building Layouts/111 The Opacity widget.mp429.22MB
  • 06 Building Layouts/112 Creating a custom SocialSignInButton.mp460.11MB
  • 06 Building Layouts/113 The required annotation.mp460.96MB
  • 07 Firebase Authentication/116 Local and remote authentication.mp438.85MB
  • 07 Firebase Authentication/117 Introduction to Firebase.mp410.92MB
  • 07 Firebase Authentication/118 Creating a Firebase project.mp420.05MB
  • 07 Firebase Authentication/119 Configuring Firebase for Android.mp475.31MB
  • 07 Firebase Authentication/120 Configuring Firebase for iOS.mp459.98MB
  • 07 Firebase Authentication/121 Installing the firebase_auth package.mp425.85MB
  • 07 Firebase Authentication/122 Running on iOS using the Xcode legacy build system.mp447.59MB
  • 07 Firebase Authentication/123 Running on Android.mp47.91MB
  • 07 Firebase Authentication/124 Migrating to AndroidX.mp444.42MB
  • 07 Firebase Authentication/125 Signing in anonymously with Firebase.mp438.86MB
  • 07 Firebase Authentication/126 Futures async and await.mp459.65MB
  • 07 Firebase Authentication/127 The FirebaseAuth singleton and private constructors.mp432.57MB
  • 07 Firebase Authentication/128 Explaining the short-hand syntax for callbacks.mp412.66MB
  • 07 Firebase Authentication/129 Error handling with trycatch.mp428MB
  • 08 Full Authentication Flow State Management Dependency Injection/132 Preview of the sign-in and sign-out flow.mp429.98MB
  • 08 Full Authentication Flow State Management Dependency Injection/133 Creating a landing page widget.mp417.97MB
  • 08 Full Authentication Flow State Management Dependency Injection/134 Adding a FirebaseUser to the LandingPage.mp415.3MB
  • 08 Full Authentication Flow State Management Dependency Injection/135 Adding a callback to the SignInPage.mp425.5MB
  • 08 Full Authentication Flow State Management Dependency Injection/136 Hooking up the onSignIn callback.mp424.96MB
  • 08 Full Authentication Flow State Management Dependency Injection/137 Updating the SignInPage with setState.mp413.77MB
  • 08 Full Authentication Flow State Management Dependency Injection/138 Creating the home page.mp436.53MB
  • 08 Full Authentication Flow State Management Dependency Injection/139 Adding the sign-out functionality.mp423.82MB
  • 08 Full Authentication Flow State Management Dependency Injection/140 Hooking up the onSignOut callback.mp425.42MB
  • 08 Full Authentication Flow State Management Dependency Injection/141 Retrieving the current user when the app starts.mp434.15MB
  • 08 Full Authentication Flow State Management Dependency Injection/142 Fixing the code in initState.mp444.81MB
  • 08 Full Authentication Flow State Management Dependency Injection/143 Explaining global access and scoped access.mp422.21MB
  • 08 Full Authentication Flow State Management Dependency Injection/144 Creating the Auth class.mp424.41MB
  • 08 Full Authentication Flow State Management Dependency Injection/145 Creating the User class.mp429.91MB
  • 08 Full Authentication Flow State Management Dependency Injection/146 The abstract AuthBase class.mp427.05MB
  • 08 Full Authentication Flow State Management Dependency Injection/147 Using the Auth class.mp466.36MB
  • 08 Full Authentication Flow State Management Dependency Injection/148 Lifting state up and its drawbacks.mp434.84MB
  • 08 Full Authentication Flow State Management Dependency Injection/149 State Management App Architecture.mp418.26MB
  • 09 Streams and StreamBuilder/150 Introduction to Streams.mp414.55MB
  • 09 Streams and StreamBuilder/151 Streams in practice with DartPad.mp421.41MB
  • 09 Streams and StreamBuilder/152 Handling errors and closing streams.mp431.45MB
  • 09 Streams and StreamBuilder/153 The onAuthStateChanged stream.mp412.43MB
  • 09 Streams and StreamBuilder/154 Type safety with Streams.mp422.51MB
  • 09 Streams and StreamBuilder/155 Stream.map explained.mp423.4MB
  • 09 Streams and StreamBuilder/156 Listening to the onAuthStateChanged stream.mp425.74MB
  • 09 Streams and StreamBuilder/157 Introduction to StreamBuilder.mp432.73MB
  • 09 Streams and StreamBuilder/158 Adding a CircularProgressIndicator.mp422.24MB
  • 09 Streams and StreamBuilder/159 More on StreamBuilder.mp438.07MB
  • 09 Streams and StreamBuilder/160 Refactoring the sign-in flows.mp443.07MB
  • 09 Streams and StreamBuilder/161 Fixing the StreamBuilder code.mp425.27MB
  • 09 Streams and StreamBuilder/162 Summary on Streams and StreamBuilder.mp420.06MB
  • 10 Google and Facebook Sign-In/164 Overview of the Firebase sign-in methods.mp412.16MB
  • 10 Google and Facebook Sign-In/165 Enabling support for Google Sign In.mp417.28MB
  • 10 Google and Facebook Sign-In/166 Adding Google Sign-In to the Auth class.mp465.05MB
  • 10 Google and Facebook Sign-In/167 Hooking up Google Sign-In to our button.mp421.05MB
  • 10 Google and Facebook Sign-In/168 Configuring Google Sign-In on iOS.mp450.1MB
  • 10 Google and Facebook Sign-In/169 Google Sign-In flow explained.mp431.64MB
  • 10 Google and Facebook Sign-In/170 Supporting Google Sign Out.mp421.76MB
  • 10 Google and Facebook Sign-In/171 Testing Google Sign-In on Android.mp426.11MB
  • 10 Google and Facebook Sign-In/173 Viewing registered users on the Firebase console.mp44.78MB
  • 10 Google and Facebook Sign-In/174 Registering a Facebook App.mp476MB
  • 10 Google and Facebook Sign-In/175 Enabling Facebook Sign-In on Firebase.mp421.89MB
  • 10 Google and Facebook Sign-In/176 Adding the Facebook Sign-In code.mp460.99MB
  • 10 Google and Facebook Sign-In/177 Testing Facebook Sign-In on Android.mp435.61MB
  • 10 Google and Facebook Sign-In/178 Facebook iOS setup in Xcode.mp447.22MB
  • 10 Google and Facebook Sign-In/179 Testing Facebook Sign-In on iOS.mp420.59MB
  • 10 Google and Facebook Sign-In/180 Accessing the users data and privacy considerations.mp430.16MB
  • 11 Email Password Sign-In Handling Text Input/182 Preview of the email password sign-in page.mp419.61MB
  • 11 Email Password Sign-In Handling Text Input/183 Creating the email password sign-in page.mp420.09MB
  • 11 Email Password Sign-In Handling Text Input/184 Passing the BuildContext across methods.mp422.34MB
  • 11 Email Password Sign-In Handling Text Input/185 Introduction to navigation.mp451.6MB
  • 11 Email Password Sign-In Handling Text Input/186 Adding a Card widget.mp418.44MB
  • 11 Email Password Sign-In Handling Text Input/187 Adding the email and password text fields.mp448.27MB
  • 11 Email Password Sign-In Handling Text Input/188 Adding the submit buttons.mp425.66MB
  • 11 Email Password Sign-In Handling Text Input/189 Creating a FormSubmitButton widget.mp434.14MB
  • 11 Email Password Sign-In Handling Text Input/190 Adding a TextEditingController.mp459.86MB
  • 11 Email Password Sign-In Handling Text Input/191 Toggling the form type.mp476.65MB
  • 11 Email Password Sign-In Handling Text Input/192 Adding the email password authentication code.mp443.38MB
  • 11 Email Password Sign-In Handling Text Input/193 Implementing the submit method.mp438.55MB
  • 11 Email Password Sign-In Handling Text Input/194 Testing email password sign-in.mp436.25MB
  • 11 Email Password Sign-In Handling Text Input/195 Customising the email and password text fields.mp444.7MB
  • 11 Email Password Sign-In Handling Text Input/196 Using FocusNode and FocusScope.mp464.32MB
  • 11 Email Password Sign-In Handling Text Input/197 Disabling the submit button on empty email or password.mp463.81MB
  • 11 Email Password Sign-In Handling Text Input/198 Adding a StringValidator class.mp422.6MB
  • 11 Email Password Sign-In Handling Text Input/199 Adding an email and password validation mixin.mp430.84MB
  • 11 Email Password Sign-In Handling Text Input/200 Showing an error text when the email or password are invalid.mp438.81MB
  • 11 Email Password Sign-In Handling Text Input/201 Tweaking form submission.mp460.36MB
  • 11 Email Password Sign-In Handling Text Input/202 Simulating a slow network with a delay.mp434.47MB
  • 11 Email Password Sign-In Handling Text Input/203 Adding a loading state to our form.mp445.57MB
  • 11 Email Password Sign-In Handling Text Input/204 Updating the email focus logic.mp427.08MB
  • 11 Email Password Sign-In Handling Text Input/205 Fixing the vertical overflow on small screens.mp445.44MB
  • 11 Email Password Sign-In Handling Text Input/206 Wrap-up.mp447.9MB
  • 12 Platform-Aware Dialogs/208 Introduction to dialogs.mp413.89MB
  • 12 Platform-Aware Dialogs/209 Showing a dialog.mp433.14MB
  • 12 Platform-Aware Dialogs/210 Dismissing dialogs.mp423.23MB
  • 12 Platform-Aware Dialogs/211 Platform-aware widgets on iOS Android more.mp442.43MB
  • 12 Platform-Aware Dialogs/212 Creating a PlatformWidget base class.mp425.82MB
  • 12 Platform-Aware Dialogs/213 Creating a PlatformAlertDialog widget.mp483.14MB
  • 12 Platform-Aware Dialogs/214 Showing the PlatformAlertDialog.mp464.8MB
  • 12 Platform-Aware Dialogs/215 Tweaking the PlatformAlertDialog.mp450.89MB
  • 12 Platform-Aware Dialogs/216 Adding a sign-out confirmation alert.mp440.23MB
  • 12 Platform-Aware Dialogs/217 Adding a cancel button to the PlatformAlertDialog.mp449.59MB
  • 13 Scoped Access with InheritedWidget and Provider/219 Introduction to InheritedWidget.mp435.23MB
  • 13 Scoped Access with InheritedWidget and Provider/220 Creating an AuthProvider.mp452.42MB
  • 13 Scoped Access with InheritedWidget and Provider/221 Accessing the Auth object via the AuthProvider.mp478.72MB
  • 13 Scoped Access with InheritedWidget and Provider/222 Adding the provider package.mp412.97MB
  • 13 Scoped Access with InheritedWidget and Provider/223 Adding MultiDex support on Android.mp424.26MB
  • 13 Scoped Access with InheritedWidget and Provider/224 Using the Provider class.mp444.3MB
  • 13 Scoped Access with InheritedWidget and Provider/226 Wrap-up about scoped access.mp424.11MB
  • 14 Polishing the Authentication Flows/228 Module Introduction.mp412.25MB
  • 14 Polishing the Authentication Flows/229 PlatformException explained.mp435.87MB
  • 14 Polishing the Authentication Flows/230 Creating a PlatformExceptionAlertDialog.mp425.23MB
  • 14 Polishing the Authentication Flows/231 Customising error messages.mp445.98MB
  • 14 Polishing the Authentication Flows/232 Using PlatformException on the SignInPage.mp448.56MB
  • 14 Polishing the Authentication Flows/233 Adding a loading state overview.mp49.93MB
  • 14 Polishing the Authentication Flows/234 Adding a loading state to the SignInPage.mp429.75MB
  • 14 Polishing the Authentication Flows/235 Using the loading state in the SignInPage.mp437.19MB
  • 14 Polishing the Authentication Flows/236 The dispose method.mp433.46MB
  • 15 BLoCs/237 Introduction to state management with BLoCs.mp445.97MB
  • 15 BLoCs/238 The application layers.mp49.68MB
  • 15 BLoCs/239 BLoCs sinks streams and asynchronous code.mp424.64MB
  • 15 BLoCs/240 Introduction to the SignInBloc.mp418.23MB
  • 15 BLoCs/241 Implementing a simple BLoC.mp424.01MB
  • 15 BLoCs/242 Adding a Bloc with Provider inside a static method.mp428.3MB
  • 15 BLoCs/243 Adding the StreamBuilder code.mp427.64MB
  • 15 BLoCs/244 Converting the SignInPage to a stateless widget.mp437.21MB
  • 15 BLoCs/245 The difference between Provider.of and Consumer.mp438.5MB
  • 15 BLoCs/246 Disposing BLoCs with Provider.mp48.88MB
  • 15 BLoCs/247 Adding authentication code to the SignInBloc.mp457.26MB
  • 15 BLoCs/248 Updating the SignInPage.mp426.04MB
  • 15 BLoCs/249 Fixing the BLoC submit method.mp428.5MB
  • 15 BLoCs/250 Summary on the BLoC basics.mp48MB
  • 15 BLoCs/251 Introduction to the email sign-in flow with BLoC.mp420.55MB
  • 15 BLoCs/252 Creating a model class for the EmailSignInForm.mp425.41MB
  • 15 BLoCs/253 Creating the EmailSignInBloc with a StreamController.mp417.25MB
  • 15 BLoCs/254 Updating the model.mp456.38MB
  • 15 BLoCs/255 Adding the BLoC submit method.mp449.21MB
  • 15 BLoCs/256 Setting up the EmailSignInFormBlocBased with Provider.mp460.96MB
  • 15 BLoCs/257 Refactoring the EmailSignInFormBlocBased widget by removing the state variables.mp486.12MB
  • 15 BLoCs/258 Moving the business logic to the BLoC class.mp440.25MB
  • 15 BLoCs/259 Fixing the EmailSignInBloc submit method.mp49.53MB
  • 15 BLoCs/260 Moving more business logic to the model class.mp474.56MB
  • 15 BLoCs/261 The benefits of separation of concerns with BLoC.mp422.19MB
  • 15 BLoCs/262 Using stateful widgets with TextEditingControllers.mp431.07MB
  • 15 BLoCs/263 Considerations about performance.mp420.14MB
  • 15 BLoCs/264 Blocs and Services in the widget tree.mp419.41MB
  • 16 State Management with Provider/265 Recap on State Management.mp413.08MB
  • 16 State Management with Provider/266 Introduction to ValueNotifier.mp419.03MB
  • 16 State Management with Provider/267 Adding a ValueNotifier with ChangeNotifierProvider.mp453.22MB
  • 16 State Management with Provider/268 Consumer and ChangeNotifierProvider explained.mp442.89MB
  • 16 State Management with Provider/269 Differences between BLoCstreams and ValueNotifierChangeNotifierProvider.mp422.38MB
  • 16 State Management with Provider/270 Introduction to ChangeNotifier.mp414.26MB
  • 16 State Management with Provider/271 Adding the EmailSignInChangeModel class.mp447.36MB
  • 16 State Management with Provider/272 Completing the EmailSignInChangeModel class.mp427.46MB
  • 16 State Management with Provider/273 Implementing the email sign-in form with ChangeNotifier.mp463.18MB
  • 16 State Management with Provider/274 Comparing ValueNotifier and ChangeNotifier.mp429.02MB
  • 16 State Management with Provider/275 Wrap up on State Management.mp421.06MB
  • 16 State Management with Provider/276 Wrap up on the Authentication Flows.mp414.29MB
  • 17 Databases and Cloud Firestore/278 Overview of the time tracker app.mp419.36MB
  • 17 Databases and Cloud Firestore/279 Database schema and SQL vs NoSQL.mp439.76MB
  • 17 Databases and Cloud Firestore/280 Introduction to Cloud Firestore.mp422.72MB
  • 17 Databases and Cloud Firestore/281 Documents and Collections.mp415.66MB
  • 17 Databases and Cloud Firestore/282 Getting started with Firestore.mp424.63MB
  • 17 Databases and Cloud Firestore/283 Designing a Database API with CRUD operations.mp426.56MB
  • 17 Databases and Cloud Firestore/284 Managing private user data with Cloud Firestore.mp424.9MB
  • 17 Databases and Cloud Firestore/285 Installing Cloud Firestore.mp411.03MB
  • 17 Databases and Cloud Firestore/286 Renaming the HomePage to JobsPage.mp428.53MB
  • 17 Databases and Cloud Firestore/287 Adding the Database class.mp420.83MB
  • 17 Databases and Cloud Firestore/288 Adding the Database Provider.mp418.22MB
  • 17 Databases and Cloud Firestore/289 Adding a FloatingActionButton.mp425.31MB
  • 17 Databases and Cloud Firestore/290 Writing data to Firestore.mp469.65MB
  • 17 Databases and Cloud Firestore/291 Defining a strongly-typed Job model class.mp438.19MB
  • 17 Databases and Cloud Firestore/292 Defining a common API path class.mp423.77MB
  • 17 Databases and Cloud Firestore/293 Adding a generic setData method.mp434.02MB
  • 17 Databases and Cloud Firestore/294 Adding security rules.mp439.04MB
  • 17 Databases and Cloud Firestore/295 Handling Firestore permissions errors.mp444.82MB
  • 17 Databases and Cloud Firestore/296 Reading data from Firestore.mp455.47MB
  • 17 Databases and Cloud Firestore/297 Reading and parsing Firestore data streams.mp443.29MB
  • 17 Databases and Cloud Firestore/298 Adding a StreamBuilder to show a list of jobs.mp445.35MB
  • 17 Databases and Cloud Firestore/299 Debugging the StreamBuilder code.mp452.8MB
  • 17 Databases and Cloud Firestore/300 Firestore as a realtime database.mp422MB
  • 17 Databases and Cloud Firestore/301 Adding a factory constructor to our model class.mp427.42MB
  • 17 Databases and Cloud Firestore/302 Adding a generic method to read Firestore streams.mp435.64MB
  • 17 Databases and Cloud Firestore/303 Adding a FirestoreService class.mp452.48MB
  • 17 Databases and Cloud Firestore/304 Wrap-up on Cloud Firestore.mp436.22MB
  • 18 Working with Forms and Cloud Firestore/306 Introduction to Forms with Cloud Firestore.mp414.33MB
  • 18 Working with Forms and Cloud Firestore/307 Adding a new job page.mp450.68MB
  • 18 Working with Forms and Cloud Firestore/308 The Placeholder widget.mp443.6MB
  • 18 Working with Forms and Cloud Firestore/309 Introduction to Form and TextFormField.mp436.8MB
  • 18 Working with Forms and Cloud Firestore/310 Validating and saving Form data.mp486.72MB
  • 18 Working with Forms and Cloud Firestore/311 Accessing the Database object with the correct BuildContext.mp445.51MB
  • 18 Working with Forms and Cloud Firestore/312 Saving jobs with a unique document ID.mp452.46MB
  • 18 Working with Forms and Cloud Firestore/313 Handling errors.mp418.84MB
  • 18 Working with Forms and Cloud Firestore/314 Enforcing unique job names.mp439.12MB
  • 18 Working with Forms and Cloud Firestore/315 Fixing the integer-parsing code.mp416.65MB
  • 18 Working with Forms and Cloud Firestore/316 Editing existing jobs overview.mp48.51MB
  • 18 Working with Forms and Cloud Firestore/317 Adding a custom JobListTile.mp440.67MB
  • 18 Working with Forms and Cloud Firestore/318 Repurposing the AddJobPage for editing jobs.mp456.57MB
  • 18 Working with Forms and Cloud Firestore/319 Reading the documentID from Firestore.mp430.05MB
  • 18 Working with Forms and Cloud Firestore/320 Completing the code for editing jobs.mp449.72MB
  • 18 Working with Forms and Cloud Firestore/321 Wrap up on working with Forms.mp428.54MB
  • 19 Working with ListViews and multiple UI states/323 Intro and multiple states of UI.mp413.06MB
  • 19 Working with ListViews and multiple UI states/324 Adding an empty content widget.mp437.02MB
  • 19 Working with ListViews and multiple UI states/325 Adding a reusable list items builder.mp448.18MB
  • 19 Working with ListViews and multiple UI states/326 Using ListView.builder.mp455.92MB
  • 19 Working with ListViews and multiple UI states/327 Using ListView.separated.mp432.68MB
  • 19 Working with ListViews and multiple UI states/328 Deleting jobs from Firestore.mp431.78MB
  • 19 Working with ListViews and multiple UI states/329 Adding swipe to delete support.mp479.71MB
  • 20 Working with Date Time Pickers more on Cloud Firestore/330 Working with entries overview.mp416.62MB
  • 20 Working with Date Time Pickers more on Cloud Firestore/331 Relational data drawbacks of NoSQL databases.mp440.42MB
  • 20 Working with Date Time Pickers more on Cloud Firestore/332 Getting ready to add new files.mp47.78MB
  • 20 Working with Date Time Pickers more on Cloud Firestore/333 Adding the source files to the project.mp432.94MB
  • 20 Working with Date Time Pickers more on Cloud Firestore/334 Connecting the new code and updating the Firestore rules.mp432.34MB
  • 20 Working with Date Time Pickers more on Cloud Firestore/335 Fixing the EditJobPage navigation.mp438.96MB
  • 20 Working with Date Time Pickers more on Cloud Firestore/336 Overview of the JobEntriesPage.mp430.56MB
  • 20 Working with Date Time Pickers more on Cloud Firestore/337 Reading and writing entries with Firestore.mp460.42MB
  • 20 Working with Date Time Pickers more on Cloud Firestore/338 The EntryListItem widget (using InkWell and Expanded).mp424.85MB
  • 20 Working with Date Time Pickers more on Cloud Firestore/339 Formatting dates and currencies with the Intl package.mp427.17MB
  • 20 Working with Date Time Pickers more on Cloud Firestore/340 Dart as UI Spreads and Collection-if.mp433.23MB
  • 20 Working with Date Time Pickers more on Cloud Firestore/341 Using date pickers with stateful widgets.mp464.14MB
  • 20 Working with Date Time Pickers more on Cloud Firestore/342 Date and time input with a custom UI and DateTimePicker.mp447.37MB
  • 20 Working with Date Time Pickers more on Cloud Firestore/343 Updating the UI when a Job changes.mp458.58MB
  • 20 Working with Date Time Pickers more on Cloud Firestore/344 Wrap up and CupertinoDatePicker.mp414.77MB
  • 21 Bottom Navigation with the Cupertino widgets/346 Introduction to bottom navigation.mp419.2MB
  • 21 Bottom Navigation with the Cupertino widgets/347 Multiple navigation stacks.mp412.86MB
  • 21 Bottom Navigation with the Cupertino widgets/348 Creating a HomePage with a selected tab.mp436.54MB
  • 21 Bottom Navigation with the Cupertino widgets/349 Adding a CupertinoTabScaffold.mp470.29MB
  • 21 Bottom Navigation with the Cupertino widgets/350 Testing the bottom navigation.mp428.38MB
  • 21 Bottom Navigation with the Cupertino widgets/351 Adding the widget builders.mp451.98MB
  • 21 Bottom Navigation with the Cupertino widgets/352 Replacing the FloatingActionButtons.mp450.34MB
  • 21 Bottom Navigation with the Cupertino widgets/353 Moving the logout button to the AccountPage.mp425.59MB
  • 21 Bottom Navigation with the Cupertino widgets/354 Presenting modal routes with the root navigator.mp437.38MB
  • 21 Bottom Navigation with the Cupertino widgets/355 Using Provider with listen false to minimise rebuilds.mp450.33MB
  • 21 Bottom Navigation with the Cupertino widgets/356 The CupertinoPageRoute.mp412.72MB
  • 21 Bottom Navigation with the Cupertino widgets/357 Handling the Android back button with WillPopScope and navigator keys.mp466.65MB
  • 21 Bottom Navigation with the Cupertino widgets/358 Adding pop-to-root navigation.mp420.66MB
  • 21 Bottom Navigation with the Cupertino widgets/359 Wrap up on multiple navigators.mp420.5MB
  • 22 Advanced Stream Operations with RxDart/361 Introduction to advanced stream operations.mp422.06MB
  • 22 Advanced Stream Operations with RxDart/362 Introduction to RxDart.mp422.95MB
  • 22 Advanced Stream Operations with RxDart/363 Observable.combineLatest and data transformations in the time tracker app.mp428.7MB
  • 22 Advanced Stream Operations with RxDart/364 Adding the source code for the new entries page.mp419.21MB
  • 22 Advanced Stream Operations with RxDart/365 Reviewing the UI code for the entries page.mp450.71MB
  • 22 Advanced Stream Operations with RxDart/366 Using combineLatest in practice.mp439.81MB
  • 22 Advanced Stream Operations with RxDart/367 Data manipulation in the EntriesBloc.mp451.84MB
  • 22 Advanced Stream Operations with RxDart/368 Wrap up on Observables.mp417.61MB
  • 22 Advanced Stream Operations with RxDart/369 Single subscription vs broadcast streams.mp420.46MB
  • 22 Advanced Stream Operations with RxDart/370 PublishSubject ReplaySubject BehaviorSubject.mp420.05MB
  • 22 Advanced Stream Operations with RxDart/371 Adding a BehaviorSubject to the EmailSignInBloc.mp440.46MB
  • 22 Advanced Stream Operations with RxDart/372 Wrap up and notes about local and remote state management.mp413.97MB
  • 23 Completing the Time Tracker App/374 Completing the time tracker app overview.mp46.33MB
  • 23 Completing the Time Tracker App/375 Accessing the User object in the AccountPage.mp437.37MB
  • 23 Completing the Time Tracker App/376 Adding an Avatar image.mp446.92MB
  • 23 Completing the Time Tracker App/377 Finishing the Avatar code.mp434.11MB
  • 23 Completing the Time Tracker App/378 Fixing a small bug in the entries page.mp415.23MB
  • 23 Completing the Time Tracker App/379 Wrapping up the time tracker app.mp44.62MB
  • 24 Unit Widget Tests with Mockito/380 Introduction to writing tests.mp418.7MB
  • 24 Unit Widget Tests with Mockito/381 Testing Flutter Apps.mp419.47MB
  • 24 Unit Widget Tests with Mockito/382 Writing the first unit test.mp425.77MB
  • 24 Unit Widget Tests with Mockito/383 Running tests.mp410.2MB
  • 24 Unit Widget Tests with Mockito/384 Checking and fixing errors in tests.mp410.92MB
  • 24 Unit Widget Tests with Mockito/385 Testing edge cases by writing and fixing failing tests.mp423.14MB
  • 24 Unit Widget Tests with Mockito/386 Grouping tests together.mp428.71MB
  • 24 Unit Widget Tests with Mockito/387 The setUp method and testing date formatting with locales.mp438MB
  • 24 Unit Widget Tests with Mockito/388 The test lifecycle methods.mp413.07MB
  • 24 Unit Widget Tests with Mockito/389 Completing the formatting tests.mp439.53MB
  • 24 Unit Widget Tests with Mockito/390 Testing model classes.mp438.68MB
  • 24 Unit Widget Tests with Mockito/391 hashCode and the operator.mp455.72MB
  • 24 Unit Widget Tests with Mockito/392 Adding a toString() method wrap up on unit tests.mp454.7MB
  • 24 Unit Widget Tests with Mockito/393 Introduction to widget tests.mp439.04MB
  • 24 Unit Widget Tests with Mockito/394 Finding widgets and matcher arguments.mp433.01MB
  • 24 Unit Widget Tests with Mockito/395 Testing widget callbacks.mp429.34MB
  • 24 Unit Widget Tests with Mockito/396 Working with Acceptance Criteria.mp412MB
  • 24 Unit Widget Tests with Mockito/397 Introduction to test mocks and mockito.mp418.23MB
  • 24 Unit Widget Tests with Mockito/398 Injecting mock objects with Provider.mp451.24MB
  • 24 Unit Widget Tests with Mockito/399 Verifying mock methods.mp448.67MB
  • 24 Unit Widget Tests with Mockito/400 Working with keys entering text and the pump() method.mp481.05MB
  • 24 Unit Widget Tests with Mockito/401 Testing widget updates on state changes.mp438.16MB
  • 24 Unit Widget Tests with Mockito/402 Completing the email sign-in tests.mp428.5MB
  • 24 Unit Widget Tests with Mockito/403 Replacing Navigator.pop with a callback when the user signs in.mp432.72MB
  • 24 Unit Widget Tests with Mockito/404 Updating the tests to handle the form callback.mp431.61MB
  • 24 Unit Widget Tests with Mockito/405 Stubbing mock objects.mp462.47MB
  • 24 Unit Widget Tests with Mockito/406 Recap on the email sign in forms and stubbing mocks.mp432.07MB
  • 24 Unit Widget Tests with Mockito/407 Using widget tests with StreamBuilder.mp445.77MB
  • 24 Unit Widget Tests with Mockito/408 Using StreamController inside tests.mp487.36MB
  • 24 Unit Widget Tests with Mockito/409 Test setup for the SignInPage.mp446.01MB
  • 24 Unit Widget Tests with Mockito/410 Adding keys to custom widget classes.mp436.59MB
  • 24 Unit Widget Tests with Mockito/411 Testing navigation.mp461.97MB
  • 24 Unit Widget Tests with Mockito/412 The great thing about widget tests.mp412.66MB
  • 24 Unit Widget Tests with Mockito/413 Testing ValueNotifier models.mp475.15MB
  • 24 Unit Widget Tests with Mockito/414 Testing ChangeNotifier models.mp437.54MB
  • 24 Unit Widget Tests with Mockito/415 Testing BloCs.mp429.51MB
  • 24 Unit Widget Tests with Mockito/416 Comparing EmailSignInModel objects.mp413.29MB
  • 24 Unit Widget Tests with Mockito/417 Testing streams in Blocs.mp476.28MB
  • 24 Unit Widget Tests with Mockito/418 Wrap up on unit widget tests.mp410.64MB
  • 25 Conclusion and Next Steps/420 Conclusion and Next Steps.mp433.97MB