Android Good Reads
3.88K subscribers
344 photos
13 videos
1 file
2K links
Самые интересные статьи, видео и новости, связанные с Android разработкой. Не больше трёх материалов в день.

Автор канала: @Lamprof

Размещение рекламы: @tanyasanovna
Download Telegram
Конвертер SVG -> Compose

Онлайн-конвертер любого *.svg файла в код на Compose.
Redwood вышел в Beta

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

Работает это следующим образом. Вы описываете все компоненты в виде дата классов. Redwood затем генерирует Jetpack Compose или SwiftUI компоненты на их основе.

Так вот, спустя примерно год после анонса, фреймворк выходит в Beta. Одновременно с этим Square, которые и занимаются его разработкой, планируют зарелизить в прод первые экраны, написанные с его помощью.
Вышел Kotlin 1.9.0

Релиз состоялся уже на прошлой неделе, но это не повод не рассказать о нем в канале! Из самого важного в этом релизе:

👉Переход К2 компилятора в Beta, что значит, что его уже вполне безопасно можно начинать затаскивать в свои JVM проекты.
👉Новый оператор ..<, про который я рассказывал на KotlinConf, окончательно стабилизирован и поддержан в stdlib.
👉В KMP поддержали Configuration Cache, который сильно улучшит жизнь авторам библиотек.
👉В Kotlin/Native логика линковки библиотек приблизилась к JVM – например, компиляция теперь не будет падать, если у какой-то из транзитивных зависимостей поменялся экспериментальный API, который не использовался нигде в проекте.
👉Компиляторные опции для Kotlin/JVM теперь можно задавать с помощью нового DSL в билдфайле, в блоке compilerOptions.
Обновление роадмапа Kotlin

Публичный роадмап Котлина обновляется раз в полгода. В нем подробно расписываются основные планы команды на несколько ближайших релизов. Вот самое интересное из последнего апдейта:

⭐️Можно будет дебажить инлайн функции и классы в Android.
⭐️Kotlin/Wasm планируется переводить в Alpha, а вместе с этим официально поддержать его во всех kotlinx библиотеках.
⭐️Стабильную мультиплатформу все так же планируется выпустить в конце года.
⭐️В Kotlin/Native скоро выйдет первый релиз инкрементальной компиляции, скорость билдов вырастет.
⭐️Улушится поддержка Version Catalogs в gradle.kts.
⭐️Новую библиотеку kotlinx-io продолжат стабилизировать, а заодно будут рисерчить асинхронный API для нее.
Как тестируют в 100 компаниях

Реаозиторий с подборкой ресурсов о том, как организовано тестирование и CI/CD мобильных приложений в очень разных компаниях. В списке есть Netflix, Reddit, Revolut и Uber.
План Coil по поддержке Kotlin Multiplatform

Я уже упоминал, что недавно библиотека Coil получила грант от Kotlin Foundation направленный на поддержку KMP.

Вышел блогпост, где автор раскрывает больше деталей про миграцию. Основная задача переезда – полностью отвязать Coil от Android. Самым большим изменением API будет замена Drawable на Image, который абстрагирует детали платформенной реализации изображений.

План – завершить миграцию в течение нескольких месяцев.
Как измерять время старта приложения

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

В статье разбирается более холистический подход к измерению времени запуска, и то, на какие конкретно метрики можно завязываться.
This media is not supported in your browser
VIEW IN TELEGRAM
Проекты на Compose Multiplatform

Собрал подборку интересных проектов, которые сообщество делает на базе Compose Multiplatform. Если вы еще не добрались его попробовать – может быть, что-то из них вас вдохновит!

📱tivi.app, портированный с Jetpack Compose на мультиплатформу
📱RSS-ридер с топовым дизайном
📱Приложение рецептов с красивыми анимациями
📱Эффект Reflective UI
📱Cupertino-виджеты от сообщества
Законы UX

Список из 21 правила, которых стоит придерживаться при разработке интерфейсов. Каждое подкреплено ссылками на исследования.

