Постер курса

OTUS

Flutter Mobile Developer

  • Начальный уровень
  • Наставник: Нет
  • Сертификат: Нет
  • Формат: Online
  • Рассрочка: Нет
  • Язык: Русский
  • Осталось мест: Неограничено
Записаться

Flutter Mobile Developer

Что даст вам этот курс


Этот курс подходит вам, если:
— у вас уже есть опыт в программировании, и вы хотите научиться писать мультиплатформенные мобильные приложения, использующие одну и ту же кодовую базу для iOS и Android.

Цель курса — научиться создавать современные кроссплатформенные приложения с помощью Flutter.

Вы научитесь:

новому языку Dart. Этот язык очень гибок и легок в использовании. Именно поэтому разработчики Flutter выбрали именно его. Освоив Dart, вы сможете писать Android-, iOS-, Web- и даже Desktop-приложения;

понимать, как работает Flutter изнутри. Flutter достаточно прост, чтобы начать решать с помощью него задачи в первый же день обучения. Но очень важно разобраться, как он работает, чтобы не совершать критических ошибок;

использовать platform-specific code для интеграции с нативной частью мобильного приложения. Если вам нужен доступ к hardware или какому-либо сложному модулю, который требователен к производительности, то Flutter может взаимодействовать с нативным кодом и решать даже эти задачи;

создавать свои собственные анимации. Во Flutter очень хорошо развита возможность создавать анимации. И это понятно, т. к. Flutter использует Skia. Так что мы разберемся, как создать практически любую анимацию с помощью Flutter без какой-либо потери в производительности;

использовать современные библиотеки и фреймворки. Мы разберем самые популярные фреймвоки для работы с состоянием приложения: Bloc, Redux, MobX. Посмотрим, как организовать DI во Flutter на примере inject.dart и фреймворка get_it.

Стажировка для студентов курса в OTUS

После окончания 5 модуля обучения OTUS возьмет к себе 6 стажеров из числа лучших студентов группы. Чтобы попасть на стажировку, вам нужно будет подать заявку и пройти отбор. 

График и срок стажировки с каждым кандидатом будет обсуждаться индивидуально в зависимости от времени, которым располагает стажер. Средний срок составит 1 месяц. Стажировка не оплачивается.

Стажер будет работать над мобильным приложением OTUS под руководством куратора. Это отличная возможность приобрести опыт в мобильной разработке на Flutter с нуля в реальном проекте и пополнить свое портфолио. 


Много практики и живого общения с преподавателями
Выстраивание инфраструктуры "с нуля"
Проектирование архитектуры приложений
Подготовка проекта для портфолио в течение всего курса

Выпускной проект


Вам будет предложено несколько вариантов на выбор, например:1. Чат с использованием FireStore (загрузка фото, видео, файлов, работа с камерой, push-уведомления).2. Курсы валют(криптовалют, акций и т. д.). Работа с графиками, анимациями, внешними api, inapp push-уведомления при наступлении каких либо событий.3. Личный таск-менеджер + работа с заметками (работа с локальными БД, inapp push-уведомления).4. Ваша идея приложения.

Процесс обучения


Всё обучение проходит онлайн: вебинары, общение с преподавателями и вашей группой в слаке курса, сдача домашних работ и получение обратной связи от преподавателя. Вебинары идут дважды в неделю по 1,5 часа. Все вебинары сохраняются и в записи в вашем личном кабинете. Домашнее задание выдается в среднем раз в 2 недели, а его выполнение занимает от 3 до 5 часов. Мы рекомендуем выполнять самостоятельную работу, так как это поможет качественно освоить все изучаемые технологии на практике с поддержкой и обратной связью преподавателей-экспертов. Возникающие вопросы по материалам лекций, домашним заданиям и по выпускному проекту можно задавать преподавателям в Slack или во время вебинаров. Курс длится 5 месяцев, финальный месяц отводится для выполнения проектной работы, «досдачи» домашних заданий и вопросов преподавателям. Выполнение проектной работы помогает усвоению практических навыков, а тема проекта отдельно выносится в сертификат. Во время работы над проектом студенты получают консультации и обратную связь от преподавателей в Slack группы и на проектных занятиях.
Программа обучения
Введение в Dart
  • Тема 1. Введение в язык программирования Dart
  • Тема 2. Объектно-ориентированное программирование на Dart
  • Тема 3. Инструментальная поддержка Dart
Flutter Framework
  • Тема 4. Концепция реактивного пользовательского интерфейса, основные графические примитивы ui.Window
  • Тема 5. Анатомия отрисовки виджетов
  • Тема 6. Понятие и жизненный цикл виджета
  • Тема 7. Базовые виджеты содержания (текст, изображения, пиктограммы). Составные виджеты. Виджеты разметки
  • Тема 8. Виджеты разметки. Создание прокручиваемых виджетов.
  • Тема 9. Виджеты ввода информации, работа с формами
  • Тема 10. Лучшие архитектурные практики для создания приложений
  • Тема 11. Лучшие архитектурные практики для создания приложений (часть 2)
  • Тема 12. Кроссплатформенная разработка для Web
  • Тема 13. Кроссплатформенная разработка для Desktop
  • Тема 14. Низкоуровневое рисование с использованием сцены и возможностей Canvas.
Асинхронность и сетевое взаимодействие
  • Тема 15. Асинхронность в Dart, потоки и Future
  • Тема 16. Сетевое взаимодействие, хранение данных на устройстве
  • Тема 17. Использование кодогенерации во Flutter. Сериализация данных в JSON. Создание неизменяемых классов.
  • Тема 18. Интеграция с внешними API и бессерверные приложения
