‎Wake up, Neo ‎IDE lvl 1 – ‎IntelliJ Idea ‎Обзор интерфейса ‎Создание и запуск проекта ‎Знакомство с системой контроля ‎версий git ‎Kotlin lvl 1 ‎Основы ‎Переменные, ‎типы данных ‎Арифметика, ‎строки ‎Логические и условные ‎операторы и выражения ‎Циклы, коллекции, функции ‎ООП ‎Классы и объекты ‎Основные принципы ООП ‎Null safety ‎Коллекции ‎List ‎MutableList ‎Kotlin lvl 2 ‎Коллекции ‎Map ‎Set ‎Функции ‎Функции высшего порядка ‎Extension функции ‎Классы ‎data class ‎sealed class ‎Делегаты ‎Делегированные свойства ‎Делегаты классов ‎Дженерики ‎object vs companion object ‎Git – lvl 1 ‎Разработка задач ‎Методологии разработки ‎Жизненный цикл задачи ‎Системы контроля версий ‎Обзор ‎Клиенты для работы с git ‎Основные консольные команды ‎Создание веток ‎Создание Pull Request ‎IDE lvl 2 – ‎Android Studio ‎Установка и подготовка среды ‎разработки ‎Создание первого проекта ‎Установка эмулятора ‎Запуск программы ‎Обзор структуры ‎User Interface lvl 1 – XML ‎Что такое XML ‎Вложенность тегов ‎Атрибуты ‎Схема ‎UI компоненты ‎Лейаут (контейнеры) ‎ConstraintLayout ‎LinearLayout ‎FrameLayout ‎RecyclerView ‎Базовые компоненты ‎ImageView ‎TextView ‎Button ‎Ресурсы ‎Строки ‎Изображения ‎Вектор ‎Растр ‎Стили ‎Как создать стиль ‎Темы (light, dark) ‎Messages ‎Toast ‎Snackbar ‎AndroidManifest lvl 1 ‎Анатомия AndroidManifest ‎Предназначение ‎Структура и синтаксис ‎Компоненты ‎Объявление и конфигурирование ‎компонентов ‎Activity ‎Service ‎Broadcast Receiver ‎Content Provider ‎Разрешения ‎Ресурсы ‎Android Package lvl 1 ‎Gradle Build Script ‎Основные блоки ‎android ‎minSDK ‎targetSDK ‎compileSDK ‎depencies ‎Основные типы зависимостей ‎implementation ‎api ‎compileOnly ‎Файлы сборок ‎APK ‎AAB ‎Components ‎Activity ‎Service ‎Broadcast Receiver ‎Content Provider ‎Application ‎Activity ‎Жизненный цикл Activity ‎Создание нового Activity ‎Навигация между Activity ‎Передача данных между ‎Activity lvl 1 ‎Обзор вариантов ‎Intents ‎Bundle ‎Сохранение состояния ‎Fragments ‎Fragment Lifecycles ‎Fragment State Changes ‎Fragment Manager ‎Fragment Transactions ‎Стандартные Fragments ‎DialogFragment ‎BottomSheetDialogFragment ‎Navigation ‎Activity Navigation ‎Передача данных между ‎Activity (и Fragments) lvl 2 ‎Parcelable ‎Serializable ‎Task and Back Stack ‎Single Activity Application ‎Fragment Navigation ‎JetPack Navigation ‎NavHost ‎NavGraph ‎NavController ‎SafeArgs ‎Deeplinks ‎UI-компоненты для навигации ‎BottomNavigation ‎NavigationDrawer ‎Storage lvl 1 ‎Files ‎SharedPreferences ‎SQLIte (локальная БД) ‎Multithreading lvl 1 ‎Потоки ‎Основной поток приложения ‎Пулл потоков ‎Concurrency ‎Handler / Looper ‎Synchronization ‎Network ‎REST ‎HTTP ‎OkHttp ‎Работа с JSON ‎GSON ‎Kotlinx Serialization ‎Retrofit ‎Service ‎Foreground Service ‎Background Service ‎Started / Bound service ‎Service Notification ‎Broadcast Reciever ‎Создание BR ‎Подписка на изменения ‎Интент-фильтры ‎Ограничения ‎Local Broadcast ‎Global Broadcast ‎Content Provider ‎Доступ к данным через CP ‎Создание CP ‎Cursor ‎User Interface lvl 2 ‎Инфлейтинг ‎Кастомные компоненты ‎Ресурсы ‎Assets ‎image ‎vector ‎Локализация ‎Plurals ‎Загрузка изображений ‎Design Patterns ‎Build Pattern ‎Repository Pattern ‎Factory Pattern ‎Observer Pattern ‎Architecture ‎Design Principles ‎SOLID ‎Inversion of Control ‎Presentation patterns ‎MVVM ‎MVP ‎MVI ‎MVC ‎Clean Architecture ‎UI Layer ‎ViewBinding ‎DataBinding ‎ViewModel ‎LiveData ‎Storage lvl 2 ‎Datastore ‎Room ‎Dependency ‎Injection ‎Сервис локатор ‎DI ‎DI фреймворки ‎Dagger ‎Hilt ‎Koin ‎Kodein ‎Multithreading lvl 2 ‎Корутины ‎Flow ‎RxJava ‎WorkManager ‎Google Services ‎Google Play Services ‎Firebase ‎Crashlytics ‎Auth ‎Analytics ‎Cloud Messaging (Push ‎Notification) ‎A/B test ‎Remote Config ‎Dynamic Links ‎Android Package lvl 2 ‎Использование Gradle плагинов ‎Конфигурация сборки ‎Многомодульность ‎App Flavors ‎Планирование и запуск задач ‎Продвинутый Gradle ‎Многопоточная сборка ‎Оптимизация ‎User Interface lvl3 – ‎Compose UI ‎State ‎Side-effects ‎Theming ‎Modifier ‎Layout ‎List ‎Text ‎JetPack Compose Navigation ‎AndroidManifest lvl 2 ‎Метаданные приложения ‎Слияние манифестов ‎Storage lvl 3 ‎Realm ‎Firebase Realtime Database / ‎Firestore ‎ObjectBox ‎Memory management ‎Стек и куча ‎Сборщик мусора ‎Retain cycles ‎Memory leaks ‎Code Quality ‎Debugging ‎Линтеры ‎LeakCanary ‎Detekt ‎CI / CD ‎Подготовка рабочего окружения для ‎разработки Android ‎приложений – установка и настройка ‎Android Studio. ‎Все что нужно для освоения базовой ‎верстки экранов, используя классический ‎способ – XML разметку. ‎Блок посвящен настройке внешнего вида ‎приложения в соответствии с ‎требованиями дизайна. Также привязке ‎элементов экрана к определенным ‎настраиваемым событиям, для ‎взаимодействия пользователя с ‎приложением. ‎Это отправная точка для понимания и ‎создания пользовательских интерфейсов. ‎Следующий уровень освоения Kotlin. Уже ‎не основы, но все еще базовые понятия. ‎Важные инструменты языка, используемые ‎в каждом проекте. ‎Введение в программирование на Kotlin – ‎основной язык для создания Android- ‎приложений. Эта часть курса служит ‎прочным фундаментом для дальнейшего ‎изучения и разработки на платформе ‎Android, а также улучшит общие навыки ‎программирования. ‎Знакомство с продуктами компании ‎JetBrains. Первая среда разработки для ‎написания кода – IntelliJ IDEA. ‎AndroidManifest.xml является ключевым ‎элементом любого Android-проекта. Это ‎файл конфигурации, который помогает ‎системе определить важные параметры ‎приложения, такие как название, иконку, ‎доступ к специфическим функциям ( ‎например, камере или интернету) и ‎организацию его компонентов (активити, ‎сервисы и т.д.). ‎Основные компоненты Android ‎приложения – определяют структуру и ‎поведение приложения. Овладение этими ‎компонентами поможет создавать гибкие и ‎функциональные приложения, которые ‎эффективно взаимодействуют с системой ‎Android, другими приложениями и ‎пользователями. ‎Activity представляет собой ‎пользовательский интерфейс приложения. ‎Может работать с другими компонентами ‎приложения, такими как сервисы, бродкаст- ‎приемники, контент-провайдеры и т. д. ‎Понимание принципов работы в команде, ‎жизненный цикл задачи от ее создания ‎менеджерами до публикации изменений в ‎production. Что такое и зачем нужна ‎система контроля версий. ‎Фрагменты – модульные компоненты ‎интерфейса, которые можно ‎комбинировать и переиспользовать в ‎различных частях приложения. ‎В этом блоке про жизненный цикл ‎фрагментов, их состояния, управление ‎фрагментами с помощью Fragment ‎Manager. ‎Кроме того специализированные ‎фрагменты, такие как DialogFragment и ‎BottomSheetDialogFragment. Для ‎создания разнообразных пользовательских ‎интерфейсов. ‎Для средних и крупных проектов, навигация ‎является важным элементом, которая ‎позволяет отделять экраны друг от друга, ‎представляя в коде в понятном виде ‎Различные способы хранения данных в ‎приложении и на устройстве Android. ‎Дополнительные способы хранения данных. ‎Datastore – это библиотека, которая ‎позволяет хранить и управлять ‎настройками приложения, используя ‎протоколы и API вместо ‎SharedPreferences. ‎Room, с другой стороны, является ‎компонентом архитектуры Jetpack и ‎представляет собой SQLite объектно- ‎реляционную библиотеку для Android. ‎Основы сборки приложений в Android с ‎помощью Gradle Build Script. Как ‎определяются и устанавливаются ‎различные версии SDK, какие бывают типы ‎зависимостей и как они задаются в Gradle. ‎Как сделать приложение доступным для ‎пользователей в виде APK или AAB файлов. ‎Изучение работы с Content Provider – ‎компонентом, который позволяет ‎обмениваться информацией с другими ‎приложениями. ‎Обработка нажатий, свайпом, ‎интерактивность UI элементов. Работа с ‎ресурсами ‎Работа с сетью, отправка и получение ‎данных, использование популярных ‎библиотек по облегчению работы ‎Многопоточность позволяет повысить ‎производительность и ‎ресурсоэффективность приложений. ‎Благодаря возможности выполнения ‎нескольких задач одновременно. ‎Кроме того многие задачи невозможно ‎выполнять, не вынося их в отдельные ‎потоки. Важно использовать правильный ‎подход к обработке событий и сообщений в ‎многопоточных приложениях. ‎Сервисы используются для выполнения ‎задач в фоновом режиме без привязки к ‎пользовательскому интерфейсу. Такие как ‎загрузка файлов, обработка данных, ‎прослушивание музыки и т.д. ‎Обзор типов сервисов и деталей настройки ‎и использования каждого из них. ‎Broadcast Receiver – это еще один ‎основной компонент Android, который ‎позволяет приложению реагировать на ‎определенные события. Например, ‎изменение состояния устройства или ‎получение сообщения. ‎Какие бывают виды BR, ограничения на их ‎использование, способы отлавливания ‎событий. ‎Набор Google сервисов для разработки, ‎анализа, публикации и обслуживания ‎приложений. ‎Комментарий: необходимо только ‎понимать, что это такое в целом. Как одним ‎кликом в студии собрать APK файл, чтобы ‎отправить его, например, на устройство. Не ‎обязательно вникать во внутреннее ‎устройство и реализацию. ‎Основы DI и различные фреймворки для ‎его реализации. ‎Dependency Injection – паттерн, ‎позволяющий разделить создание объектов ‎и управление зависимостями между ними. ‎Продвинутые технологии и программные ‎модули для работы с многопоточностью. ‎Паттерны проектирования – набор решений, ‎которые помогают создавать гибкий, ‎поддерживаемый и расширяемый код. ‎Обзор нескольких основных и ‎обязательных паттернов для создания ‎чистого и функционального кода. ‎Архитектура приложения позволяет ‎организовывать код по определенным ‎принципам. Конкретные типы реализации ‎зависят от функционала и сложности ‎проектируемого приложения. ‎В любом случае правильная архитектура – ‎залог чистого и понятного кода. Который ‎можно легко расширять с минимальными ‎трудовыми затратами, а также его качество ‎способствует быстрому онбордингу новых ‎разработчиков в проекте.