🏎️Doherty Threshold – Пользователь воспринимает свою производительность оптимальной, если реакция на его действия не превышает 400мс.
🎯Fitt's Law – Время на то, чтобы прицелиться во что-то – функция от размера и удаленности цели.
🤔Jakob's Law – Пользователь проводит большую часть времени в других приложениях, поэтому для него будет идеально, если ваше приложение не будет от них отличаться.
⛰️Peak-End rule – Люди запоминают не весь опыт работы с чем-то, а его самый пиковый момент и самый последний.
Почему рендеринг текста – это сложно

Отличная статья, про то, из каких элементов вообще состоит текст, почему все браузеры и другие графические движки чаще всего рендерят его неправильно, и с какими эзотерическими проблемами можно столкнуться.
KotlinConf 2024

Открыта покупка билетов на KotlinConf следующего года! Пройдет, как и в 2019 году, в Копенгагене. Приезжайте, если можете, увидимся!

📆Дата: 22-24 мая.
Исследование продуктовых дизайнеров

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

Вот прямо сейчас мы заканчиваем наш первый опрос продуктовых дизайнеров про то, чем они занимаются на работе, какие навыки прокачивают, как используют AI и за кем в сообществе следят. Чтобы результаты были репрезентативными, хочется получить как можно больше ответов. Если в вашей текущей или бывшей команде есть продуктовые дизайнеры – я буду очень благодарен, если вы пошарите им ссылку на опрос! Результаты я потом тоже обязательно в канал выложу.
Как писать Swift-friendly API мультиплатформенных библиотек

Одна из проблем, с которыми вы можете столкнуться, затягивая к себе Kotlin Multiplatform – iOS разработчики, которым не нравится получающийся на выходе API. В серии статей разбираются основные решения, которые позволяют сделать API общих модулей выглядящим, как идиоматичный Swift.
Appyx теперь мультиплатформенный

Appyx – библиотека навигации от Bumble с фокусом на простую реализацию кастомных анимированных переходов. Так вот, на прошлой неделе вышла первая альфа версии 2.0. Основная фича новой версии – поддержка Compose Multiplatform. Обязательно потыкайте документацию, все демки там интерактивные и реализованы на Compose!
Как работает Lincheck

Lincheck – фреймворк для тестирования многопоточных алгоритмов на Kotlin. В треде Никита Коваль, его автор, рассказывает о его основных концепциях.
Обзор всех кешей в Gradle

Леша Быков написал хороший обзор того, как работают различные уровни кеширования в Gradle, в каких случаях на них можно полагаться, и как оптимизировать их работу.
Кто адоптит Kotlin Multiplatform

Подборка статей и видео от компаний, которые заадоптили Kotlin Multiplatform, и делятся своим опытом. Из громких названий, которые вы могли пропустить: McDonald's, Google Workspace, Baidu, Deezer, Shopify.
Compose Multiplatform 1.5.0-Beta

Вышла первая публичная версия следующего большого релиза Compose Multiplatform. Из самых крутых фичей:

👉В iOS приложениях физика скролла теперь работает точно так же, как в нативных.
👉В common коде можно создавать диалоги и попапы.
👉На новых Apple девайсах поддерживаются 120 FPS.
👉Шаринг ресурсов с iOS теперь не требует использования CocoaPods.
👉На iOS поддержаны Dynamic Type, корректные инсеты, а шрифт по умолчанию теперь San Francisco.
Кастомные шрифты в Compose Multiplatform

Кстати, раз мы заговорили про изменение шрифта на San Francisco. Если вы все-таки хотите использовать не системные шрифты, а что-то свое – в статье разобраны все шаги, как завести кастомныю типографику.
KMM KMP

И, конечно, самый важный анонс прошлой недели. Название KMM пора вычеркнуть из своих сердец и памяти, потому что новый рекомендованный способ говорить про мультиплатформу в любых ее проявлениях – Kotlin Multiplatform или KMP.