Полуночные Зарисовки
Моментами пишу о мыслях, Android и Kotlin ЛС: @secundans
نمایش بیشتر- مشترکین
- پوشش پست
- ER - نسبت تعامل
در حال بارگیری داده...
در حال بارگیری داده...
Ближайшая конференция: Mobius 2024 Spring, 23 мая (online), 31 мая – 1 июня (offline, Москва)Подробности и билеты:
https://jrg.su/EH5c9Q——В процессе внедрен...
В посте про организацию компонентов в Jetpack Compose показывал вариант с типизированными слотами, которые представляют собой State и позволяют реализовать "умную" рекомпозицию функции в отдельных слотах за счет donut-hole skipping. Рекомендую ознакомиться с частью 4 из того поста под название "Слот как State" перед тем, как читать дальше. В том решении было лишь примерно то, как может выглядеть компонент. В реальности Avatar и другие компоненты намного сложнее, что приводит к тому, что внутрянка слотов разрастается…
Недавно делал задачу, связанную с перемещением иконок в проекте между модулями, и готовлюсь к задаче с большим количеством перемещений других ресурсов. И вот я что-то не замечал до этого момента (или не придавал особого значения) того, что Android Studio не умеет обновлять импорты к ресурсам или хотя бы предупреждать о том, что иконка или иной ресурс будут недоступны из каких-то мест в проекте после перемещения, пока не начнёшь собирать проект. Такой расклад начинает казаться странным, ведь в Android Studio…
Podlodka Android Crew #11
Казалось бы, кто в 2024 году будет сравнивать Serializable и Parcelable? Уже ведь все ясно, так как написали кучу статей, на Github лежат примеры сравнения скорости работы и даже есть крутой доклад с подробнейшим разбором. Но, пока я пробовал в предыдущем посте передавать большие данные между процессами, обнаружил довольно интересную вещь. В большинстве случаев данные, которые я оборачивал в Parcelable занимали в два раза больше памяти, чем Serializable. Когда такое обнаружил, показалось странным, а в интернете…
Интро Думаю не секрет, что запуская Activity или Service через Intent нам не следует передавать много данных. Если попытаемся и превысим некоторый лимит на размер данных, который обычно от 800Кб до 1000Кб, то упадем с ошибкой TransactionTooLargeException. Эта ошибка тянется из Binder - механизма межпроцессного взаимодействия -, c которым наше приложение и система взаимодействуют постоянно с помощью Binder-транзакций. Именно у этих транзакции есть ограничение на размер, о чем говорится в ошибке Transaction…
Полная версия тут 5. Хранить данные в Modifier Чуть позже, просматривая различные репозитории в GitHub, наткнулся на ещё один вариант реализации компонентов, вдохновленный внутренней реализацией Modifier. В этом репозитории дизайн система довольно скудная, но реализована она интересным образом. Там есть следующее: Кодогенерация с использование KSP для генерации sample приложения, как в google/casa-android Компиляторный плагин для генерации компонентов оберток над примитивными компонентами Прокидывание данных…
В Jetpack Compose очень неплохая идея слотов, о которой довольно много пишут и писали пару лет назад и которая позволят делать простые и расширяемые компоненты, не ограничивая разработчиков в том, какой контент и как они могут отрисовать в слотах. Для примера вот две функции с ограничениями и без них.
Читал тут интервью Максима Сидорова. Классное интервью крутого специалиста. Особенно полезны были обсуждения по поводу собеседований. Мне как-то довелось даже пару раз провести с ним собес вторым номером. И в этом интервью был пример вопроса по поводу основных компонентов:
طرح فعلی شما تنها برای 5 کانال تجزیه و تحلیل را مجاز می کند. برای بیشتر، لطفا یک طرح دیگر انتخاب کنید.