Содержание курса
Введение
5 уроков
1.
Что такое Flutter?
↗
2.
Установка Flutter и Android Studio (Windows)
↗
3.
Установка Android Emulator (Windows)
↗
4.
Установка VS Code (Windows)
↗
5.
Ссылки для курса, ДЗ, обсуждения
↗
Основы
12 уроков
1.
Обзор папок во Flutter приложении
↗
2.
Hot reload и Hot restart
↗
3.
Введение в виджеты (Widgets)
↗
4.
ДЗ по лекции "Введение в виджеты"
↗
5.
MaterialApp
↗
6.
Scaffold
↗
7.
Типы виджетов
↗
8.
Stateless Widget и его жизненный цикл
↗
9.
Stateful Widget и его жизненный цикл
↗
10.
Работа с Asset и Image
↗
11.
Работа с Asset и Font
↗
12.
ДЗ по блоку "Основы"
↗
Основы компоновки UI
12 уроков
1.
Введение
↗
2.
Padding
↗
3.
Align и Center
↗
4.
Container
↗
5.
Row и Column
↗
6.
Expanded
↗
7.
Stack
↗
8.
Практика. Компоновка интерфейса
↗
9.
Статический ListView
↗
10.
Динамический ListView
↗
11.
Динамический ListView. Отображение заголовка
↗
12.
ДЗ по блоку "Основы компоновки UI"
↗
Работа с Null Safety (Dart)
10 уроков
1.
Что такое Null Safety?
↗
2.
Основные принципы Null Safety
↗
3.
Иерархия типов
↗
4.
Flow Analysis: Promotion & Definite Assignment
↗
5.
Null-aware операторы
↗
6.
Каскадный null-aware оператор
↗
7.
Модификатор late
↗
8.
Работа с коллекциями
↗
9.
Работа с параметрами класса
↗
10.
Миграция на Null Safety
↗
Навигация и передача данных
6 уроков
1.
Простая навигация
↗
2.
Навигация по имени
↗
3.
Простая передача данных между экранами
↗
4.
Передача данных при навигации по имени
↗
5.
Передача данных с onGenerateRoute
↗
6.
Передача данных на предыдущий экран
↗
Взаимодействие с пользователем
14 уроков
1.
Form
↗
2.
TextField и TextFormField
↗
3.
Стилизация полей ввода
↗
4.
Ограничение ввода в поля формы
↗
5.
Получение текста из полей формы
↗
6.
Валидация полей формы
↗
7.
Выпадающий список
↗
8.
"Фокусировка" полей ввода
↗
9.
SnackBar
↗
10.
AlertDialog
↗
11.
Использование жестов
↗
12.
Отправка формы
↗
13.
Исходный код
↗
14.
ДЗ по работе с виджетом Form
↗
Пакеты и зависимости
3 урока
1.
Пакеты и зависимости
↗
2.
Управление версиями пакетов
↗
3.
Неопубликованные пакеты
↗
Работа с сетью
5 уроков
1.
Работа с HTTP
↗
2.
Введение в JSON
↗
3.
Ручная сериализация JSON. Создание модели
↗
4.
Ручная сериализация JSON. Отображение данных
↗
5.
Авто генерируемая сериализация JSON
↗
Управление состоянием
7 уроков
1.
Типы состояний. Введение
↗
2.
Vanilla (setState())
↗
3.
InheritedWidget
↗
4.
ScopedModel
↗
5.
Provider. Теория
↗
6.
Provider. Практика
↗
7.
ДЗ по Provider
↗
Хранение данных на устройстве
3 урока
1.
Работа с файлами (Чтение/Запись)
↗
2.
Плагин shared_preferences
↗
3.
Работа с SQLite
↗
Практика. Погодное приложение
12 уроков
1.
ОБЯЗАТЕЛЬНО к прочтению!
↗
2.
Введение
↗
3.
Создание модели
↗
4.
Реализация запроса и отображение данных
↗
5.
Отображение города и даты
↗
6.
Отображение температуры
↗
7.
Отображение давления, осадков и ветра
↗
8.
Отображение прогноза погоды за неделю
↗
9.
Получение погоды по названию любого города
↗
10.
Получение погоды по геолокации устройства
↗
11.
Исправление ошибок
↗
12.
Исходный код к приложению "Прогноз погоды"
↗
BLoC
5 уроков
1.
BLoC. Теория
↗
2.
BLoC на потоках (Stream)
↗
3.
BLoC (flutter_bloc 8.0)
↗
4.
Flutter BLoC 8.0. Работа с сетью
↗
5.
Flutter Cubit 8.0. Работа с сетью
↗
Чистая Архитектура (The Clean Architecture)
20 уроков
1.
Что будем проектировать?
↗
2.
Чистая Архитектура. Введение.
↗
3.
Структура приложения
↗
4.
Уровень домена: Entity и Equatable
↗
5.
Уровень домена: Repository
↗
6.
Уровень домена: UseCases
↗
7.
Уровень данных: Обзор
↗
8.
Уровень данных: Models
↗
9.
Уровень данных: Remote data source
↗
10.
Уровень данных: Local data source
↗
11.
Уровень данных: Repository
↗
12.
Уровень представления: Обзор
↗
13.
Уровень представления: BLoC
↗
14.
Уровень представления: Cubit
↗
15.
Внедрение зависимостей (Dependency Injection)
↗
16.
Уровень представления: Отображение списка персонажей
↗
17.
Уровень представления: Детальная информация о персонаже
↗
18.
Уровень представления: Поиск персонажа
↗
19.
Заключение, ДЗ и исходный код
↗
20.
Миграция приложения на Null Safety
↗
Работа с Веб-страницами
6 уроков
1.
Работа с WebView
↗
2.
Управление веб-страницами в WebView
↗
3.
Отслеживание изменений в WebView
↗
4.
Внедрение Javascript в WebView
↗
5.
Работа с локальными Веб-страницами, CSS и JS
↗
6.
Обмен данными между WebView и Flutter
↗
Генерация кода
3 урока
1.
Работа с пакетом Freezed
↗
2.
Работа с BLoC и Freezed
↗
3.
Приложение "Rick and Morty. Найди персонажа"
↗
Ключи
8 уроков
1.
Widget, Element, Render Object
↗
2.
Ключи. Введение
↗
3.
UniqueKey
↗
4.
ValueKey
↗
5.
ObjectKey
↗
6.
PageStorageKey
↗
7.
GlobalKey
↗
8.
Краткие итоги по ключам
↗
Основы тестирования
6 уроков
1.
Введение
↗
2.
Основы Unit тестирования
↗
3.
Основы Widget тестирования
↗
4.
Основы Integration тестирования
↗
5.
Основы работы с Mocktail
↗
6.
Основы TDD (test-driven development)
↗
Riverpod
13 уроков
1.
Введение. Provider & StateProvider
↗
2.
StateNotifierProvider
↗
3.
Домашнее задание
↗
4.
Методы listen() и select()
↗
5.
ChangeNotifierProvider
↗
6.
FutureProvider
↗
7.
ProviderRef. Объединение состояний провайдеров.
↗
8.
StreamProvider
↗
9.
Модификаторы
↗
10.
Жизненный цикл провайдера
↗
11.
ProviderObserver. Мониторинг состояний провайдера
↗
12.
Краткие итоги
↗
13.
Автоматическая генерация провайдеров
↗
Анимация
5 уроков
1.
AnimationController и Animation
↗
2.
Контроль за ходом анимации
↗
3.
Анимация на основе кривых (Curves)
↗
4.
Одновременная анимация
↗
5.
Поэтапная анимация
↗
Общий модуль по видео Flutter
1 урок
1.
Создание расширения для Google Chrome
↗