Актуальная программа

Flutter Mobile Developer

Кроссплатформенная мобильная разработка

26 апреля

5 месяцев

Онлайн

Вт/Пт 20:00 Мск

Для кого этот курс?

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

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

Необходимые знания

  • опыт программирования на любом языке программирования
  • навыки использования git

Будет плюсом

  • знакомство с мобильной разработкой
  • опыт работы в Android Studio или VS Code
  • знание шаблонов проектирования

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

  • Научитесь использовать инструменты необходимые для Flutter-разработчика: Dart, Platform-Specific Code, Skia, MVVM, Bloc, Redux, MobX и др.
  • Создадите свой аналог WhatsApp и Telegram, CoinMarketCap, Todoist в рамках разработки индивидуальной проектной работы, которая пополнит ваше портфолио
  • Общение напрямую с преподавателями на лекциях и в Telegram-чате, обсуждение кейсов, задач, которые стоят перед вами

Освойте необходимые навыки для 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.

Практические домашние задания на курсе подготовлены таким образом, чтобы помочь вам не только применить знания на практике, но и помочь в реализации проектной работы.

Почему Flutter?

Flutter позволит вам создавать красивые, быстрые и кроссплатформенные приложения для iOS и Android, используя один и тот же код.

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

Занятия в OTUS — это не заранее отснятый материал. Вебинары проходят в режиме реального времени, где преподаватели-практики рассказывают об актуальных кейсах и инструментах, которые нужны им в работе сейчас. Вы сможете активно участвовать голосом, практиковаться, задавать вопросы и получать обратную связь. Такой формат дает реальный результат.

А если вы не смогли посетить занятие в реальном времени, то сможете посмотреть его в записи и задать вопрос преподавателю в закрытом Telegram-чате.

Портфолио


Подготовка проекта для портфолио в течение всего курса

Эксперты


Много практики и живого общения с преподавателями

Оптимальная нагрузка


Возможность совмещать учебу с работой

Трудоустройство

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

  • Получите помощь с оформлением резюме, портфолио и сопроводительного письма
  • Разместите свое резюме в базе OTUS и сможете получать приглашения на собеседования от партнеров

Flutter-разработчик

Перспективы направления
Средний уровень зарплат в Москве:
60 000Junior+ специалист
180 000Middle+ специалист
300 000Senior специалист
500
актуальных вакансий

Работодатели курса

Формат обучения

Интерактивные вебинары


2 онлайн-трансляции по 2 ак.часа в неделю. Доступ к записям и материалам остается навсегда

Практика


Домашние задания + проектная работа, для усиления вашего портфолио и компетенций

Активное комьюнити


Общайтесь с преподавателями голосом на вебинарах, в закрытом чате Telegram и при проверке домашних заданий

Программа

Введение в Dart

В модуле рассматривается синтаксис языка Dart (с учетом Null Safety и новых конструкций Dart 2.17) и инструментальные средства компиляции и анализа приложений, создания и установки пакетов.

Тема 1: Введение в язык программирования Dart

Тема 2: Объектно-ориентированное программирование на Dart

Тема 3: Инструментальная поддержка 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: Кроссплатформенная разработка для Web

Тема 12: Кроссплатформенная разработка для Desktop

Тема 13: Низкоуровневое рисование с использованием сцены и возможностей Canvas.

Асинхронность и сетевое взаимодействие

В модуле разбираются способы генерации исходных текстов по описанию модели данных или сетевого API, библиотеки для локального хранения данных и обмена информацией по сети, а также архитектура приложений для Firebase, Auth0 и сервисов Google.

Тема 1: Асинхронность в Dart, потоки и Future

Тема 2: Сетевое взаимодействие, хранение данных на устройстве

Тема 3: Использование кодогенерации во Flutter. Сериализация данных в JSON. Создание неизменяемых классов.

Тема 4: Интеграция с внешними API и бессерверные приложения

Анимация и мультимедиа в Flutter

В модуле рассматриваются вопросы создания визуальной привлекательности приложений (через программные и внешние анимации, игровые элементы) и работы с мультимедиа (камерой, звуком, видео).

Тема 1: Неявные анимации во Flutter, Hero-анимации

Тема 2: Явные анимации во Flutter, переходы между страницами. Управление анимацией. Кривые.

Тема 3: Игровые движки во Flutter. Создание 3D-анимации.

Тема 4: Интеграция сторонних анимаций во Flutter-приложение.

Тема 5: Поддержка мультимедиа и камеры во Flutter. Обработка изображений, распознавание и классификация.

Тема 6: Интернационализация и доступность

Архитектура приложений, управление состоянием и навигация

