Сводка последних новостей от JetBrains:
Product News
- Compose Multiplatform 1.6.0 – resources, UI testing, iOS accessibility, and preview annotation
- Amper update – February 2024
- The Ktor roadmap for 2024
Survey
- Configuration Language Survey – help shape the future of build configurations
Google Summer of Code
- Become a Kotlin Google Summer of Code contributor and make an impact!
Advent of Code in Kotlin
- Celebrating our participants and their solutions
Livestream Recordings
- Strategies for successful conference talks
- Data analytics with Kotlin notebooks
Education
- Learn to refactor using your IDE for better Kotlin code
#android #kotlin #jetbrains #compose
https://blog.jetbrains.com/kotlin/2024/03/kotlin-roundup-feb-march-24/
Product News
- Compose Multiplatform 1.6.0 – resources, UI testing, iOS accessibility, and preview annotation
- Amper update – February 2024
- The Ktor roadmap for 2024
Survey
- Configuration Language Survey – help shape the future of build configurations
Google Summer of Code
- Become a Kotlin Google Summer of Code contributor and make an impact!
Advent of Code in Kotlin
- Celebrating our participants and their solutions
Livestream Recordings
- Strategies for successful conference talks
- Data analytics with Kotlin notebooks
Education
- Learn to refactor using your IDE for better Kotlin code
#android #kotlin #jetbrains #compose
https://blog.jetbrains.com/kotlin/2024/03/kotlin-roundup-feb-march-24/
The JetBrains Blog
Kotlin Roundup: Unveiling the New Compose Multiplatform Release, Amper Update, and More! | The Kotlin Blog
Unveiling the New Compose Multiplatform Release, Amper Update, and other Kotlin ecosystem news.
Я — Денис, Android-разработчик в «Лайв Тайпинге». В этой статье я продолжу рассказывать о современных подходах разработки адаптивного UI/UX для людей с ограниченными возможностями, разных национальностей и особенностями развития. В этой статьей я расскажу про разработку интерфейсов в XML и Compose для варьирующего размера шрифта. А также покажу почему атрибут contentDescription так важен.
#android #design #ux #compose
https://habr.com/ru/articles/798473/
#android #design #ux #compose
https://habr.com/ru/articles/798473/
Хабр
Как увеличить шрифт так, чтобы контейнер не поехал? Адаптация UI/UX для людей с проблемами зрения в XML и Compose
Я — Денис, Android-разработчик в «Лайв Тайпинге». В этой статье я продолжу рассказывать о современных подходах разработки адаптивного UI/UX для людей с ограниченными возможностями, разных...
Новый Compose урок по теме - Input.
Используем функцию awaitPointerEvent для отслеживания простых событий типа click, swipe и long press.
Рассматриваем прочие await* функции: awaitFirstDown, awaitLongPressOrCancellation, awaitDragOrCancellation, waitForUpOrCancellation, awaitEachGesture.
#android #course #compose
https://startandroid.ru/ru/courses/compose.html
Используем функцию 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
Разбираемся что такое Consumed статус. Используем его в своем обработчике кликов с прошлых уроков. Это позволит корректно ловить клики, когда один Box находится над другим.
#android #course #compose
https://startandroid.ru/ru/courses/compose.html
This media is not supported in your browser
VIEW IN TELEGRAM
Новый Compose урок по теме - Input.
Разбираемся, как событие проходит через компоненты 3 раза, и как это можно использовать.
#android #course #compose
https://startandroid.ru/ru/courses/compose.html
Разбираемся, как событие проходит через компоненты 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
Разбираемся, как под капотом работают Indication и InteractionSource.
Создаем различные кастомные визуальные индикации клика, в том числе и свой разноцветный Ripple.
#android #course #compose
https://startandroid.ru/ru/courses/compose.html
В Navigation 2.8.0-alpha08 поменяли способ формирования графа в Navigation Compose. Вместо строки route теперь используется класс. В него же можно помещать аргументы.
#navigation #compose
https://medium.com/androiddevelopers/navigation-compose-meet-type-safety-e081fb3cf2f8
#navigation #compose
https://medium.com/androiddevelopers/navigation-compose-meet-type-safety-e081fb3cf2f8
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
Вернее, даже два урока.
Первый - небольшой, в нем рассматриваем detect* функции: detectTapGestures, detectDragGestures и detectTransformGestures.
А во втором рассматриваем Modifier операторы: draggable, draggable2D, anchoredDraggable и transformable. А также подробно рассматриваем nestedScroll, с помощью которого можно получить эффект, как на видео.
#android #course #compose
https://startandroid.ru/ru/courses/compose.html
Полезные советы по написанию Composable функций
#android #compose #bestpractices
https://www.youtube.com/watch?v=JvbyGcqdWBA
#android #compose #bestpractices
https://www.youtube.com/watch?v=JvbyGcqdWBA
YouTube
Designing scalable Compose APIs
This talk will cover best practices and guidelines for developing idiomatic Compose APIs. We'll go over how to think about and plan for your components, how to leverage Kotlin and naming conventions, how to define a solid structure for your component, and…
Видео о том, как Compose Multiplatform работает на iOS:
- Definition of what performance is and what our goals are
- Overview of Compose Multiplatform machinery and how it works on iOS
- Summary of interesting problems we had and how we overcame them
#compose #ios #multiplatform
https://www.youtube.com/watch?v=Df1ZCmmHWzM
- Definition of what performance is and what our goals are
- Overview of Compose Multiplatform machinery and how it works on iOS
- Summary of interesting problems we had and how we overcame them
#compose #ios #multiplatform
https://www.youtube.com/watch?v=Df1ZCmmHWzM
YouTube
Compose Multiplatform performance on iOS | Elijah Semyonov
Recording brought to you by American Express. https://americanexpress.io/kotlin-jobs
One of the main goals of Compose Multiplatform for iOS is providing absolutely smooth performance, even on high-refresh-rate-displays.
In this talk we deep dive into details…
One of the main goals of Compose Multiplatform for iOS is providing absolutely smooth performance, even on high-refresh-rate-displays.
In this talk we deep dive into details…
На связи эксперты из Стингрей Технолоджиз – Юрий Шабалин, Веселина Зацепина и Игорь Кривонос.
Недавно специалисты из компании Positive Technologies нашли серьезную проблему безопасности в популярной библиотеке для навигации в приложениях Android – Jetpack Navigation. Эта уязвимость позволяет открывать любые фрагменты внутри приложения.
К большому сожалению, несмотря на усилия сообщества, об этой уязвимости мало кто знает. Поэтому сегодня мы хотим еще раз подсветить данную проблему с углублением в детали. В статье мы разберем, что из себя представляет библиотека Jetpack Navigation и ее основные элементы, в чем заключается уязвимость и насколько она опасна, а также приведем немного статистики по уязвимым приложениям.
#android #compose #navigation #security
https://habr.com/ru/companies/swordfish_security/articles/830338/
Недавно специалисты из компании Positive Technologies нашли серьезную проблему безопасности в популярной библиотеке для навигации в приложениях Android – Jetpack Navigation. Эта уязвимость позволяет открывать любые фрагменты внутри приложения.
К большому сожалению, несмотря на усилия сообщества, об этой уязвимости мало кто знает. Поэтому сегодня мы хотим еще раз подсветить данную проблему с углублением в детали. В статье мы разберем, что из себя представляет библиотека Jetpack Navigation и ее основные элементы, в чем заключается уязвимость и насколько она опасна, а также приведем немного статистики по уязвимым приложениям.
#android #compose #navigation #security
https://habr.com/ru/companies/swordfish_security/articles/830338/
Хабр
Разбираемся с новой уязвимостью Android-библиотеки Jetpack Navigation: как открыть любой фрагмент из вашего приложения?
Всем привет! На связи эксперты из Стингрей Технолоджиз – Юрий Шабалин, Веселина Зацепина и Игорь Кривонос. Недавно специалисты из компании Positive Technologies нашли серьезную проблему безопасности в...
Обзор Compose компонентов из Material 3 Adaptive, которые помогают создавать UI под разные размеры экранов.
#android #ui #adaptive #compose
https://www.youtube.com/watch?v=xPUZENis4gc
#android #ui #adaptive #compose
https://www.youtube.com/watch?v=xPUZENis4gc
Возвращаемся к урокам по Compose после летних каникул.
Новая важная тема - Stability. В первом уроке разбираемся, что это такое и зачем вообще нужно.
Подключим compiler metrics отчеты, чтобы видеть, какие классы компилятор считает stable/unstable, а какие функции - skippable.
Используем аннотацию Immutable, чтобы увидеть, как можно сломать Stability.
В качестве примеров пока используем примитивы и data классы.
#android #course #compose
https://startandroid.ru/ru/courses/compose.html
Новая важная тема - Stability. В первом уроке разбираемся, что это такое и зачем вообще нужно.
Подключим compiler metrics отчеты, чтобы видеть, какие классы компилятор считает stable/unstable, а какие функции - skippable.
Используем аннотацию Immutable, чтобы увидеть, как можно сломать Stability.
В качестве примеров пока используем примитивы и data классы.
#android #course #compose
https://startandroid.ru/ru/courses/compose.html
Рассуждения на тему, где и в какой момент лучше загружать данные: LaunchedEffect или ViewModel.init()
#android #kotlin #compose #architecture
https://proandroiddev.com/loading-initial-data-in-launchedeffect-vs-viewmodel-f1747c20ce62
#android #kotlin #compose #architecture
https://proandroiddev.com/loading-initial-data-in-launchedeffect-vs-viewmodel-f1747c20ce62
Новый урок по Compose
Продолжаем тему Stability на примере более сложных типов: коллекции, state holder, лямбды
#android #course #compose
https://startandroid.ru/ru/courses/compose.html
Продолжаем тему Stability на примере более сложных типов: коллекции, state holder, лямбды
#android #course #compose
https://startandroid.ru/ru/courses/compose.html
Разработчик из команды Compose рассказывает, как они оптимизировали свой Kotlin код.
#android #compose #kotlin #performance
https://www.youtube.com/watch?v=WAbaEE8qRdw
#android #compose #kotlin #performance
https://www.youtube.com/watch?v=WAbaEE8qRdw
YouTube
Going fast with Kotlin | Andrei Shikov
Recording brought to you by American Express. https://americanexpress.io/kotlin-jobs
Kotlin is leaning on JVM a lot, making most Java features accessible and easy to use. Sometimes, however, this results in curiously unexpected results during execution if…
Kotlin is leaning on JVM a lot, making most Java features accessible and easy to use. Sometimes, however, this results in curiously unexpected results during execution if…
Romain Guy рассказывает (часто переходя на байткод), как удается оптимизировать Compose.
#android #kotlin #compose #bytecode
https://www.youtube.com/watch?v=5cxw_fdpnoA
#android #kotlin #compose #bytecode
https://www.youtube.com/watch?v=5cxw_fdpnoA
YouTube
Practical Optimizations
In this session we will look at a series of optimizations that were done in Jetpack Compose to learn about how different types of optimizations can affect performance, including code flow/algorithms, new data structures, low-level bytecode optimizations,…
Новый урок по Compose
Небольшой урок в завершение темы Stability. Выясняем, что означает restartable, и разбираемся, какие изменения несет нам Strong Skipping Mode, который будет включен по умолчанию, начиная с Kotlin 2.0.20.
#android #course #compose
https://startandroid.ru/ru/courses/compose.html
Небольшой урок в завершение темы 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
Краткий обзор основных инструментов для работы с Compose: Preview, Live Edit, Layout Inspector, Debug, Trace.
Тема простая, материала по ней много, поэтому я не стал много расписывать.
#android #course #compose
https://startandroid.ru/ru/courses/compose.html
Автор попытался создать ViewModel со временем жизни Composable функции. Штука, может и ненужная, но интересная, чтобы лучше понимать и Compose и ViewModel.
#android #compose #viewmodel #lifecycle
https://proandroiddev.com/composable-scoped-viewmodel-an-interesting-experiment-b982b86d84cd
#android #compose #viewmodel #lifecycle
https://proandroiddev.com/composable-scoped-viewmodel-an-interesting-experiment-b982b86d84cd
Medium
Composable-scoped ViewModel: An interesting experiment
Scope any ViewModel to the composition of the Composable it is in, while surviving configuration changes, by using the power of Lifecycle.