Мастер-класс по анимации во Flutter. Видео-курс
Освойте анимацию Flutter и узнайте, как создавать приложения, которые ярко выделяются!
Содержание курса
Этот бесплатный курс на русском языке состоит из 10 независимых модулей, каждый из которых имеет определенную цель обучения тонкостям работы с анимацией во Флаттер (Flutter).
Рассматриваемые темы и концепции
1. Введение и неявная анимация (Implicit Animations)
- План курса и ресурсы
- Введение в анимацию
- Загрузите проект анимационной игровой площадки
- Неявная анимация с помощью AnimatedContainer
- [Упражнение]
AnimatedOpacity
- Кривые анимации
- Введение в
TweenAnimationBuilder
- Анимация цветов HSV с помощью
TweenAnimationBuilder
- Подведение итогов по неявным анимациям
2. Проблема пользовательского интерфейса: приложение для секундомера
- Введение в модуль
- Начальный проект для приложения Секундомер (Stopwatch app)
- Темный режим и пользовательское наложение пользовательского интерфейса системы
- Создание периодического таймера
Ticker
иTickerProvider
- Создание отдельного
StopwatchRenderer
виджета - Настройка пользовательского интерфейса секундомера с помощью
AspectRatio
- Матричные преобразования
- Получение радиуса окружности из
LayoutBuilder
- Реализация анимированной часовой стрелки
- Завершение интерфейса секундомера (часть 1)
- Завершение пользовательского интерфейса секундомера (часть 2)
- Добавление функций запуска / остановки / сброса (часть 1)
- Добавление функций запуска / остановки / сброса (часть 2)
- Соображения по производительности и тестированию при работе с тикерами!
3. Обзор приложения для отслеживания привычек
- Приложение для отслеживания привычек: введение (Habit Tracker app)
- Загрузите начальный проект
- Правила линтинга
- Пошаговое руководство по коду: ресурсы проекта
- Пошаговое руководство по коду: цвета и тематизация
4. Явная анимация
- Вводный модуль и начальный проект
- Кольцо завершения задачи: техническое планирование
- Введение в
CustomPainter
- Рисование кольца завершения задачи с помощью холста
- Введение в явную анимацию (Explicit Animations) с
AnimationController
- Анимированное кольцо завершения задачи с
AnimationController
иAnimatedBuilder
- Управление анимацией с помощью
GestureDetector
- Добавление значка SVG по центру к анимированной задаче
- Настройки пользовательского интерфейса для завершения задачи
- Состояние завершения задачи и окончательные настройки
- Исправлена ошибка: обработка жестов отмены нажатия
- Добавление имени задачи
- Организация нескольких задач внутри
GridView
- Законченный проект и подведение итогов
5. Сохранение локальных данных с помощью Hive
- Введение модуля
- Техническое планирование: локальное (Local Data) или удаленное хранилище
- Обзор начального проекта
- Введение в Hive
- Создание классов моделей с помощью Hive
- Создание адаптера типов с генерацией кода
- Создание
HiveDataStore
- Создание демонстрационных задач внутри
main()
- Создание уникальных идентификаторов задач с помощью пакета
uuid
- Чтение заданий с
ValueListenableBuilder
- Подведение итогов
6. Управление состоянием с помощью Riverpod
- Вводный модуль и начальный проект
- Знакомство с Riverpod
- Создание и использование хранилища данных
Provider
с помощьюConsumer
- Зависимость переопределяется с помощью
ProviderScope
TaskState
моделирование данных- Создание и использование
TaskState
класса модели Hive - Добавление
onCompleted
обратного вызова кAnimatedTask
виджету - Создание
TaskWithNameLoader
- Завершение + использование инспектора виджетов
7. Анимация перелистывания страницы
- Введение модуля: переход с переворота страницы
- Начальный проект и пошаговое руководство
- Разработка API-интерфейса виджета Page Flip с помощью
WidgetBuilders
- Использование a
GlobalKey
для изменения состояния дочернего виджета AnimationController
настройкаAnimatedBuilder
противAnimatedWidget
- Код поворота с
Transform
иMatrix4
- Интерактивный переход с одной страницы на другую
- Виджеты, элементы и клавиши
- Дополнительная задача: игра с переворачиванием карт
8. Расширенная тематизация
- Введение к модулю: Расширенная тематизация (Theming)
- Начальный проект и пошаговое руководство
- Показ нижних панелей
- Создание
SlidingPanelAnimator
- Использование
SlidingPanelAnimator
- Анимация раздвижных панелей
- Управление изменениями состояния темы приложения: обзор
- Реализация класса
AppThemeManager
с помощьюStateNotifier
- Создание и использование поставщиков
AppThemeManager
- Применение настроек
AppThemeSettings
- Расширенное анимированное тематическое оформление с помощью
ImplicitlyAnimatedWidget
9. Более явная анимация
- Вводный модуль
- Начальный проект и пошаговое руководство
- Управление анимацией в виджете
TasksGrid
- Добавление подкласса AnimatedWidget для масштабирования виджетов
- Пошаговая анимация
- Добавление виджета
AddTaskItem
- Анимация плавного перехода с помощью виджета непрозрачности
- Явная анимация с переходом на затухание и масштабированием
- Обзор: встроенный переход против неявно анимированных виджетов во Flutter
- Исправлена ошибка: отключение завершения задачи в режиме редактирования
10. Добавление и редактирование задач
- Введение в модуль: Добавление и редактирование задач
- Переход к страницам добавления задачи и редактирования задачи
- Обзор:
AddTaskPage
с помощью slivers - Обзор:
TaskDetailsPage
иSelectIconPage
- Обзор: адаптация
- Заключение и следующие шаги
Дополнительные ресурсы
Полезные ресурсы из документации Flutter
- Введение в анимацию | Flutter.dev
- Неявная анимация Codelab | Flutter.dev
- Учебное пособие по анимации | Flutter.dev
- Виджеты анимации и движения | Flutter.dev
- Уменьшить скачок компиляции шейдеров на мобильных устройствах | Flutter.dev
Смотреть видео-курс
Часть 1:
Часть 2:
Часть 3:
Часть 4:
Часть 5:
Часть 6:
Часть 7: