pritamps / flutter-learning

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Flutter-Course-Resources

Random notes

  • Use the Flutter Outline tab to wrap widget with Center(), and other such single-child widgets.
  • A lot of things can be done from the Android Studio UI: wrapping widgets with other widgets, removing a wrapping widget....and so and so far. (Option + Enter on Mac). Development goes much faster.
  • Uninitialized variables are dynamically typed in Dart! There is a dynamic data type!
  • Stateless vs stateful widgets. Any widgets that need to maintain a record of their state are stateful.
    • Hot reload won't be enabled for stateful widgets. Need hot restart.
    • setState() can be called from anywhere inside the widget. Any variables that are changed in the setState() method are marked dirty, and any code that accesses the variable are run again.
    • When to use keys: Keys maintain state.
  • Flutter Packages: To install any package, click on "Installing" tab of any package. Adding a ^ means it will use the latest version as long as major version number does not change
  • Dribbble for flutter design inspiration!
  • Using Themes
    • Accent colors, default colors, everything is customizable.
      theme: ThemeData.dark().copyWith(
      primaryColor: Colors.red,
      accentColor: Colors.red,
      floatingActionButtonTheme:
          FloatingActionButtonThemeData(backgroundColor: Colors.blue),
      textTheme: TextTheme(
        body1: TextStyle(color: Colors.white),
      ),
    ),
    • Notice how FloatingAction has its own theme and doesn't always take the accent color.
    • Any widget can be wrapped with its own ThemeData()
  • The Flutter Cookbook: Common "recipes" for common flutter apps. Lots of common things are covered there!
  • Find Color HEX codes easily with the Colorzilla plugin
  • LaTeX support
  • Styling
    • color is technically a part of the decoration (BoxDecoration(..)) property
  • Dart Language Tour: Final and Const
  • Use copyWithto customize indvidual widgets
  • Composition over inheritance! Composition over inheritance!
  • You can click through on widgets to get to the actual code. Very useful, because you can compose your own widgets based on stuff a few layers below.
  • Navigation cookbook
  • async and await for asynchronous programming
  • Geolocator Package
  • HTTP package
  • dart:convert has libraries for converting JSON, XML, base64, etc.
  • Loading spinners
  • widget property: Maintains the state of a stateful widget. Since there can be more than one State object associated with a StatefulWidget instance, this property is very useful.
  • [Platform.iOS] to check for iOS for example.
  • TODO: Read about mixins
  • AnimationControllers can be used easily because it sets the whole state every frame.
  • copyWith() is quite cool!
  • TODO: Understand StreamBuilder()
  • Don't place ListViews as direct children of Rows or Columns
  • Bottomsheet
  • Stateful Widgets: State is passed through call backs.
  • When you convert stateless widgets to stateful, a rebuild of the app is required.
  • Provider package is Google's recommendation for managing state
  • Provider in the Todoey app
    • TaskData class will provide all relevant listeners with updates to task propertie.s.
    • The ChangeNotifier should be at a level where all listeners are available, i.e. below in three.
    • On updating provider data, the notifyListeners() method HAS to be called

Section 1: Introduction to Cross-Platform Development with Flutter and Dart

Section 2: Setting Up for Flutter Development

Section 3: I Am Rich - How to Create Flutter Apps from Scratch

Section 4: Running Your App on a Physical Device

Section 5: I Am Poor - App Challenge

Section 6: MiCard - How to Build Beautiful UIs with Flutter Widgets

Section 7: Dicee - Building Apps with State

Section 8: Boss Level Challenge 1 - Magic 8 Ball

Section 9: Xylophone - Using Flutter and Dart Packages to Speed Up Development

Section 10: Quizzler - Modularising & Organising Flutter Code

Section 11: Boss Level Challenge 2 - Destini

Section 12: BMI Calculator - Building Flutter UIs for Intermediates

Section 13: Clima - Powering Your Flutter App with Live Weather Web Data

Section 14: Boss Level Challenge 3 - Bitcoin Ticker (a.k.a. Am I Rich?)

Section 15: Flash Chat - Flutter x Firebase Cloud Firestore

Section 16: Flutter State Management

About


Languages

Language:Dart 81.8%Language:Objective-C 5.9%Language:Ruby 5.6%Language:Swift 3.0%Language:Java 2.7%Language:Kotlin 1.0%