Модуль полностью посвящен рассмотрению архитектурных подходов к управлению состоянием приложений и реализации навигации между страницами (подходы 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: Взаимодействие с платформенным кодом (platform channels, Pigeon, native assets)

Тема 2: Использование нативных Views из Android / iOS, обработка системных событий

Тема 3: Устройство Flutter Engine, Add-to-App

Тема 4: Flutter Embedder, запуск приложения на произвольном оборудовании

Оптимизация производительности

В модуле рассматриваются вопросы анализа производительности, лучшие практики по оптимизации виджетов и алгоритмов приложения, выделению сложной логики в отдельный поток выполнения.

Тема 1: Профилирование потоков приложения

Тема 2: Изоляты для вычислительных задач

Тестирование и публикация

В модуле будут рассмотрены вопросы создания автоматических тестов для алгоритмов, виджетов и приложения в целом, подготовки библиотек и приложений к публикации на pub.dev и в магазинах приложений Google Play Store и Apple Store, особенности публикации для Huawei.

Тема 1: Unit-тестирование и виджет-тесты

Тема 2: Интеграционные тесты

Тема 3: Создание собственных компонентов, публикация на pub.dev

Тема 4: Сбор информации о функционировании приложения, публикация в магазины

Курсовой проект

Завершающий модуль с самостоятельной разработкой функционального приложения с поддержкой сетевого взаимодействия, изолятов, платформенного кода, разметки страниц с использованием анимации и навигации.

Тема 1: Выбор темы и организация проектной работы

Тема 2: Консультация по проектам и домашним заданиям

Тема 3: Защита проектных работ

Тема 4: Подведение итогов курса

Также вы можете получить полную программу, чтобы убедиться, что обучение вам подходит

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


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

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

Руководитель курса

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

Flutter+Kotlin Developer

Yandex

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

Инженер-разработчик

VK

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

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

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

Владислав Беленьков

Flutter developer

Эксперты-практики делятся опытом, разбирают кейсы студентов и дают развернутый фидбэк на домашние задания

Прошедшие
мероприятия

Денис Гладкий
Открытый вебинар
Разработка кастомных анимаций во Flutter
Дмитрий Золотов
Открытый вебинар
Адаптивная верстка сложных интерфейсов
Для доступа ко всем прошедшим мероприятиям необходимо пройти входное тестирование
Возможность пройти вступительное тестирование повторно появится только через 3 дня
Результаты тестирования будут отправлены вам на email, указанный при регистрации.
Тест рассчитан на 30 минут, после начала тестирования отложить тестирование не получится!

Корпоративное обучение для ваших сотрудников

Отус помогает развивать высокотехнологичные Команды. Почему нам удаётся это делать успешно:
  • Курсы OTUS верифицированы крупными игроками ИТ-рынка и предлагают инструменты и практики, актуальные на данный момент
  • Студенты работают в группах, могут получить консультации не только преподавателей, но и профессионального сообщества
  • OTUS проверяет знания студентов перед стартом обучения и после его завершения
  • Простой и удобный личный кабинет компании, в котором можно видеть статистику по обучению сотрудников
  • Сертификат нашего выпускника за 5 лет стал гарантом качества знаний в обществе
  • OTUS создал в IT более 120 курсов по 7 направлениям, линейка которых расширяется по 40-50 курсов в год

Отзывы

Иван Бачарников

28.06.2022
Очень подробный и развёрнутый курс для начинающих Flutter-разработчиков. Отзывчивые преподаватели, хорошо подготовленный материал для лекций, кроме того, сам материал обновляется по мере обновления фреймворка. Домашние задания нацелены на закрепление полученных знаний и навыков. В целом курс понравился и смело могу его рекомендовать.

Ирина Ефремова

27.07.2021
Хороший курс для тех, кто имеет базовые знания в мобильной разработке. Структура курса построена так, чтобы охватить основные темы языка от простого к сложному, а формат домашних заданий позволяет посмотреть на код готового приложения изнутри и постепенно реализовать его возможности. Очень удобно, что все занятия можно посмотреть в записи и пересмотреть их когда нужно. Преподаватели всегда на связи, всегда поддерживают, быстро отвечают и дают подробные комментарии по выполненным домашним заданиям. Отдельное спасибо Андрею Смирнову за создание дружеской атмосферы и моральную поддержку! Закончив курс, я уверена, что смогу написать простое мобильное приложение на языке flutter и буду использовать полученные знания в дальнейшем. Большое спасибо за хороший курс!

Katerina Filatova

27.07.2021
Добрый день. недавно окончила курс по Flutter. Хотелось бы поделиться впечатлениями) Я андроид-разработчик с более чем 3 -летним опытом работы. Кроссплатформой интересовалась давно. как-то в проф телеграмм канале увидела предложение для нативщиков по поводу курсов этих. Заинтересовалась. сразу же прошла тест вступительный и записалась на обучение. Так вышло, что училась я 2 раза вместо одного, по личным причинам) За более чем 9 месяцев обучения имела честь познакомиться с большим числом профессионалов, преподавателей Otus. Т к я стала свидетелем запуска первого, дебютного потока. а также студенткой второго потока, то могу с уверенностью говорить о том, что материал ко второму потоку стал более структурирован, процессы были выстроены отлично, вебинары не хотелось пропускать, всегда было, о чём поговорить. это стало уже как традицией - 2 раза в неделю, по вечерам говорить на интересные проф темы) Время прошло быстро, практически на границе окончания второго потока курса я получила предложение о работе. Решила попробовать свои силы и посмотреть, что вынесла с курса. И меня пригласили на работу, как flutter инженера) Что могу сказать по итогам своей учёбы) Оно того стоит. времени, сил, стоит. Кроме новых знаний потрясающих, те, кто захочет прийти дальше, получат богатый опыт, общение с наиинтереснейшими людьми и много положительных эмоций. Отдельное спасибо организаторам курса за то, что дали мне возможность остаться на "второй год" )) т к первый поток прошёл мимо меня, хотя я и должна была закончить курс давно. От себя лично хочу пожелать всей команде OTUS развития, процветания и новых и суперских идей)

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

