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 – паттерн, позволяющий разделить создание объектов и управление зависимостями между ними. Продвинутые технологии и программные модули для работы с многопоточностью. Паттерны проектирования – набор решений, которые помогают создавать гибкий, поддерживаемый и расширяемый код. Обзор нескольких основных и обязательных паттернов для создания чистого и функционального кода. Архитектура приложения позволяет организовывать код по определенным принципам. Конкретные типы реализации зависят от функционала и сложности проектируемого приложения. В любом случае правильная архитектура – залог чистого и понятного кода. Который можно легко расширять с минимальными трудовыми затратами, а также его качество способствует быстрому онбордингу новых разработчиков в проекте.