Курс по Flutter — это практическое погружение в разработку мобильных приложений для iOS и Android одновременно, с использованием одного кода. Flutter — это современный фреймворк от Google, который позволяет создавать быстрые, красивые и отзывчивые приложения с нуля. Участники курса научатся работать с языком Dart, разрабатывать интерфейсы, взаимодействовать с базами данных и подключать сторонние сервисы. Всё обучение построено вокруг создания реального мобильного приложения.
Преподаватель: Кусембаев Рауан Даулетович
Продолжительность курса в академических часах
54 часа
Формат обучения
Оффлайн
Расписание
Понедельник, пятница 14:30 - 16:30
Старт занятий
28.03.2025
Формат занятий
Групповые занятия, живые лекции
Учебная программа курса по темам
Введение в Dart и Flutter (6 часов)
Час 1-2: Начало работы с Dart
- Введение в язык программирования Dart
- Настройка среды разработки (Dart SDK, IDE)
- Базовый синтаксис, переменные, типы данных и операторы
- Операторы управления потоком (if/else, циклы)
Час 3-4: Объектно-ориентированное программирование в Dart
- Классы и объекты
- Конструкторы и наследование
- Интерфейсы, примеси (mixins) и абстрактные классы
- Инкапсуляция и полиморфизм
Час 5-6: Основы Flutter
- Введение во фреймворк Flutter
- Настройка среды разработки Flutter
- Понимание структуры проекта Flutter
- Создание первого приложения на Flutter
- Горячая перезагрузка (hot reload) и инструменты разработчика
Основы Flutter: виджеты и интерфейсы (9 часов)
Час 1-3: Понимание системы виджетов
- Дерево виджетов и композиция
- Stateless и Stateful виджеты
- Обзор встроенных виджетов
- Виджеты компоновки (Container, Row, Column)
- Создание пользовательских виджетов
Час 4-6: UI-макеты и адаптивность
- Создание сложных макетов
- Работа с различными размерами экранов
- Ограничения и размеры
- Работа с MediaQuery
- Реализация адаптивного дизайна
Час 7-9: Элементы взаимодействия с пользователем
- Виджеты ввода (TextField, Checkbox, Radio)
- Кнопки и детекторы жестов
- Формы и валидация
- Реализация прокручиваемых представлений
- ListView и GridView
Навигация и управление состоянием (6 часов)
Час 1-2: Навигация во Flutter
- Виджет Navigator
- Маршруты и именованные маршруты
- Передача данных между экранами
- Шаблоны навигации и лучшие практики
Час 3-6: Управление состоянием
- Понимание состояния приложения
- Локальное и глобальное состояние
- setState и поднятие состояния
- Пакет Provider
- Введение в паттерн BLoC
- Сравнение систем управления состоянием (Provider, Riverpod, GetX)
Работа с сетью и API (6 часов)
Час 1-2: HTTP и RESTful сервисы
- Концепции HTTP во Flutter
- Использование пакета http
- Выполнение запросов GET, POST
- Обработка ответов API
Час 3-4: Сериализация JSON
- Работа с данными JSON
- Ручной парсинг JSON
- Автоматическая сериализация с генерацией кода
- Использование built_value и json_serializable
Час 5-6: Продвинутая интеграция API
- Обработка аутентификации
- Реализация обновления токенов
- Обработка ошибок и механизмы повторных попыток
- Реализация пагинации
- WebSockets для коммуникации в реальном времени
Локальное хранение данных (6 часов)
Час 1-2: SharedPreferences и хранение файлов
- Хранение простых данных ключ-значение
- Работа с файловой системой устройства
- Хранение и получение пользовательских настроек
- Реализация настроек приложения
Час 3-4: База данных SQLite
- Введение в SQLite во Flutter
- Использование пакета sqflite
- Создание таблиц базы данных
- CRUD операции
Час 5-6: Продвинутое локальное хранение
- NoSQL база данных Hive
- Шифрование данных
- Стратегии кэширования
- Подход "сначала офлайн"
- Синхронизация локальных и удаленных данных
Анимации и кастомизация UI (6 часов)
Час 1-2: Базовые анимации
- Неявные анимации
- Контроллеры анимации
- Твины (Tweens) и кривые
- Переходные анимации
Час 3-4: Пользовательские UI-компоненты
- Создание пользовательских painters
- Пользовательские clippers и формы
- Продвинутые темы
- Пользовательское поведение прокрутки
Час 5-6: Сложные шаблоны анимации
- Hero-анимации
- Ступенчатые анимации
- Эффекты частиц
- Анимации на основе физики
- Интеграция Rive/Lottie анимаций
Работа с мультимедиа и устройствами (6 часов)
Час 1-2: Камера и обработка изображений
- Доступ к камере устройства
- Фотографирование и запись видео
- Выбор изображений и доступ к галерее
- Базовая обработка изображений
Час 3-4: Геолокация и карты
- Получение местоположения пользователя
- Использование Google Maps во Flutter
- Создание пользовательских маркеров карты
- Реализация функций на основе местоположения
Час 5-6: Датчики и функции устройства
- Использование акселерометра и гироскопа
- Доступ к контактам устройства
- Работа с push-уведомлениями
- Реализация биометрической аутентификации
- Фоновая обработка
Интеграция с Native-кодом (3 часа)
Час 1: Platform Channels
- Понимание platform channels
- Method channels для вызова нативных методов
- Event channels для непрерывной коммуникации
Час 2-3: Нативная интеграция
- Добавление нативного кода Android (Java/Kotlin)
- Добавление нативного кода iOS (Swift/Objective-C)
- Интеграция сторонних нативных SDK
- Основы разработки плагинов
Тестирование и отладка (3 часа)
Час 1: Тестирование виджетов
- Модульное тестирование кода Dart
- Основы тестирования виджетов
- Тестирование взаимодействия с пользователем
- Мокирование зависимостей
Час 2: Интеграционное тестирование
- Настройка интеграционных тестов
- Тестирование потоков приложения от начала до конца
- Автоматизированное UI-тестирование
Час 3: Техники отладки
- Использование Flutter DevTools
- Профилирование производительности
- Обнаружение утечек памяти
- Распространенные проблемы и их решения
Публикация приложения (3 часа)
Час 1: Подготовка к релизу
- Оптимизация размера приложения
- Добавление иконок и сплэш-экранов
- Настройка метаданных приложения
- Создание релизных сборок
Час 2: Публикация на Android
- Настройка Google Play Console
- Подготовка Android App Bundle
- Подписание и распространение приложения
- Обработка обновлений версий
Час 3: Публикация на iOS
- Настройка аккаунта Apple Developer
- Конфигурация App Store Connect
- Распространение через TestFlight
- Процесс публикации в App Store
- Управление отзывами и обновлениями приложения