09.04.2021
Отличный курс. Сейчас, с выходом Flutter 2.0 он, скорее всего, будет сильно изменен и доработан и станет уже совсем другим, уверен, что в лучшую сторону. А на момент перед прохождения курса (мы закончили курс как раз к выходу Flutter 2.0) он содержал все необходимые темы для того, чтобы изучить технологию Flutter и язык Dart. Асинхронное программирование, хранение данных, изоляты, управление состоянием и нативные функции, построение дерева виджетов и навигация. Все основное и важное было рассмотрено. Проверка домашних заданий осуществлялась вовремя. Плюс для каждого ДЗ были сделаны заготовки и можно было выполнять задание сосредоточившись именно на нужном материале, а не писать каждый раз boilerplate код. Ведущий курса Андрей и преподаватели, которые вели отдельные лекции - отличные специалисты, практикующие программирование на Flutter. Всегда помогали в слэке с вопросами и старались внести коррективы в процессе занятий, если была необходимость.

Андрей Глащенко

25.02.2021
Понравилось: очень грамотные преподаватели и что важнее, реальные практики. Я прямо даже удивлен, что вам удалось собрать такой состав. В целом неплохо структурированная программа курса. Не понравилось: в начале курса - постоянные выбивания из тайминга, некоторые лекции занимали в два раза дольше. Позже это стабилизировалось. Проверка некоторых ДЗ занимала ОЧЕНЬ долго (несколько недель). За это время уже полностью забываешь контекст того что делал. Разное: Вначале показалось странным, что совсем не проходятся основы Dart, но по факту оказалось не страшно: достаточно было потратить несколько часов на доку по синтаксису. В целом 4 из 5. Есть что улучшить, но фундаментально - все хорошо.

Константин Кузьминов

15.02.2021
Курс очень хорошо систематизирует знания, углубленно даёт важные темы и обучает промышленной разработке на флаттере. Для полных новичков не подойдёт - нужно понимать хотя бы основы программирования, желательно в мобильной разработке или во фронтэнде, и знать основы git и github. Материал весьма объемный и сложный, но подается вполне понятно и доступно. Преподаватели очень доброжелательны, готовы помочь. Я всегда мог обсудить непонятные вопросы в слаке курса и получал всю возможную помощь. Понравились код ревью и проверка ДЗ - все замечания четко и по делу. Понравился очень основательный подход в сложных темах - анимации, state management, тестирование. Не понравилось нерегулярная выдача ДЗ. Хотелось бы получать задание на каждую неделю. В целом курсом доволен, всё, что хотел и на что рассчитывал - получил. И спасибо преподавателям за работу! )

Элина Сафарьянова

02.02.2021
Очень довольна, что пошла именно на этот курс. Особенно радует проверка ДЗ и ревью кода преподавателями, это именно то, чего не хватает при самостоятельном обучении. Материалы курса хорошо структурированы и в них легко ориентироваться, думаю, что еще не раз буду пересматривать лекции с курса. После сдачи выпускной работы и отдыха обязательно выберу себе еще какой-нибудь курс)

Сертификат о прохождении курса

OTUS осуществляет лицензированную образовательную деятельность. В конце обучения вы получите сертификат OTUS о прохождении курса

После обучения вы:


  • заберете с собой полный комплект обучающих материалов: видеозаписи всех вебинаров, презентации к занятиям, а также решение задач и проектов в виде кода на github и другие дополнительные материалы
  • получите сертификат о прохождении курса
  • приобретете опыт Flutter-разработки

Частые вопросы

Что, если в середине курса я не смогу продолжать обучение?
У вас есть право одного бесплатного трансфера в другую группу
Обязательно ли защищать выпускной проект?
Для получения сертификата OTUS необходимо сдать проект. Кроме того, проект необязательно защищать перед аудиторией, а можно сдать в чате с преподавателем.
С какого момента я смогу заниматься трудоустройством?
Получить карьерную консультацию вы сможете уже в начале обучения. Остальные опции: помощь с резюме, добавление резюме в нашу базу специалистов и т.д. будут доступны после окончания обучения.
Я могу вернуть деньги?
Да, вы можете сделать возврат средств пропорционально оставшимся месяцам обучения.