🤔Kotlin Developers Survey
Команда Kotlin начинает проводить регулярные опросы про качество работы различных подсистем языка: компилятора, IDE, библиотек. Расскажите про все проблемы, с которыми вы сталкиваетесь – это сильно поможет команде на следующих планированичх!
Команда Kotlin начинает проводить регулярные опросы про качество работы различных подсистем языка: компилятора, IDE, библиотек. Расскажите про все проблемы, с которыми вы сталкиваетесь – это сильно поможет команде на следующих планированичх!
Jetbrains
Kotlin Developers Survey
Kotlin Developers Survey.
Кастомное подчеркивание текста на Compose
- Подчеркивание текста прямой и волнистой линией
- Анимированное подчеркивание
- Выделение слова в баббл
- Подчеркивание текста прямой и волнистой линией
- Анимированное подчеркивание
- Выделение слова в баббл
В понедельник уже стартуем новый сезон Podlodka Android Crew!🤖
Напомним, что тема сезона – "Android под капотом"! Будем разбираться с
⚡️Менеджментом памяти Java и сборкой мусора
⚡️Устройством AOSP и IPC
⚡️Компиляторными плагинами и KSP, а еще внутрянкой Kotlin Multiplatform Moblle
⚡️И как всегда Dagger, конечно же!
Купить билеты и посмотреть полное расписание можно на сайте. Ждем на борту!
Напомним, что тема сезона – "Android под капотом"! Будем разбираться с
⚡️Менеджментом памяти Java и сборкой мусора
⚡️Устройством AOSP и IPC
⚡️Компиляторными плагинами и KSP, а еще внутрянкой Kotlin Multiplatform Moblle
⚡️И как всегда Dagger, конечно же!
Купить билеты и посмотреть полное расписание можно на сайте. Ждем на борту!
podlodka.io
Онлайн-конференция Podlodka Android Crew, сезон #13
Недельное мероприятие от команды Podlodka: ежедневные интерактивные сессии в Zoom по актуальным проблемам Android-разработки, нон-стоп общение с экспертами и звёздами индустрии, закрытое профессиональное сообщество в Telegram.
Полезные советы для дебага
- Перепроверяйте то, что говорят другие, даже если они очень уверены в советах
- Пытайтесь воспроизвести баг в маленьких и простых семплах, а не только в вашем продакшн коде
- Учитесь правильно писать просьбы о помощи
- Если столкнулись с проблемой, откатитесь на версию, где ее не было, и начинайте постепенно менять код, приближая его к сломанному состоянию
- Перепроверяйте то, что говорят другие, даже если они очень уверены в советах
- Пытайтесь воспроизвести баг в маленьких и простых семплах, а не только в вашем продакшн коде
- Учитесь правильно писать просьбы о помощи
- Если столкнулись с проблемой, откатитесь на версию, где ее не было, и начинайте постепенно менять код, приближая его к сломанному состоянию
Jetpack Compose Accessibility: Semantics
- Почему в Compose есть два дерева – composition и semantics
- Из чего состоит семантическое дерево
- Какие семантические свойства выводятся сами, а какие надо задавать самостоятельно
- Почему в Compose есть два дерева – composition и semantics
- Из чего состоит семантическое дерево
- Какие семантические свойства выводятся сами, а какие надо задавать самостоятельно
Compose Image на стероидах
Коллекция Composable и различных хелперов, которые прокачивают работу с ImageBitmap: отображение, манипулирование, изменение масштаба, зум, обрезание.
Коллекция Composable и различных хелперов, которые прокачивают работу с ImageBitmap: отображение, манипулирование, изменение масштаба, зум, обрезание.
Создание своей дизайн-системы на Compose
Google предоставляет много готовых Compose компонентов, поддерживающих Material UI. Но их недостаточно, если у продукта есть свой дизайн-язык, и его требуется поддержать. По ссылке вы найдете запись, слайды и дополнительные ссылки отличного доклада с недавнего Droidcon.
Google предоставляет много готовых Compose компонентов, поддерживающих Material UI. Но их недостаточно, если у продукта есть свой дизайн-язык, и его требуется поддержать. По ссылке вы найдете запись, слайды и дополнительные ссылки отличного доклада с недавнего Droidcon.
Год в продакшне с КММ и 70% реюза кода
- Кейс компании с 24 разработчиками, 2.5 миллионом MAU, 70% переиспользования кода и 99.75% крешфри
- Хранение общего кода в отдельном репозитории
- Использование интерфейсов вместо expect/actual
- Работа с крешами и уменьшение их количества в Kotlin/Native коде
- Кейс компании с 24 разработчиками, 2.5 миллионом MAU, 70% переиспользования кода и 99.75% крешфри
- Хранение общего кода в отдельном репозитории
- Использование интерфейсов вместо expect/actual
- Работа с крешами и уменьшение их количества в Kotlin/Native коде
Навигация в мультимодульном приложении на диплинках
- Приложение без Compose, с фиче-модулями и Activity вместо фрагментов
- Реализация обработки диплинков и навигации в нужный модуль
- Приложение без Compose, с фиче-модулями и Activity вместо фрагментов
- Реализация обработки диплинков и навигации в нужный модуль
Подкаст про Proguard с его разработчиком
- Как Proguard работает под капотом
- Proguard vs R8
- Runtime оптимизации в Proguard
- Как Proguard работает под капотом
- Proguard vs R8
- Runtime оптимизации в Proguard
Обновленные рекомендации по использованию Compose в RecyclerView
Начиная с
Начиная с
RecyclerView 1.3.0-alpha02
и Compose UI 1.2.0-beta02
, Composables больше не уничтожаются при выходе за границы экрана. Вместо этого они сохраняются и переиспользуются. Благодаря такому подходу исчез большой перфоманс-оверхед из-за необходимости постоянно пересоздавать composables.DNS-over-HTTPS/3 включен в Android 11 и выше
Большинство сетевых соединений начинаются с запроса к DNS. Исторически сложилось, что эти запросы не шифровались. Начиная с Android 9, Google выкатил фичу DNS-over-TLS, которая закрывает эту проблему, но порождает другие:
- Если первый запрос к серверу резолвится долго, все последующие ждут результата этого резолва, из-за чего общая производительность падает.
- При переходе из сотовой сети в сеть, что происходит при движении довольно часто, соединение рвется и его нужно восстанавливать с нуля, что тоже влияет на перфоманс.
Google вот только что выкатили обновление для всех устройств, начиная с Android 11, с новой фичей – DNS-over-HTTP/3. Она решает все перечисленные проблемы, а в нестабильных сетях работает даже лучше, чем оригинальный DNS. Поддержка протокола уже есть у нескольких ключевых DNS сервисов – Cloudflare и Google DNS.
Короче говоря, если хотите улучшить производительность сети в вашем проекте, проверьте, что ваш DNS сервис поддерживает этот протокол.
Большинство сетевых соединений начинаются с запроса к DNS. Исторически сложилось, что эти запросы не шифровались. Начиная с Android 9, Google выкатил фичу DNS-over-TLS, которая закрывает эту проблему, но порождает другие:
- Если первый запрос к серверу резолвится долго, все последующие ждут результата этого резолва, из-за чего общая производительность падает.
- При переходе из сотовой сети в сеть, что происходит при движении довольно часто, соединение рвется и его нужно восстанавливать с нуля, что тоже влияет на перфоманс.
Google вот только что выкатили обновление для всех устройств, начиная с Android 11, с новой фичей – DNS-over-HTTP/3. Она решает все перечисленные проблемы, а в нестабильных сетях работает даже лучше, чем оригинальный DNS. Поддержка протокола уже есть у нескольких ключевых DNS сервисов – Cloudflare и Google DNS.
Короче говоря, если хотите улучшить производительность сети в вашем проекте, проверьте, что ваш DNS сервис поддерживает этот протокол.
Выпуск Подлодки про протоколы и сети
Если вы не очень шарите в сетях и протоколах, но хотели бы разобраться – мы сравнительно недавно записали выпуск Подлодки из двух частей, где на пальцах разобрали, как работают современные сети, из каких этапов состоит сетевой запрос, и в целом как работает интернет.
- Часть 1
- Часть 2
Если вы не очень шарите в сетях и протоколах, но хотели бы разобраться – мы сравнительно недавно записали выпуск Подлодки из двух частей, где на пальцах разобрали, как работают современные сети, из каких этапов состоит сетевой запрос, и в целом как работает интернет.
- Часть 1
- Часть 2
podlodka.io
Podlodka #239 – Сети, часть 1: Интернет
Замахнулись на необъятное и обсудили компьютерные сети! Одного выпуска для такой тему явно мало, поэтому пока мы сфокусировались на интернете, и подробно изучили приключения сигнала на пути от пользователя к целевому сервису. В гостях у нас Тёма Гавриченков…
Positional memoization in Jetpack Compose
Простое объяснение того, как Compose кеширует информацию о Composable в дереве элементов. Понимание механики поможет вам не совершать ошибок, из-за которых дерево будет пересчитываться чаще, чем действительно нужно.
А если вы захотите более подробного разбора, обязательно посмотрите старую статью от Leland Richardson, одного из авторов фреймворка.
Простое объяснение того, как Compose кеширует информацию о Composable в дереве элементов. Понимание механики поможет вам не совершать ошибок, из-за которых дерево будет пересчитываться чаще, чем действительно нужно.
А если вы захотите более подробного разбора, обязательно посмотрите старую статью от Leland Richardson, одного из авторов фреймворка.
Подборка репозиториев с проектами на Compose
Твиттер-тред с 20 проектами или примерами кода на Jetpack Compose. Среди них:
- Примеры анимаций
- Чистая архитектура и Compose
- NotyKT – приложение-заметочник и его бэкенд
Твиттер-тред с 20 проектами или примерами кода на Jetpack Compose. Среди них:
- Примеры анимаций
- Чистая архитектура и Compose
- NotyKT – приложение-заметочник и его бэкенд
Twitter
20 Github Repositories for Android Developer that will teach you Jetpack Compose 💯
A Long Thread 🧵👇
A Long Thread 🧵👇
Как сохранить стейт UI в Compose при смене ориентации
Разбор двух подходов к сохранению UI стейта при смене ориентации или пересоздании Activity.
- Сохранение объектов с помощью kotlin-parcelable
- Реализация
Разбор двух подходов к сохранению UI стейта при смене ориентации или пересоздании Activity.
- Сохранение объектов с помощью kotlin-parcelable
- Реализация
mapSaver`/`listSaver
функции для тех случаев, когда использование Parcelable не подходитMedium
How To Retain Your App’s UI State Across Configuration Changes In Jetpack Compose
No longer lose your Android app’s state on process recreation
Коллекция CLI-команд для обработки изображений
В процессе работы часто приходится что-то делать с изображениями: ресайзить, мерджить или конвертировать между форматами. По ссылке – полезный гайд по самым частым консольным командам, которые вам могут помочь.
В процессе работы часто приходится что-то делать с изображениями: ресайзить, мерджить или конвертировать между форматами. По ссылке – полезный гайд по самым частым консольным командам, которые вам могут помочь.
kau.sh
Manipulating images & PDFs using CLI commands · Kaushik Gopal's Site
A bunch of useful cli commands for converting & editing images & PDF files