Обозначение | Уровень важности |
---|---|
(****) | Без изучения этого материала невозможно успешное прохождение темы |
(***) | Материал, без которого сложно успешно завершить изучение темы |
(**) | Важный материал, рекомендуемый к изучению |
(*) | Полезная литература, улучшающая навыки |
Программа обучения разделена на секции. Каждая секция состоит из
- Теоретической части;
- Практической части;
- Теста;
Каждая секция начинается с выполнения практического задания. Теоретический материал изучается по мере необходимости для выполнения практики. После завершения практического задания необходимо в github создать merge request на ментора, чтобы он смог проверить задание. Если задание выполнено успешно, то ментор предоставляет тест по пройденной секции. Для успешного прохождения теста в большинстве случаев достаточно знаний, полученных в ходе выполнения практического задания и прочтения необходимой для него теории.
Стоит отметить, что ментор в силу различных обстоятельств не всегда может оперативно проверять merge request'ы и предоставлять тесты. Поэтому, если ментор вам говорит, что сможет проверить задание/предоставить тест только через несколько часов - приступайте к выполнению следующей секции программы обучения. Важно одновременно непроверенным может быть не более одной секции программы обучения. То есть, чтобы приступить к 5ой секции, Ваше практическое задание по 3ей секции должно быть одобрено, а тест пройден.
В случае возникновения вопросов во время выполнения практического задания, можно просить помощи у ментора. Однако не стоит подходить к ментору с недекомпозированной задачей из разряда "Я не понимаю, как сверстать экран". Декомпозируйте задачу, чтобы задать ментору более конкретный вопрос. Также не стоит сразу же спрашивать ментора, как только возникла трудность. Для начала попробуйте самостоятельно найти ответ на свой вопрос в интернете.
1. ООП:
- Основные принципы (****)
2. SOLID
- Принципы SOLID (***)
- SOLID в Flutter (*)
3. Работа с Git, gitflow
- Основные команды : init, clone, add, status, stash, commit (-m, -am, --amend), fetch, pull, push, branch, checkout, merge (****)
- Что такое git flow (***)
- Первоначальная настройка: конфигурация username и email (***)
4. Создание проекта, среда разработки Android Studio
- [Установка Android Studio] (https://developer.android.com/studio/preview/index.html) (****)
- [Установка Flutter] (https://flutter.dev/docs/get-started/install) (****)
- Создание нового проекта (****)
- Основы интерфейса Android Studio (****)
5. Pub
- Using packages (***)
- pub.dev (***)
- В GitHub создать новый репозиторий и следуя инструкциям, склонировать его к себе на компьютер. В настройках репозитория дать доступ ментору.
- В глобальных конфигурациях git прописать корректное имя пользователя и e-mail, которые будут использоваться для подписи коммитов.
- Добавить
.gitignore
. Содержание файла можно взять с ресурса: flutter/flutter#13892. Cделать коммит и запушить изменения на remote-сервер вmaster
ветку - Переключиться на новую ветку
develop
. - Создать новый flutter-проект.
- Добавить в pubspec-файл библиотеку retrofit https://pub.dev/packages/retrofit
- Запустить проект на телефоне/симуляторе
- Cделать коммит и запушить изменения на remote-сервер в
develop
ветку - После завершения работ над задением отправить ментору количество затраченного времени на практическое выполнение задачи.
1. Верстка:
- Introduction to widgets (****)
- Layouts in Flutter (****)
- Introduction to animations (****)
2. Полезные ресурсы
- Flutter Layout Cheat Sheet (**)
- Flutter by Example (**)
- Code style (**)
- Разработка UI с помощью Flutter (*)
- Flutter. Часть 4. Для веб-разработчиков (*)
Реализовать игру Quiz App. 10 вопросов, время на вопрос:
- Легкий - 15 сек
- Средний - 25 сек
- Сложный - 35 сек
- Ознакомиться с макетом Quiz App: https://dribbble.com/shots/6508352-Quiz-App-UI-Oma
- Декомпозировать задачу верстки на виджеты, завести соответствующий чек-лист на карточке в Trello
- Выполнить верстку виджетов и экрана в соответствии с макетом
- Запустить проект на телефоне/симуляторе
- Следуя git flow закоммитить изменения на remote-сервер, создать MR, назначить его на ментора
- После завершения работ над задением отправить ментору количество затраченного времени на практическое выполнение задачи.