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

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

Размещение рекламы: @tanyasanovna
Download Telegram
Когда правильно предлагать внутренние покупки

Сразу предупреждаю – тред по ссылке в первую очередь про iOS. Но, кажется, большая часть корреляций не должны сильно зависеть от платформы. Короче, в чем дело – бывший ментейнер Fastlane, сейчас запускает новый продукт – ContextSDK. Он предсказывает, когда лучше всего предложить пользователю совершить внутреннюю покупку, основываясь на анализе кучи факторов. Он поделилсянесколькими интересными корреляциями поведения пользователей и конверсии в покупку:

🌟Хуже всего люди совершают покупки, когда пользуются приложением на ходу, когда телефон лежит на столе, у него остается мало заряда батареи, или когда он влспроизводит музыку.
🌟Лучше всего конвертятся те, кто лежит или сидит.
🌟Чем новее модель телефона и чем свежее версия операционной системы, тем выше конверсия в покупку.
🌟Время суток тоже влияет. В первой половине дня конверсии в целом лучше.
Все виды диалогов в Jetpack Compose

👉В Jetpack Compose есть много разных видов диалогов, например базовый Dialog(), AlertDialogs из Material 2 и Material 3, DatePickerDialog() и Dialog() из библиотеки Wear.
👉Чтобы отобразить или скрыть диалоги, надо просто добавлить или убрать их из дерева.
👉Создание полностью кастомного Dialog() с нуля не всегда необходимо. Вместо этого можно настроить AlertDialog, передав в параметр shape() нужную форму или правильным образом настроив тему.
Примите участие в Weekend Offer для мобильных разработчиков и получите возможность за одни выходные присоединиться к команде профессионалов.

Таланты ищут в VK Мессенджер, VK Видео, Почту Mail.ru и Облако Mail.ru для на iOS и Android. Пройдите собеседования 20–21 мая и вливайтесь в крутейшие IT-проекты.

Отправить отклик можно до 18 мая включительно.
Возвращение маскота Kotlin

Главный анонс KotlinConf – это, конечно, обновленный маскот! Главные новости:

🎫Маскота зовут Kodee
👾Маскот теперь фиолетовый
🕺Маскот умеет танцевать и гонять на коньках

Использовать ассеты с маскотом, как и его образ, можно как угодно. Если что, стикер-пак для Телеги уже тут!

🌠Ассеты
📝Гайд по использованию
Ищем тестировщика в Compose Multiplatform

Compose Multiplatform – это новый кроссплатформенный UI фреймворк, который разрабатывается в JetBrains. Мы ищем в его команду человека, который будет отвечать за его качество. И вот тут кроется самое интересное, ведь качество делится на два аспекта:

💻Качественный developer experience тех, кто с помощью фреймворка разрабатывает приложения.
🐞Качество приложений, которые получаются на выходе: перфоманс, UX, функциональность.

Несколько примеров задач, которыми предстоит заниматься:

1️⃣Исследовать, как работает нативный скроллинг в iOS приложениях, сравнить его с реализацией скроллинга в Compose Multiplatform, и составить требования по тому, как сделать их максимально похожими.
2️⃣Протестировать API для тестирования приложений на Compose.
3️⃣Написать простое приложение с формой логина и потестировать, как работают все элементы этой формы.

Вакансия подойдет тем, у кого есть опыт разработки тестов или приложений на Kotlin и кто хорошо разбирается в специфике мобильных приложений. Готовы рассматривать и Android-разработчиков, которым интересно заниматься вопросами обеспечения качества, и которые готовы полностью свтичнуться в новую роль!

Вакансия с релокацией: Нидерланды, Германия, Кипр, Сербия или Армения. Отправляйте резюме, а если будут вопросы – пишите напрямую мне (@etolstoy).
This media is not supported in your browser
VIEW IN TELEGRAM
17–18 июня Яндекс проводит Weekend Offer Mobile

Всего за 2 дня можно пройти все технические секции и попасть в проект, который покажется самым интересным. Ищут крутых мобильных разработчиков на iOS, Android и Flutter с опытом от 3 лет.

Ребята предлагают работу в любом офисе в России и Беларуси. Некоторые команды приглашают в свои хабы в Армении, Казахстане и Сербии.

Заявки принимаются до 12 июня.

Подробности ищите здесь
Разбор новых фичей Figma

👉Переменные, которые могут представлять цвета, размеры, эффекты, типографику и локализованные строки.
👉Новые настройки автолейаута, с помощью которых можно прямо в Figma делать адаптивный дизайн.
👉Новый Developer Mode, который позволяет готовить экраны для передачи их разработчикам.
👉Песочница компонентов, в которой дизайнер может легко переключать разные настройки экспортируемых компонентов и смотреть, как они себя ведут в граничных состояниях.
👉Поддержка в VSCode для работы с макетом прямо в IDE.
👉Плагины для экспорта дизайна в код на любом фреймворке.
❗️Хардкорный тест для разработчиков!

📝Ответьте на 20 вопросов за 30 минут и проверьте, готовы ли вы к обучению на онлайн-курсе «Flutter Mobile Developer» от OTUS.

Пройдете тест — получите подборку легендарных уроков курса. Курс поможет научиться создавать современные кроссплатформенные приложения с помощью Flutter. Результат обучения — свое приложения на Flutter для портфолио.

🔥Успешное прохождение теста откроет вам доступ к записям трех уроков:
— «Аркадные игры на Flutter 3»
— «Создание невероятных визуальных эффектов на Flutter»
— «Создаем свою систему координат для RenderObject»

➡️ Пройти тест: https://otus.pw/DuXv/

Нативная интеграция информация о продукте www.otus.ru
Please open Telegram to view this post
VIEW IN TELEGRAM
Гранты от Kotlin Foundation

На KotlinConf рассказали о программе грантов для авторов библиотек. За два месяца пришло целых 100 заявок, из которых отобрали 5 победителей:

⭐️Coil – библиотека для загрузки изображений, которая планирует поддержать KMP
⭐️Store – KMP библиотека для работы с данными
⭐️http4k – серверный фреймворк, который тоже собирается поддержать KMP
⭐️KMP-NativeCoroutines – адаптер для связки корутин и Swift Concurrency
⭐️Lyricist – i18n библиотека для KMP проектов
Как выбирать метрики перфоманса

Полезные метрики нужно выбирать их таким образом, чтобы они были напрямую привязаны к пользовательскому опыту. Чаще всего это метрики плавности и отзывчивости. Различные рисерчи подсказывают, что целевыми показателями могут быть:

⭐️Для плавности: 11мс на смену кадров
⭐️Для отзывчивости: 69мс на реакцию на действие пользователя

Плавность обычно измеряют, смотря на frame rate и missed frames. Отзывчивость – сильно зависит от юзкейса, но можно смотреть в сторону APDEX, или Interaction to Next Paint.
Конвертер 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 – Люди запоминают не весь опыт работы с чем-то, а его самый пиковый момент и самый последний.
Почему рендеринг текста – это сложно

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