Jetpack Compose

Google предлагает нам новый, декларативный способ создания UI - Jetpack Compose. Медленно, но верно Android сообщество переходит на этот фреймворк. Примерно так же, как в свое время мы переходили на Kotlin и корутины. 

В отличие от корутин, у Compose вполне хорошая и понятная официальная документация. Да и сама тема не такая сложная. Но все равно там есть некоторые непростые для понимания области, о которых я планирую рассказать. 

Начинается курс с самых базовых тем, чтобы вы сразу смогли создавать несложные примеры. В них мы используем простые экранные Compose элементы, делаем Preview, играем с фоном и границей элемента, узнаем, что такое Modifier. Там все просто и статично.

Затем я рассказываю о ключевых механизмах Compose: State, Recomposition, remember. А также рассматриваю более сложные UI элементы: CheckBox и TextField. Это уже интереснее и более похоже на реальные примеры.

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

Планируемые темы:
- Список
- ViewModel
- Навигация
- Modifier
- SideEffects
- CompositionLocal
- Themes
- Анимация
- Рисование
- Custom Layout
- Interoperability
- Tooling
- Tests
- BestPractice
- Preformance
- Stable

 

 

 

Как получить курс

 

Первые десять уроков доступны бесплатно и без регистрации. В этих уроках мы знакомимся с Compose, делаем простые примеры и рассматриваем ключевые механизмы его работы. Открывайте первый урок по кнопке и начинайте знакомство с Compose.

 

Урок 1. Введение   

 

Курс постоянно дополняется. На сегодня он состоит из 45 уроков

 

Полный курс доступен после регистрации на сайте и оплаты. Стоимость курса - 3600 рублей

 

С выходом новых уроков стоимость увеличивается. Но читатели, уже купившие курс, автоматически получат доступ к новым урокам. Поэтому, если тема вам интересна, не откладывайте покупку и получайте все следующие уроки бесплатно. Читателю, купившему хотя бы один курс, предоставляется скидка 20% на все остальные курсы.

Доступ к курсу предоставляется навсегда, включая все последующие уроки или обновления.

Сразу все курсы со скидкой 40% процентов вы можете купить (или докупить) на отдельной странице.

 

 

 
 

При возникновении каких-либо вопросов, используйте форму обратной связи

 

 

Содержание курса

 
  • Урок 1. Введение. Создание проекта. Composable функция

    В этом уроке создаем проект для работы с Compose; обсуждаем, что такое Composable функция и создаем свою простую функцию.

  • Урок 2. Preview. Параметры Composable функции

    В этом уроке мы используем Preview, чтобы видеть результат работы Composable функции без запуска приложения; рассматриваем некоторые параметры функции Text.

  • Урок 3. Modifier

    В этом уроке разбираемся, где искать нужный нам атрибут элемента - в параметрах функции или в Modifier. 

  • Урок 4. Базовые Layout: Row, Column, Box

    В этом уроке используем базовые Layout для расположения элементов на экране.

  • Урок 5. Background и border. Изображения.

    В этом уроке разбираемся какие возможности у нас есть при создании фона и границ элементов; какие функции используются для вывода на экран изображений; как показать картинку из Интернет.

  • Урок 6. State

    В этом уроке мы разбираемся что такое State. Как он помогает Composable функции понять, что пора обновлять данные на экране.

  • Урок 7. CheckBox и TextField.

    В этом уроке рассматриваем элементы CheckBox и TextField. Им необходим State для своей работы.

  • Урок 8. Recomposition

    В этом уроке разбираемся, как Recomposition может оптимизировать перезапуски Composable функций.

  • Урок 9. remember

    В этом уроке рассматриваем функцию remember и его параметр key.

  • Урок 10. remember + mutableStateOf

    В этом уроке используем комбинацию remember + mutableStateOf


Урок 11. Список, call site, key.
В этом уроке мы создаем свой список с помощью Column и LazyColumn. А также подробно разбираемся в механизме перезапуска Composable функций и функции key, которая помогает оптимизировать эти перезапуски.


Урок 12. ViewModel.
В этом уроке используем ViewModel для хранения данных и используем StateFlow вместо State.


Урок 13. Modifier.
В этом уроке рассматриваем несколько важных моментов в работе с Modifier: порядок операторов, использование в своих Composable функциях и scope.


Урок 14. Навигация.
В этом уроке рассматриваем основы навигации в Compose. 


Урок 15. Навигация и ViewModel.
В этом уроке мы рассмотрим важные особенности работы ViewModel при использовании навигации.


Урок 16. Composable lifecycle, RememberObserver.
В этом уроке рассматриваем lifecycle этапы Composable функций и разбираемся как работает remember + RememberObserver.


Урок 17. LaunchedEffect, DisposableEffect, rememberCoroutineScope.
В этом уроке рассматриваем SideEffects функции: LaunchedEffect, DisposableEffect, rememberCoroutineScope.


Урок 18. produceState, rememberUpdatedState, SideEffect
В этом уроке рассматриваем SideEffects функции: produceState, rememberUpdatedState, SideEffect


