Мобильная разработка на Flutter
Курс разработки мобильных приложений на Flutter — это практическая программа, где студенты изучат язык Dart и освоят фреймворк Flutter для создания кроссплатформенных приложений под Android и iOS. В рамках курса они научатся разрабатывать адаптивные пользовательские интерфейсы, работать с базами данных и сетевыми запросами, понимать архитектуру приложений и навигацию, а также собирать и тестировать собственные мобильные приложения. Обучение включает лекции, практические задания и проектную работу, чтобы подготовить студентов к реальной работе в сфере мобильной разработки.
Длительность курса
27 недель, 108 академических часов
2 занятия в неделю по 2 академических часа
400 000 тг за весь период обучения
Формат обучения
Онлайн
Онлайн занятия проводятся в Google Meet.
Соотношение теории к практике - 50/50.
Система оценки успеваемости на курсе будет основана на
практических заданиях и проектах, которые студенты будут
выполнять в течение курса. Каждое задание/проект будет
оцениваться по нескольким критериям, таким как соответствие
требованиям, качество кода, использование современных
технологий и т.д. Максимальный балл - 10. Кроме того, на курсе
будут проводиться тесты и экзамены, чтобы проверить понимание
теоретической базы и навыков Flutter разработки.
Критерий завершения обучения - средний балл выше 5/10, или
выше 50%.
Поступление на курс проходит полностью онлайн. Кандидаты заполняют онлайн-анкету и пишут эссе, где описывают интерес к мобильной разработке и объясняют, почему хотят изучать Flutter. Затем проводится онлайн-собеседование, в ходе которого оценивается мотивация, способность работать в команде и стремление развиваться в сфере мобильной разработки. Базовые знания программирования — плюс, но не обязательное условие для поступления. Курс по Flutter — это онлайн-программа, которая даст практические навыки создания мобильных приложений и подготовит к работе в индустрии IT.
Программа обучения
-
🟦 Модуль 1: Dart и основы ООП (недели 1–3)
Неделя 1: - Неделя 2.
- Неделя 3.
-
🟦 Модуль 2: Основы Flutter (недели 4–7)
Неделя 4. - Неделя 5.
- Неделя 6.
- Неделя 7.
-
🟦 Модуль 3: UI/UX и анимации (недели 8–11)
Неделя 8. - Неделя 9.
- Неделя 10.
- Неделя 11.
-
🟦 Модуль 4: Работа с данными и API (недели 12–15)
Неделя 12. - Неделя 13.
- Неделя 14.
- Неделя 15.
-
🟦 Модуль 5: Управление состоянием (недели 16–18)
Неделя 16. - Неделя 17.
- Неделя 18.
-
🟦 Модуль 6: Архитектура и тестирование (недели 19–22)
Неделя 19. - Неделя 20.
- Неделя 21.
- Неделя 22.
-
🟦 Модуль 7: Нативные возможности и публикация (недели
23–24)
Неделя 23. - Неделя 24.
-
🟦 Модуль 8: Финальный проект (недели 25–27)
Неделя 25. - Неделя 26.
- Неделя 27.
Установка среды: Flutter SDK, Android Studio / VS Code
Структура проекта на Dart
Типы данных, переменные, final/const, функции
Управляющие конструкции: if, switch, циклы for/while
Анонимные функции, замыкания
Классы и объекты, конструкторы
Наследование, интерфейсы, миксины
Null safety: ?., ??, !
Практика: мини-приложение "To Do список" (только Dart, без
UI)
Stateless и Stateful widgets
Основные виджеты: Text, Image, Button, Icon
Scaffold, AppBar, Drawer
Навигация: Navigator 1.0, push/pop
Named routes и передача аргументов
BottomNavigationBar и маршрутизация
Layout: Row, Column, Stack, SizedBox, Spacer
Списки: ListView, GridView
ScrollController, SliverAppBar (введение)
Формы и ввод: TextField, Form, validator
Контроллеры и обработка ввода
Практика: приложение "Каталог фильмов"
Темы: ThemeData, кастомизация цветов и шрифтов
Поддержка светлой/тёмной темы
Адаптивность: MediaQuery, LayoutBuilder
Flex, Expanded, Wrap
Размеры, отступы, padding/margin
Кастомные компоненты
Подключение иконок (flutter_svg, custom icons)
Кеширование изображений (cached_network_image)
Анимации: Hero, AnimatedContainer, Tween, Fade
Переходы между экранами
Практика: "Погодное приложение с анимацией"
HTTP-запросы с http и dio
Future, async/await
JSON-разбор вручную
Работа с json_serializable и модельными классами
FutureBuilder, AsyncSnapshot
SharedPreferences и Hive (локальное хранилище)
CRUD-операции с HiveBox
Firebase Firestore / Supabase: установка, структура данных
Регистрация/авторизация (если Firebase)
Практика: "Новостное приложение"
setState и подъем состояния (lifting state up)
Простые примеры управления состоянием
Provider: ChangeNotifier, context.read/watch
Архитектура на Provider
Riverpod: StateProvider, AsyncValue, StateNotifier
Сравнение с Bloc, MobX, GetX (введение)
Практика: приложение "Задачник с фильтрами"
Архитектура слоёв: presentation, domain, data
Разделение по папкам: models, services, views, widgets
Чистая архитектура: introduction
Создание use cases
Паттерны: repository, service, DTO
Unit-тесты с test и mockito
Покрытие, написание тестов для модели и логики
GitHub Actions: lint, test, build
Настройка CI/CD пайплайна
Практика: рефакторинг одного из прошлых проектов
Работа с камерой, галереей, файлами (image_picker)
Геолокация и карты (geolocator, google_maps_flutter)
Push-уведомления (Firebase Messaging)
Splash screen, App icon, манифесты
Сборка AAB, подпись ключом
Загрузка в Google Play (теория + демонстрация)
Обзор сборки под iOS
Практика: подготовка к публикации
Подготовка к финальному проекту и итоговому тестированию.
Планирование и начало разработки финального проекта.
Выбор темы и технологического стека, определение
функциональности.
MVP, основные экраны. Архитектура, CI, оформление GitHub
Разбор возникших вопросов и проблем в процессе разработки.
Работа над финальными штрихами проекта, рефакторинг,
тестирование.
Подготовка презентации
Тестирование, багфикс, финальные доработки
Демо-день. Завершение и защита финального проекта перед
преподавателями и однокурсниками.
Обсуждение полученного опыта, получение обратной связи и
рекомендаций по дальнейшему развитию.