StartAndroid
10.7K subscribers
371 photos
10 videos
5 files
1.75K links
Канал об Android (Андроид) разработке

Сайт - http://startandroid.ru

Чат - https://tttttt.me/startandroidchat

Контакты - https://startandroid.ru/ru/about/cntct5.html

Реклама - https://startandroid.ru/ru/about/reklama.html
Download Telegram
Новый Compose урок открывает серию уроков по анимации

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

Обсудим, как в целом работает анимация; как она вычисляет значение в каждый момент времени; зачем нужны векторы и конвертеры.

#android #course #compose

https://startandroid.ru/ru/courses/compose.html
This media is not supported in your browser
VIEW IN TELEGRAM
Новый Compose урок по анимации

Поднимаемся на уровень выше - к классу Animatable. Чтобы лучше понимать его работу, сделаем свою простую реализацию этого класса. Заодно узнаем, как под капотом новая анимация отменяет текущую.

#android #course #compose

https://startandroid.ru/ru/courses/compose.html
This media is not supported in your browser
VIEW IN TELEGRAM
Новый Compose урок по анимации

Рассматриваем доступные нам AnimationSpec: tween, spring, keyframes, repeatable. Там в целом и так все понятно, но пропустить эту тему я не мог.

Плюс, довольно подробно разбираем, что такое Easing в tween. И создаем свою несложную реализацию этого механизма.

#android #course #compose

https://startandroid.ru/ru/courses/compose.html
Новый Compose урок по анимации

Мы добрались до верхне-уровневых инструментов. Начнем с функции AnimateValueAsState. Как ее использовать, что под капотом, и в чем плюсы-минусы по сравнению с Animatable.

#android #course #compose

https://startandroid.ru/ru/courses/compose.html
This media is not supported in your browser
VIEW IN TELEGRAM
Новый Compose урок по анимации

Рассматриваем инструмент Transition, который можно использовать для запуска нескольких анимаций, зависящих от одного значения.

На видео выше - это текст, ширина и цвет.

#android #course #compose

https://startandroid.ru/ru/courses/compose.html
This media is not supported in your browser
VIEW IN TELEGRAM
Новый Compose урок по анимации

Рассматриваем оставшиеся инструменты: AnimatedVisibility, AnimatedContent, Crossfade, animate, animateContentSize

#android #course #compose

https://startandroid.ru/ru/courses/compose.html
Курс от JetBrains по рефакторингу кода в IntelliJ IDEA

- Introduction
- RefactoringAndItsPurpose
- CodeStyleAndFormatting
- RenamingCode
- MovingCode
- ExtractingCode
- InliningCode
- RefactoringToDesignPatterns
- Conclusion

#course #androidstudio #kotlin

https://blog.jetbrains.com/education/2024/01/17/learn-ide-code-refactoring/
Тинькофф запустил бесплатный курс по Android разработке.

Курс стартует в середине февраля и длится 3 месяца. Формат - онлайн-занятия 1-2 раза в неделю по будням.

#android #course

https://fintech.tinkoff.ru/study/fintech/android/
This media is not supported in your browser
VIEW IN TELEGRAM
Новый Compose урок, новая тема - Input.

Начнем с базовых вещей. Используем Modifier pointerInput для получения PointerEvent. Разбираемся, какая информация о касаниях нам доступна. Используем calculate методы для расчета Zoom и вращения.

#android #course #compose

https://startandroid.ru/ru/courses/compose.html
Новый Compose урок по теме - Input.

Используем функцию awaitPointerEvent для отслеживания простых событий типа click, swipe и long press.

Рассматриваем прочие await* функции: awaitFirstDown, awaitLongPressOrCancellation, awaitDragOrCancellation, waitForUpOrCancellation, awaitEachGesture.

#android #course #compose

https://startandroid.ru/ru/courses/compose.html
Новый Compose урок по теме - Input.

Разбираемся что такое Consumed статус. Используем его в своем обработчике кликов с прошлых уроков. Это позволит корректно ловить клики, когда один Box находится над другим.

#android #course #compose

https://startandroid.ru/ru/courses/compose.html
Подборка курсов для изучения Kotlin:

Introduction to Kotlin
Kotlin Onboarding
Kotlin Koans
AtomicKotlin
Kotlin Core
Coroutines and Channels
Introduction to IDE Code Refactoring in Kotlin
Algorithmic Challenges in Kotlin
Kotlin Developer
Introduction to Ktor
Kotlin Backend Developer (Spring Boot)
Introduction to Android With Kotlin
Android Developer With Kotlin

#kotlin #course

https://blog.jetbrains.com/education/2024/04/04/kotlin-learning-guide/
This media is not supported in your browser
VIEW IN TELEGRAM
Новый Compose урок по теме - Input.

Разбираемся, как событие проходит через компоненты 3 раза, и как это можно использовать.

#android #course #compose

https://startandroid.ru/ru/courses/compose.html
This media is not supported in your browser
VIEW IN TELEGRAM
Новый Compose урок по теме - Input.

Разбираемся, как под капотом работают Indication и InteractionSource.

Создаем различные кастомные визуальные индикации клика, в том числе и свой разноцветный Ripple.

#android #course #compose

https://startandroid.ru/ru/courses/compose.html
This media is not supported in your browser
VIEW IN TELEGRAM
Новый Compose урок по теме - Input.

Вернее, даже два урока.

Первый - небольшой, в нем рассматриваем detect* функции: detectTapGestures, detectDragGestures и detectTransformGestures.

А во втором рассматриваем Modifier операторы: draggable, draggable2D, anchoredDraggable и transformable. А также подробно рассматриваем nestedScroll, с помощью которого можно получить эффект, как на видео.

#android #course #compose

https://startandroid.ru/ru/courses/compose.html
Gradle запустил несколько бесплатных курсов и планирует дальше развивать это направление.

#gradle #course

https://blog.gradle.org/dpe-university-and-gradle-courses
Возвращаемся к урокам по Compose после летних каникул.

Новая важная тема - Stability. В первом уроке разбираемся, что это такое и зачем вообще нужно.

Подключим compiler metrics отчеты, чтобы видеть, какие классы компилятор считает stable/unstable, а какие функции - skippable.

Используем аннотацию Immutable, чтобы увидеть, как можно сломать Stability.

В качестве примеров пока используем примитивы и data классы.

#android #course #compose

https://startandroid.ru/ru/courses/compose.html
Новый урок по Compose

Продолжаем тему Stability на примере более сложных типов: коллекции, state holder, лямбды

#android #course #compose

https://startandroid.ru/ru/courses/compose.html
Новый урок по Compose

Небольшой урок в завершение темы Stability. Выясняем, что означает restartable, и разбираемся, какие изменения несет нам Strong Skipping Mode, который будет включен по умолчанию, начиная с Kotlin 2.0.20.

#android #course #compose

https://startandroid.ru/ru/courses/compose.html
Новый урок по Compose.

Краткий обзор основных инструментов для работы с Compose: Preview, Live Edit, Layout Inspector, Debug, Trace.

Тема простая, материала по ней много, поэтому я не стал много расписывать.

#android #course #compose

https://startandroid.ru/ru/courses/compose.html