Урок 19. derivedStateOf, snapshotFlow
В этом уроке рассматриваем SideEffects функции: derivedStateOf и snapshotFlow


Урок 20. CompositionLocal
В этом уроке изучаем механизм CompositionLocal, и в чем отличие между compositionLocalOf и staticCompositionLocalOf


Урок 21. Material Design. Theme.
В этом уроке выясняем, как стандартные UI элементы используют Material; рассматриваем основные отличия Material 3 и Material 2; разбираемся как устроены темы в Compose


Урок 22. Content Slot, Scaffold, Drawer, Snackbar, BottomSheet.
В этом уроке проведем краткий обзор элементов Scaffold, Drawer, Snackbar, BottomSheet


Урок 23. LayoutModifier
В этом уроке с помощью LayoutModifier разбираемся, как взаимодействуют между собой родительские и дочерние UI элементы во время Layout фазы.


Урок 24. LayoutModifier. Свои Modifier операторы. Chain.
В этом уроке используем LayoutModifier, чтобы создать свои простые версии операторов width, offset и padding. Разбираемся, как общаются между собой Modifier операторы в цепочке.


Урок 25. Custom Layout.
В этом уроке создаем свой кастомный Layout - простую версию Column.


Урок 26. Custom Layout - Timeline. Parent Data.
В этом уроке создаем Custom Layout в виде Timeline и разбираемся, как родитель может получить данные от дочерних элементов с помощью Parent Data.


Урок 27. Drawing.
В этом уроке рассматриваем инструменты для рисования в Compose


Урок 28. Drawing modifiers.
В этом уроке рассматриваем Modifier связанные с рисованием: drawBehind, drawWithContent, drawWithCache, graphicsLayer


Урок 29. Анимация, основы.
В этом уроке обсуждаем основы анимации и разбираемся, как работает TargetBasedAnimation.


Урок 30. Анимация. Animatable.
В этом уроке создаем свою реализацию класса Animatable, чтобы лучше понять, как он работает под капотом


Урок 31. Анимация. AnimationSpec.
В этом уроке рассматриваем доступные нам спецификации AnimationSpec: tween, spring, keyframes, repeatbale, snap


Урок 32. Анимация. AnimateValueAsState
В этом уроке работаем с функцией AnimateValueAsState


Урок 33. Анимация. Transition
В этом уроке используем Transition для старта нескольких анимаций


Урок 34. Анимация. AnimatedVisibility, AnimatedContent
В этом уроке рассматриваем оставшиеся верхнеуровневые инструменты анимации: AnimatedVisibility, AnimatedContent, Crossfade, animate, animateContentSize


Урок 35. User Input. PointerEvent. PointerInputChange
В этом уроке получаем события в Modifier pointerInput. Разбираемся, какая информация о касаниях нам доступна


Урок 36. User Input. await функции
В этом уроке используем awaitPointerEvent для отлова событий, и рассмотрим прочие await* функции: awaitFirstDown, awaitLongPressOrCancellation, awaitDragOrCancellation, waitForUpOrCancellation, awaitEachGesture.


Урок 37. User Input. Consumed
В этом уроке разбираемся, зачем нужен статус consumed.


Урок 38. User Input. Прогоны
В этом уроке рассматриваем прогоны событий: Initial, Main, Final.


Урок 39. User Input. Indication и InteractionSource
В этом уроке разбираемся зачем нужны и как работают Indication и InteractionSource.


Урок 40. User Input. Detect* функции
В этом уроке рассматриваем detect* функции: detectTapGestures, detectDragGestures, detectTransformGestures


Урок 41. User Input. Modifier операторы
В этом уроке рассматриваем Modifier операторы: draggable, draggable2D, anchoredDraggable, transformable, nestedScroll


Урок 42. Stability. Введение. Data классы.
В этом уроке мы разбираемся, что такое Stability, зачем он нужен и как можно его сломать. В качестве примеров используем примитивы и Data классы. Также включаем возможность получать compiler metrics отчеты.


Урок 43. Stability. Коллекции, State Holders, лямбды
В этом уроке продолжаем тему Stability на примере более сложных типов данных: коллекции, state holder, лямбды


Урок 44. Stability. Restartable, Strong Skipping Mode.
В этом уроке выясняем, что означает restartable, и разбираемся, какие изменения несет нам Strong Skipping Mode.


Урок 45. Tooling. Preview, Live Edit, Layout Inspector, Debug, Trace.
В этом уроке очень кратко рассмотрим основные инструменты для работы с Compose: Preview, Live Edit, Layout Inspector, Debug, Trace


Language

Автор сайта

Дмитрий Виноградов

Подробнее можно посмотреть или почитать.

Никакие другие люди не имеют к этому сайту никакого отношения и просто занимаются плагиатом.

Социальные сети

 

В канале я публикую ссылки на интересные и полезные статьи по Android

В чате можно обсудить вопросы и проблемы, возникающие при разработке



Группа ВКонтакте



Поддержка проекта

Яндекс
410011180491924

WebMoney
R248743991365
Z551306702056

Paypal