Анимация и мультимедиа в Flutter
  • Тема 19. Неявные анимации во Flutter, Hero-анимации
  • Тема 20. Явные анимации во Flutter, переходы между страницами. Управление анимацией. Кривые.
  • Тема 21. Игровые движки во Flutter. Создание 3D-анимации.
  • Тема 22. Интеграция сторонних анимаций во Flutter-приложение.
  • Тема 23. Поддержка мультимедиа и камеры во Flutter. Обработка изображений, распознавание и классификация.
  • Тема 24. Интернационализация и доступность
Архитектура приложений, управление состоянием и навигация
  • Тема 25. Inherited-виджеты. Библиотеки Provider и Riverpod.
  • Тема 26. Clean-архитектура. Реализация инъекции зависимостей (getit, Provider/Riverpod)
  • Тема 27. Redux для управления состоянием, hook
  • Тема 28. Архитектура MWWM и Bloc
  • Тема 29. Архитектура MobX
  • Тема 30. Модель навигации как управление состоянием. Navigator 2.0
Flutter Engine и взаимодействие с платформой.
  • Тема 31. Flutter Engine и Add-to-App
  • Тема 32. Интеграция нативного кода
  • Тема 33. Взаимодействие с платформой, pigeon
  • Тема 34. Embedding, реализация кода для Desktop
Оптимизация производительности
  • Тема 35. Профилирование потоков приложения
  • Тема 36. Изоляты для вычислительных задач
Тестирование и публикация
  • Тема 37. Unit-тестирование и виджет-тесты
  • Тема 38. Интеграционные тесты
  • Тема 39. Создание собственных компонентов, публикация на pub.dev
  • Тема 40. Сбор информации о функционировании приложения, публикация в магазины
Курсовой проект
  • Тема 41. Выбор темы и организация проектной работы
  • Тема 42. Консультация по проектам и домашним заданиям
  • Тема 43. Защита проектных работ
  • Тема 44. Подведение итогов курса
Что нужно знать?
  • опыт программирования на любом языке программирования.
  • – навыки использования git.
  • – знакомство с мобильной разработкой;
  • – опыт работы в Android Studio или VS Code;
  • – знание шаблонов проектирования
Знания и навыки, которые приобретете
  • Создадите своё портфолио проектов, которое поможет в прохождении собеседований;
  • Если у вас есть соответствующее профильное образование, вы можете получить удостоверение о повышении квалификации.;
  • В результате обучения вы:
  • Будете иметь представление об основных классах задач Инженера Данных, инструментах, предназначенных для их решения, а также их преимуществах и особенностях;
Партнеры

Преподаватели

  • Николай Бакланов

    Компания ISS Art.

    Увлекся программированием еще со школы, потому что хотел делать игры. Первое время после университета писал игры на языке Actionscript, Flash. В мобильном программировании есть опыт во всех направлениях : iOS, Android. Занимался разработкой нативных приложений, есть опыт работы с Kotlin-Multiplatform и Flutter. Писал приложения для проигрывания музыки, а также работал с библиотекой OpenCV для реализации функций компьютерного зрения.Любит программировать, изучать новые технологии и пробовать применять их на практике. Преподаватель

  • Дмитрий Золотов

    Flutter Developer, Yandex

    DevOps, FullStack разработчик (Flutter/Python/Kotlin/GoLang/C++), системный администратор, приглашенный преподаватель в ИТМО, исследователь технологий электронного обучения. Опыт работы - 23 года.Руководил межфакультетской лабораторией перспективных информационных технологий в РГПУ им. А. И. Герцена, участвовал в создании и масштабировании ресурсов для электронного обучения (в т.ч. проект "Российская электронная школа"), проектировал и разрабатывал высоконагруженные веб-приложения и системы автоматизации. Контрибьютор в проект ReOpenLdap. Разрабатывал архитектуру отказоустойчивых конфигураций гибридного облака на основе Consul и Kubernetes, сервисных сетей, интеграционных платформ с использованием AMQP. Также являюсь преподавателем по компьютерным сетям, DevOps, операционным системам, мультимедиа-технологиям. Руководител отделом автоматизации процессов в финансовой организации, в которой был консультантом и DevOps по миграции систем с использованием облачных технологий, а также разработчиком для Android/iOS.Закончил Российский Государственный Педагогический Университет, 2002, учитель физики. Автор серии вебинаров по Kubernetes и кроссплатформенной разработке: https://www.youtube.com/channel/UCs_AMB-HbhHzMhE0VdBZByg Преподаватель

  • Денис Гладкий

    Гладкий Денис ИосифовичС 2013 г. преподаватель в Северном Арктическом Федеральном университете.C 2015 г. разработчик мобильных приложений.В 2019 г. выпустил собственное образовательное приложение VoltLab (Android/iOS, Adobe AIR). Более 30к активных пользователей. Стек технологий: Flutter, Adobe Air, Unity, Node JS, Git

  • Толеген Акилбеков

    Flutter developer, EPAM Systems.

    Толеген АкилбековFlutter разработчикВ IT более 5 лет, свой путь в IT начал как UX/UI дизайнер, после перешел в Android разработку, однако спустя полгода, после длительного анализа, компания решила, что Flutter - это быстро, дешево и перспективно. Так он стал Flutter разработчиком.Разработал множество приложений, начиная от приложений с дополненной реальностью, заканчивая приложениями для мобильных операторов.Интересы: футбол, шахматы и кофе

  • Алексей Адрианов

    Обожаю Flutter, люблю рассказывать про него и делиться своим опытом. Пишу на фреймворке с его выхода в первую релизную версию (декабрь 2018г.), до этого писал на нативном андроиде и немного веб.Учусь в магистратуре по направлению фундаментальной информатики.Люблю путешествия и инвестиции.