cookie

ما از کوکی‌ها برای بهبود تجربه مرور شما استفاده می‌کنیم. با کلیک کردن بر روی «پذیرش همه»، شما با استفاده از کوکی‌ها موافقت می‌کنید.

avatar

Полуночные Зарисовки

Моментами пишу о мыслях, Android и Kotlin ЛС: @secundans

نمایش بیشتر
پست‌های تبلیغاتی
219
مشترکین
اطلاعاتی وجود ندارد24 ساعت
اطلاعاتی وجود ندارد7 روز
اطلاعاتی وجود ندارد30 روز

در حال بارگیری داده...

معدل نمو المشتركين

در حال بارگیری داده...

نمایش همه...
Асхар Айдаров — Компиляторные плагины: модификация и анализ Сompose

Ближайшая конференция: Mobius 2024 Spring, 23 мая (online), 31 мая – 1 июня (offline, Москва)Подробности и билеты:

https://jrg.su/EH5c9Q—

—В процессе внедрен...

🔥 18 3
نمایش همه...
Организация компонентов в Jetpack Compose: Работа над ошибками

В посте про организацию компонентов в Jetpack Compose показывал вариант с типизированными слотами, которые представляют собой State и позволяют реализовать "умную" рекомпозицию функции в отдельных слотах за счет donut-hole skipping. Рекомендую ознакомиться с частью 4 из того поста под название "Слот как State" перед тем, как читать дальше. В том решении было лишь примерно то, как может выглядеть компонент. В реальности Avatar и другие компоненты намного сложнее, что приводит к тому, что внутрянка слотов разрастается…

🔥 12👍 2
نمایش همه...
Безболезненное перемещение ресурсов в мире нетранзитивных R-классов

Недавно делал задачу, связанную с перемещением иконок в проекте между модулями, и готовлюсь к задаче с большим количеством перемещений других ресурсов. И вот я что-то не замечал до этого момента (или не придавал особого значения) того, что Android Studio не умеет обновлять импорты к ресурсам или хотя бы предупреждать о том, что иконка или иной ресурс будут недоступны из каких-то мест в проекте после перемещения, пока не начнёшь собирать проект.  Такой расклад начинает казаться странным, ведь в Android Studio…

👍 7🔥 6
Подлодка Тут относительно недавно был сезон про оптимизации UI. О своих впечатлениях и о том, что интересного подчерпнул, написал в чате @devex_and_dpe Podlodka Android Crew #11
نمایش همه...
Askhar Aydarov in Developer Experience & Developer Productivity Engineering

Podlodka Android Crew #11

🔥 11👍 3
نمایش همه...
Секрет Parcelable

Казалось бы, кто в 2024 году будет сравнивать Serializable и Parcelable? Уже ведь все ясно, так как написали кучу статей, на Github лежат примеры сравнения скорости работы и даже есть крутой доклад с подробнейшим разбором. Но, пока я пробовал в предыдущем посте передавать большие данные между процессами, обнаружил довольно интересную вещь. В большинстве случаев данные, которые я оборачивал в Parcelable занимали в два раза больше памяти, чем Serializable. Когда такое обнаружил, показалось странным, а в интернете…

🔥 25
نمایش همه...
(Не)стандартные способы передачи больших данных в Intent

Интро Думаю не секрет, что запуская Activity или Service через Intent нам не следует передавать много данных. Если попытаемся и превысим некоторый лимит на размер данных, который обычно от 800Кб до 1000Кб, то упадем с ошибкой TransactionTooLargeException. Эта ошибка тянется из Binder - механизма межпроцессного взаимодействия -, c которым наше приложение и система взаимодействуют постоянно с помощью Binder-транзакций. Именно у этих транзакции есть ограничение на размер, о чем говорится в ошибке Transaction…

🔥 21
نمایش همه...
Организация компонентов в Jetpack Compose: Еще один вариант

Полная версия тут 5. Хранить данные в Modifier Чуть позже, просматривая различные репозитории в GitHub, наткнулся на ещё один вариант реализации компонентов, вдохновленный внутренней реализацией Modifier.  В этом репозитории дизайн система довольно скудная, но реализована она интересным образом. Там есть следующее: Кодогенерация с использование KSP для генерации sample приложения, как в google/casa-android Компиляторный плагин для генерации компонентов оберток над примитивными компонентами Прокидывание данных…

🔥 9
نمایش همه...
Организация компонентов в Jetpack Compose

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

👍 15🔥 1
С большим опозданием, но все же опубликовал исходный код с доклада. Там самые разные компиляторные плагины, такие как: - подсветка рекомпозиций - логирование причин рекомпозиций - удаление вызовов функции sourceInformation - генерация/удаление/отображение testTag - анализ стабильности параметров composable функций Все компиляторные плагины подключаются к проекту как gradle plugin. Можно все по отдельности, а можно вместе - так удобнее настраивать. В проверках стабильности параметров поддержаны самые последние обновления Compose Compiler, а именно возможность задавать в файле классы, которые надо пропустить в проверках. Подробнее писали тут. Кроме этого есть ещё idea plugin. Правда в виде jar, так как получил отказ при попытке публикации в JetBrains Marketplace. Он умеет отображать какие testTag будут сгенерированы компиляторным плагином, а так же проверять стабильность параметров функций и отображать ошибку в редакторе кода. Конечно, не на 100%, как это в компиляторном плагине сделано, но, думаю, в большинстве случаев правильно. Ну и получил несколько просьб по поводу detekt правила для проверки параметров функций. Его тоже добавил. И там же есть возможность исключать классы, которые не нужно проверять. Если будут проблемы или вопросы - пишите. Попробуем решить) github.com/VKCOM/vkompose
نمایش همه...
🔥 28
نمایش همه...
Как запустить активность без регистрации (и SMS) в манифесте?

Читал тут интервью Максима Сидорова. Классное интервью крутого специалиста. Особенно полезны были обсуждения по поводу собеседований. Мне как-то довелось даже пару раз провести с ним собес вторым номером. И в этом интервью был пример вопроса по поводу основных компонентов:

👍 9🔥 6 3
یک طرح متفاوت انتخاب کنید

طرح فعلی شما تنها برای 5 کانال تجزیه و تحلیل را مجاز می کند. برای بیشتر، لطفا یک طرح دیگر انتخاب کنید.