Актуальная программа
Flutter Mobile Developer
Кроссплатформенная мобильная и веб-разработка
27 февраля
5 месяцев
Онлайн
Пн/Чт 20:00 Мск
Для кого этот курс?
Этот курс подходит вам, если у вас уже есть опыт в программировании и использовании концепций ООП, и вы хотите научиться писать мультиплатформенные мобильные приложения, использующие одну и ту же кодовую базу для iOS и Android, Desktop и Web.
Цель курса — научиться создавать современные кроссплатформенные приложения с помощью Flutter.
Необходимые знания
- опыт программирования на любом языке программирования
- понимание принципов объектно-ориентированного программирования
- навыки использования git
Будет плюсом
- знакомство с мобильной разработкой
- опыт работы в Android Studio или VS Code
- знание шаблонов проектирования
Что даст вам этот курс
- Научитесь использовать инструменты необходимые для Flutter-разработчика: Dart, BLoC, Redux, MobX и др.
- Создадите свой аналог Telegram, CoinMarketCap, Todoist в рамках разработки индивидуальной проектной работы, которая пополнит ваше портфолио
- Сможете общаться напрямую с преподавателями на лекциях и в Telegram-чате, обсуждать кейсы и задачи, которые стоят перед вами
Освойте необходимые навыки для Flutter-разработчика
- Основы языка Dart. Этот язык очень гибок и легок в использовании. Именно поэтому разработчики Flutter выбрали его. Освоив Dart, вы сможете писать Android-, iOS-, Web- и даже Desktop-приложения;
- Поймете, как работает Flutter изнутри. Flutter достаточно прост, чтобы начать решать с помощью него задачи в первый же день обучения. Но очень важно разобраться, как он работает, чтобы использовать возможности Flutter наиболее эффективно;
- Научитесь использовать platform-specific code для интеграции с нативной частью мобильного приложения. Если вам нужен доступ к hardware или какому-либо сложному модулю, который требователен к производительности, то Flutter может взаимодействовать с нативным кодом и решать даже эти задачи;
- Поймете как создавать свои собственные анимации. Во Flutter очень хорошо развита возможность создавать анимации. Так что мы разберемся, как создать практически любую анимацию с помощью Flutter без какой-либо потери в производительности;
- Начнете использовать современные библиотеки и фреймворки. Мы разберем самые популярные фреймвоки для работы с состоянием приложения: BLoC, Redux, MobX. Посмотрим, как организовать DI во Flutter на примере inject.dart и фреймворка get_it.
Практические домашние задания на курсе подготовлены таким образом, чтобы помочь вам не только применить знания на практике, но и помочь в реализации проектной работы.
Почему Flutter?
Flutter позволит вам создавать красивые, быстрые и кроссплатформенные приложения для iOS и Android, используя один и тот же код.
Процесс обучения
А если вы не смогли посетить занятие в реальном времени, то сможете посмотреть его в записи и задать вопрос преподавателю в закрытом Telegram-чате.
Портфолио
Подготовка проекта для портфолио в течение всего курса
Эксперты
Много практики и живого общения с преподавателями
Оптимальная нагрузка
Возможность совмещать учебу с работой
Партнеры
Многие студенты еще во время прохождения первой части программы находят или меняют работу, а к концу обучения могут претендовать на повышение в должности.
- Получите помощь с оформлением резюме, портфолио и сопроводительного письма
- Разместите свое резюме в базе OTUS и сможете получать приглашения на собеседования от партнеров
Flutter-разработчик
Работодатели курса
Формат обучения
Интерактивные вебинары
2 онлайн-трансляции по 2 ак.часа в неделю. Доступ к записям и материалам остается навсегда
Практика
Домашние задания + проектная работа, для усиления вашего портфолио и компетенций
Активное комьюнити
Общайтесь с преподавателями голосом на вебинарах, в закрытом чате Telegram и при проверке домашних заданий
Программа
Введение в Dart
В модуле рассматривается синтаксис языка Dart (с учетом Null Safety и новых конструкций Dart 2.17) и инструментальные средства компиляции и анализа приложений, создания и установки пакетов.
Тема 1: Введение в язык программирования Dart
Тема 2: Алгоритмы на языке Dart
Тема 3: Объектно-ориентированное программирование на Dart
Тема 4: Инструментальная поддержка Dart
Flutter Framework
В модуле подробно изучаются виджеты разметки, ввода информации и отображения содержания в Flutter, архитектурные подходы к декомпозиции виджетов и выделению бизнес-логики, разбираются алгоритмы определения и обработки жестов, особенности разработки Desktop (для Windows, Linux и MacOS) и Web-приложений.
Тема 1: Концепция реактивного пользовательского интерфейса, основные графические примитивы ui.Window
Тема 2: Анатомия отрисовки виджетов
Тема 3: Понятие и жизненный цикл виджета
Тема 4: Базовые виджеты содержания (текст, изображения, пиктограммы). Составные виджеты. Виджеты разметки
Тема 5: Виджеты разметки. Создание прокручиваемых виджетов.
Тема 6: Виджеты ввода информации, работа с формами. Часть 1
Тема 7: Виджеты ввода информации, работа с формами. Часть 2
Тема 8: Визуальное оформление (расширение темы), шрифты, градиенты и шейдеры, использование возможностей Impeller
Тема 9: Практика по реализации сложной верстки. Навигация и уведомления
Тема 10: Лучшие архитектурные практики для создания приложений
Тема 11: Выбор темы и организация проектной работы
Тема 12: Кроссплатформенная разработка для Web
Тема 13: Кроссплатформенная разработка для Desktop
Тема 14: Низкоуровневое рисование с использованием сцены и возможностей Canvas.
Тема 15: Консультация по ДЗ + практика
Асинхронность и сетевое взаимодействие
В модуле разбираются способы генерации исходных текстов по описанию модели данных или сетевого API, библиотеки для локального хранения данных и обмена информацией по сети, а также архитектура приложений для Firebase, Auth0 и сервисов Google.
Тема 1: Асинхронность в Dart, потоки и Future
Тема 2: Сетевое взаимодействие, хранение данных на устройстве
Тема 3: Использование кодогенерации во Flutter. Сериализация данных в JSON. Создание неизменяемых классов.
Тема 4: Интеграция с внешними API и бессерверные приложения
Тема 5: Консультация по ДЗ + практика
Анимация и мультимедиа в Flutter
В модуле рассматриваются вопросы создания визуальной привлекательности приложений (через программные и внешние анимации, игровые элементы) и работы с мультимедиа (камерой, звуком, видео).
Тема 1: Неявные анимации во Flutter, Hero-анимации
Тема 2: Явные анимации во Flutter, переходы между страницами. Управление анимацией. Кривые.
Тема 3: Игровые движки во Flutter. Создание 3D-анимации.
Тема 4: Интеграция сторонних анимаций во Flutter-приложение.
Тема 5: Поддержка мультимедиа и камеры во Flutter. Обработка изображений, распознавание и классификация.
Тема 6: Интернационализация и доступность
Тема 7: Консультация по ДЗ + практика
Архитектура приложений, управление состоянием и навигация
Модуль полностью посвящен рассмотрению архитектурных подходов к управлению состоянием приложений и реализации навигации между страницами (подходы Navigator и Router).
Тема 1: Inherited-виджеты. Библиотеки Provider и Riverpod.
Тема 2: Clean-архитектура. Реализация инъекции зависимостей (getit, Provider/Riverpod)
Тема 3: Redux для управления состоянием, hook
Тема 4: Архитектура MWWM и Bloc
Тема 5: Архитектура MobX
Тема 6: Модель навигации как управление состоянием. Navigator 2.0
Flutter Engine и взаимодействие с платформой.
В модуле рассматривается архитектура движка Flutter, способы вызова методов и обмена сообщениями с нативным кодом, а также общие подходы к доработке движка и сборке под разные аппаратные платформы.
Тема 1: Flutter Embedder, запуск приложения на произвольном оборудовании
Тема 2: Взаимодействие с платформенным кодом (platform channels, Pigeon, native assets)
Тема 3: Использование нативных Views из Android / iOS, обработка системных событий
Тема 4: Устройство Flutter Engine, Add-to-App
Тема 5: Консультация по ДЗ + практика
Оптимизация производительности
В модуле рассматриваются вопросы анализа производительности, лучшие практики по оптимизации виджетов и алгоритмов приложения, выделению сложной логики в отдельный поток выполнения.
Тема 1: Профилирование потоков приложения
Тема 2: Изоляты для вычислительных задач
Тестирование и публикация
В модуле будут рассмотрены вопросы создания автоматических тестов для алгоритмов, виджетов и приложения в целом, подготовки библиотек и приложений к публикации на pub.dev и в магазинах приложений Google Play Store и Apple Store, особенности публикации для Huawei.
Тема 1: Unit-тестирование и виджет-тесты
Тема 2: Интеграционные тесты
Тема 3: Создание собственных компонентов, публикация на pub.dev
Тема 4: Сбор информации о функционировании приложения, публикация в магазины
Курсовой проект
Завершающий модуль с самостоятельной разработкой функционального приложения с поддержкой сетевого взаимодействия, изолятов, платформенного кода, разметки страниц с использованием анимации и навигации.
Тема 1: Консультация по проектам и домашним заданиям
Тема 2: Защита проектных работ
Тема 3: Подведение итогов курса
Также вы можете получить полную программу, чтобы убедиться, что обучение вам подходит
Выпускной проект
На протяжении всего курса вы будете работать над собственным проектом. Его разработка нужна для окончательного закрепления знаний, которые были получены в рамках пройденных занятий. При успешном выполнении он станет образцом кода, который Flutter-разработчик сможет показывать будущим работодателям.
Преподаватели
Эксперты-практики делятся опытом, разбирают кейсы студентов и дают развернутый фидбэк на домашние задания
Ближайшие мероприятия
Открытый вебинар — это настоящее занятие в режиме он-лайн с преподавателем курса, которое позволяет посмотреть, как проходит процесс обучения. В ходе занятия слушатели имеют возможность задать вопросы и получить знания по реальным практическим кейсам.
- Подмена зависимостей и внутренних слоёв фреймворка: разберём механизм подмен для сервисов, сетевых запросов, локальных баз данных и платформенных каналов, обсудим, как правильно выбирать инструменты (mockito, build_runner, flutter_test, patrol) и где стоит применять разные варианты «заглушек».
- Тесты интерфейса (UI/Golden tests) и интеграционные тесты: рассмотрим, как быстро и эффективно писать UI-тесты: от тестов виджетов до скриншот-тестирования (Golden tests), разберёмся, как настраивать интеграционные тесты с учётом подмены зависимостей и как протестировать реальные пользовательские сценарии (формы, потоки регистрации, покупки и т.д.) на симуляторах/эмуляторах.
- Автоматизация и CI: изучим процессы настройки непрерывного тестирования в GitHub Actions и Gitlab, также методов быстрой генерации отчётов (логирование, покрытие).
Каким слушателям вебинар будет полезен?
- Flutter-разработчикам, которые хотят глубже погрузиться в тестирование всех слоёв приложения и повысить надёжность своего кода.
- QA-инженерам, занимающимся мобильными проектами и стремящимся научиться грамотно использовать Mock/Stub-объекты для тестирования интерфейса и целостных сценариев.
- Тимлидам и руководителям, желающим наладить чёткий процесс релизов с прозрачными метриками качества и избежать проблем, связанных с недотестированными фичами.
Что в результате вебинара узнают пользователи? Как/где смогут применить полученные навыки?
- Как тестировать весь стэк: от логики до интерфейса: участники поймут, как корректно подменять сервисы и платформенные вызовы, а также внедрять UI-тесты и Golden-тестирование, чтобы находить проблемы в ранней стадии и грамотно интегрировать интеграционные тесты
- Слушатели узнают, как собирать и запускать комплексные сценарии, которые проверяют несколько модулей приложения (например, авторизацию и работу со сторонними сервисами) в одном тестовом запуске.
- Как автоматизировать и масштабировать процесс применяя изученные техники, разработчики и QA-специалисты смогут внедрить CI/CD-процессы, где каждый коммит автоматически проходит все необходимые тесты (юнит, виджеты, UI и интеграционные)
1. Введение в серверлесс-архитектуру с использованием Flutter и Firebase:
- Обзор возможностей Firebase (аутентификация, Firestore, хранилище, аналитика).
- Почему Firebase — отличный выбор для создания серверлесс-приложений на Flutter.
2. Практическая демонстрация:
- Настройка проекта Flutter и подключение Firebase.
- Создание аутентификации пользователя с помощью Google и Email/Password.
- Работа с Firestore (документы и коллекции) для хранения данных.
- Пример простого приложения — список задач с добавлением, удалением и редактированием через коллекции Firestore.
3. Рекомендации по оптимизации:
- Лучшие практики для работы с Firestore в Flutter.
- Как избегать частых ошибок и улучшать производительность приложения.
Каким слушателям вебинар будет полезен?
- Разработчикам Flutter, которые хотят освоить серверлесс-подход для упрощения разработки приложений.
- Мобильным разработчикам, планирующим перейти на архитектуры без серверов для ускорения релиза продуктов.
- Начинающим разработчикам, интересующимся интеграцией Flutter с Firebase, чтобы ускорить создание приложений.
Что узнают участники?
- Как быстро начать работу с Firebase и интегрировать его в Flutter-приложение.
- Основы работы с Firestore:
- Создание коллекций и документов.
- Добавление, изменение, удаление и чтение данных.
1. Основы работы с AR во Flutter
Мы рассмотрим, что такое дополненная реальность, как работают платформы ARKit и ARCore, и как они интегрируются с Flutter. Также познакомимся с ключевыми плагинами, такими как ar_flutter_plugin и flutter_unity_widget, и научимся настраивать окружение для работы с AR.
2. Практическая реализация AR-приложений
Мы создадим базовое приложение с функциями:
- Распознавание поверхностей.
- Размещение интерактивных 3D-объектов в реальном мире.
- Взаимодействие пользователя с AR-объектами.
Также мы обсудим, как обеспечить кроссплатформенность между iOS и Android.
3. Будущее AR и оптимизация приложений
Мы разберём, как оптимизировать производительность AR-приложений для мобильных устройств и обсудим перспективы развития Flutter для работы с 3D-графикой, дополненной реальностью и Impeller (новым графическим движком).
Что нового узнают участники:
- Как работают технологии дополненной реальности и как интегрировать их в свои приложения на Flutter.
- Какие плагины и инструменты наиболее удобны для разработки AR.
- Лучшие практики для создания интерактивных и производительных AR-приложений.
- Перспективы развития Flutter в контексте AR и 3D-графики.
Для кого будет полезен вебинар:
- Flutter-разработчикам, желающим освоить дополненную реальность и внедрить её в свои проекты.
- Начинающим AR-разработчикам, которые хотят попробовать свои силы на кроссплатформенной технологии.
- UI/UX-дизайнерам, интересующимся разработкой пользовательского опыта для AR.
Прошедшие
мероприятия
Возможность пройти вступительное тестирование повторно появится только через 3 дня
Результаты тестирования будут отправлены вам на email, указанный при регистрации.
Тест рассчитан на 30 минут, после начала тестирования отложить тестирование не получится!
Корпоративное обучение для ваших сотрудников
- Курсы OTUS верифицированы крупными игроками ИТ-рынка и предлагают инструменты и практики, актуальные на данный момент
- Студенты работают в группах, могут получить консультации не только преподавателей, но и профессионального сообщества
- OTUS проверяет знания студентов перед стартом обучения и после его завершения
- Простой и удобный личный кабинет компании, в котором можно видеть статистику по обучению сотрудников
- Сертификат нашего выпускника за 5 лет стал гарантом качества знаний в обществе
- OTUS создал в IT более 120 курсов по 7 направлениям, линейка которых расширяется по 40-50 курсов в год
Отзывы
Сертификат о прохождении курса
OTUS осуществляет лицензированную образовательную деятельность. В конце обучения вы получите сертификат OTUS о прохождении курса
После обучения вы:
- заберете с собой полный комплект обучающих материалов: видеозаписи всех вебинаров, презентации к занятиям, а также решение задач и проектов в виде кода на github и другие дополнительные материалы
- получите сертификат о прохождении курса
- приобретете опыт Flutter-разработки
Flutter Mobile Developer
Полная стоимость
Стоимость указана для оплаты физическими лицами
вычета до 13% стоимости обучения. Пройдите тестирование и менеджер вас проконсультирует
+7 499 938-92-02 бесплатно