Description
In this course, you'll learn how to use Flutter to quickly develop high-quality, interactive mobile applications for iOS and Android devices. Whether you’re just getting started with mobile app development, or experienced with other mobile app frameworks, you’ll enjoy the high-velocity development and quality apps that Flutter enables.
Course Curriculum
Introduction
Learning Objectives: In this module, you will learn about the installation of Flutter App
Topics:
- What Is Flutter
- UnderStanding Flutter Architecture
- How Flutter & Dart Code Gets Compiled to Native Apps
- UnderStanding Flutter Version
- Setup Development Environment
- Flutter & Material Design
- Flutter Alternatives
Flutter Basics
Learning Objectives: In this module, you will learn about basics of Flutter.
Topics:
- An Overview of the Generated Files & Folders
- Analyzing the Default App
- Dart Basics
- More Dart Basics
- Dart Basics
- Dart Fundamentals
- Building an App From Scratch
- Running the App on an Emulator
- Class Constructors & Named Arguments
- First Summary & Additional Syntax
- Flutter App Basics
- Building a Widget Tree
- Visible (Input / Output) & Invisible (Layout / Control) Widgets
- Adding Layout Widgets
- Widget Basics
- Connecting Functions & Buttons
- Anonymous Functions
- Updating Widget Data (Or: Using StatelessWidget Incorrectly)
- Understanding Lists
- Updating Correctly with Stateful Widgets
- Stateful & Stateless Widgets
- Using Private Properties
- Creating a New, Custom Widget
- First Styling & Layouting Steps
- Enums & Multiple Constructors
- Passing Callback Functions Around
- Introducing Maps
- Mapping Lists to Widgets
- final vs const
- Advanced Flutter & Dart Basics
- Introducing "if" Statements
- More on "if" Statements
- The "null" Value
- Outputting Widgets Conditionally
- Splitting the App Into Widgets
- Getters & "else-if"
Widgets, Styling, Adding Logic
Learning Objectives: In this module, you will learn about widgets and styling.
Topics:
- An Overview of the Core Flutter Widgets
- Planning the App
- Combining Widgets
- Understanding Column Alignment
- Columns & Rows
- Adding a Transaction Model & Transaction Data
- Mapping Data Into Widgets
- Building a Custom List Item
- Styling a Container
- Styling Text
- More Styling!
- Containers vs Columns vs Rows
- Using String Interpolation
- Installing External Packages & Formatting Dates
- DateFormat Patterns
- Adding Text Input Widgets (TextField)
- Fetching User Input
- Splitting the App Into Widgets
- Connecting Widgets & Managing Data / State
- Adding User Transactions to the List
- Making the List Scrollable!
- Working with ListViews
- Lists, Scrolling & Text Input
- Further Input & Output Styling and Configuration
- Adding AppBar Buttons & Floating Action Buttons
- Showing a Modal Bottom Sheet
- Improving & Styling the Modal Bottom Sheet
- Configuring & Using Themes
- Custom Fonts & Working with Text Themes
- Theming
- Adding Images to the App
- Planning the Chart Widget
- Looping Through Lists
- Deriving Recent Transactions
- Creating Bars for our Chart
- Populating the Chart with Values
- Finishing the Chart Bars
- Adding a ListTile Widget
- Getting Started with Date Selection
- Showing a DatePicker
- Adding Transactions with a Date
- Deleting Transactions & Using IconButtons
Responsive & Adaptive User Interfaces and Apps
Learning Objectives: In this module, you will learn about how to adjust the UI in potrait and Landscape mode
Topics:
- What does "Responsive" and "Adaptive" Mean?
- Calculating Sizes Dynamically
- Working with the "textScaleFactor"
- Using the LayoutBuilder Widget
- Responsiveness
- Controlling the Device Orientation
- Rendering Alternative Landscape Content
- Finishing Landscape Mode
- Showing Different Content Based on Device Orientation
- Respecting the Softkeyboard Insets
- Using the Device Size in Conditions
- Managing the MediaQuery Object
- Checking the Device Platform
- Using Cupertino (iOS) Widgets
- Using the SafeArea
- More Cupertino Styles
- Using Cupertino Buttons
- Creating Custom Adaptive Widgets
Widget & Flutter Internals
Learning Objectives: In this module, you deep dive in Widget & Flutter Internals
Topics:
- Widget Tree & Element Tree - What, Why and How?
- How Flutter Rebuilds & Repaints the Screen
- How Flutter Executes build()
- Using "const" Widgets & Constructors
- Widgets, Elements, build()
- Extracting Widgets
- Using Builder Methods
- Understanding the Widget Lifecycle
- Calling super.initState() etc.
- Understanding the App Lifecycle
- Understanding Context
- A Problem with Lists & Stateful Widgets
- Understanding the Problem Root
- Using Keys
- Keys, Lists, Stateful Widgets
Navigation & Multiple Screens
Learning Objectives: In this module, you will learn how to set and apply Navigation in Flutter
Topics:
- Starting With The App - Adding Base Data
- Creating a Grid & Working with Linear Gradients
- Registering a Screen as the Main Screen
- Styling & Theming
- Navigating to a New Page
- Passing Data via the Constructor
- Using Named Routes & Passing Data With Named Routes
- Screens & Navigation
- onGenerateRoute & onUnknownRoute
- Adding a TabBar to the Appbar
- Adding a Bottom TabBar
- Adding a Custom Drawer
- Adding Links to the Drawer
- Replacing Pages (Instead of Pushing)
- Popping Pages & Passing Data Back
State Management
Learning Objectives: In this module, you will learn State Management in Flutter
Topics:
- Defining a Data Model
- Working on the "Products" Grid & Item Widgets
- Styling & Theming the App
- Adding Navigation to the App
- Why State Management? And what is "State" and "State Management"?
- Understanding the "Provider" Package & Approach
- Working with Providers & Listeners
- Providing non-Objects
- Listening in Different Places & Ways
- State, State Management & The Provider Package/ Approach
- Using Nested Models & Providers
- Exploring Alternative Provider Syntaxes
- Using "Consumer" instead of "Provider.of"
- Local State vs App-wide State
- Working with Multiple Providers
- Stateful Widgets vs Providers
Native Device Feautres
Learning Objectives: In this module, you will learn Native Device Features
Topics:
- PlaceList & Place Provider Setup
- Adding the "Add Place" Screen & An Image Input
- Using Image Picker & The Device Camera
- Storing the Image on the Filesystem (on the Device)
- Managing Data & Images via the Provider Package
- Preparing SQLite
- Storing & Fetching Data with SQLite
- Adding a Location Input & The "location" Package
- Fetching the User Coordinates
- Displaying a Static Map Snapshot
- Rendering a Dynamic Map (via Google Maps)
- Allowing Users to Pick a Location on the Map
- Storing the Location in SQLite
Sending HTTP Requests
Learning Objectives: In this module, you will how to http request and API Calls in Flutter
Topics:
- How to Connect Flutter to a Database
- Preparing Our Backend
- How To Send Http Requests
- Sending POST Requests
- Http Requests
- Showing a Loading Indicator
- Handling Errors Gracefully
- Working with "async" & "await"
- Fetching Data, initState & "of(context)"
- How to Transform Fetched Data
- Implementing Pull-to-Refresh
- Updating Data via PATCH Requests
- Utilizing Optimistic Updating
- Creating Custom Exceptions & More Error Handling
- Storing Orders in the Web
- Fetching Orders & Fixing an Issue
Firebase, Image Upload, Push Notifications
Learning Objectives: In this module, you will how to http request and API Calls in Flutter
Topics:
- What is Firebase?
- Getting Started with Firebase
- Getting Started with Flutter & the Firebase SDK
- Rendering Stream Data with StreamBuilder
- Adding Data
- A Basic Authentication Screen
- Adding an App Theme
- Creating an Authentication Form
- Connecting Auth Form & Auth Screen
- Adding the firebase_auth Package
- Storing Extra User Data
- Adding Firebase Security Rules
- Creating a Basic Chat Bubble Widget
- Adding an Image Picker
- Preparing File Upload & Validating Images
- Uploading Images
- Displaying User Images
- How Push Notifications Work
- An Introduction to Firebase Cloud Messaging
- Android & Push Notifications
- iOS & Push Notifications
- Handling Push Notifications
- Setting a Firestore Trigger
- Sending Automated Push Notifications
Structure your learning and get a certificate to prove it.