Forwarded from Полуночные Зарисовки
С большим опозданием, но все же опубликовал исходный код с доклада.
Там самые разные компиляторные плагины, такие как:
- подсветка рекомпозиций
- логирование причин рекомпозиций
- удаление вызовов функции sourceInformation
- генерация/удаление/отображение testTag
- анализ стабильности параметров composable функций
Все компиляторные плагины подключаются к проекту как gradle plugin. Можно все по отдельности, а можно вместе - так удобнее настраивать.
В проверках стабильности параметров поддержаны самые последние обновления Compose Compiler, а именно возможность задавать в файле классы, которые надо пропустить в проверках. Подробнее писали тут.
Кроме этого есть ещё idea plugin.Правда в виде jar, так как получил отказ при попытке публикации в JetBrains Marketplace.
Он умеет отображать какие testTag будут сгенерированы компиляторным плагином, а так же проверять стабильность параметров функций и отображать ошибку в редакторе кода. Конечно, не на 100%, как это в компиляторном плагине сделано, но, думаю, в большинстве случаев правильно.
Ну и получил несколько просьб по поводу detekt правила для проверки параметров функций. Его тоже добавил. И там же есть возможность исключать классы, которые не нужно проверять.
Если будут проблемы или вопросы - пишите. Попробуем решить)
github.com/VKCOM/vkompose
Там самые разные компиляторные плагины, такие как:
- подсветка рекомпозиций
- логирование причин рекомпозиций
- удаление вызовов функции sourceInformation
- генерация/удаление/отображение testTag
- анализ стабильности параметров composable функций
Все компиляторные плагины подключаются к проекту как gradle plugin. Можно все по отдельности, а можно вместе - так удобнее настраивать.
В проверках стабильности параметров поддержаны самые последние обновления Compose Compiler, а именно возможность задавать в файле классы, которые надо пропустить в проверках. Подробнее писали тут.
Кроме этого есть ещё idea plugin.
Он умеет отображать какие testTag будут сгенерированы компиляторным плагином, а так же проверять стабильность параметров функций и отображать ошибку в редакторе кода. Конечно, не на 100%, как это в компиляторном плагине сделано, но, думаю, в большинстве случаев правильно.
Ну и получил несколько просьб по поводу detekt правила для проверки параметров функций. Его тоже добавил. И там же есть возможность исключать классы, которые не нужно проверять.
Если будут проблемы или вопросы - пишите. Попробуем решить)
github.com/VKCOM/vkompose
🔥3👍1
Forwarded from Surf Mobile Team
Fast scroller с алфавитным указателем
Делимся ещё одной полезной фичей —🏄♂️ Android-разработчик Олег рассказал, как реализовать навигацию по списку с помощью быстрого скролла с алфавитным указателем.
👩💻 Ссылка на репозиторий
Делимся ещё одной полезной фичей —
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥7👍4👀1
Forwarded from Android Live 🤖
Хак через десериализацию
#android
Давно я не появлялся на канале: со мной всё хорошо, но дела под конец года забрали всё свободное время, а серая погода — забрала всё желание писать. Но… надо не забывать вас, поэтому возвращаюсь!
На днях попалось любопытное видео, где описывается уязвимость приложения, связанная с использованием Serializable в крупном приложении AliExpress. В видео по шагам рассказывается о том, как провернуть подобный хак, как найти подобные в своих приложениях, ну и конечно же демонстрируется сама уязвимость.
#android
Давно я не появлялся на канале: со мной всё хорошо, но дела под конец года забрали всё свободное время, а серая погода — забрала всё желание писать. Но… надо не забывать вас, поэтому возвращаюсь!
На днях попалось любопытное видео, где описывается уязвимость приложения, связанная с использованием Serializable в крупном приложении AliExpress. В видео по шагам рассказывается о том, как провернуть подобный хак, как найти подобные в своих приложениях, ну и конечно же демонстрируется сама уязвимость.
👍1🔥1🫡1
Forwarded from Android Guards
Короч я устал отдыхать, и решил начать год с публикации материала для новичков. Надеюсь, что он будет полезен всем кто только пришел в мобильный инфобез или собирается прийти. Возможно я буду дополнять и актуализировать этот материал, если пойму, что упустил какие-то важные детали или что-то эволюционировало слишком сильно. Всем продуктивного года! 👨🔬
(не)Уникальный опыт
Как вкатиться в безопасность android приложений в 2024
С завидным постоянством получаю подобные вопросы лично или вижу их в нашем уютном чате Android Guards. Поэтому решил систематизировать информацию чтобы упростить процедуру входа как для тех, кто …
🔥3👍1
Forwarded from RutheniumOS
android_encryption.pdf
8.8 MB
Такая вот работа получилась. Большая статья про шифрование в Android и атаки на него.
👍9🔥1
Forwarded from Mobile AppSec World (Yury Shabalin)
Pending Intents, что это и зачем?
Крайне полезная статья про механизм Pending Intents в Android, которая очень хорошо структурирована.
Люблю такие материалы, сначала теория, затем разъяснение, для чего этот механизм используется в легитимном плане и далее материал, как это может повлиять на безопасность и как такие вещи можно искать.
Была похожая статья от Oversecured, на которую ссылается в том числе и автор материала, так как что тем, ето хочет глубже погрузиться в эту область рекомендую изучить и ее тоже.
#android #intents
Крайне полезная статья про механизм Pending Intents в Android, которая очень хорошо структурирована.
Люблю такие материалы, сначала теория, затем разъяснение, для чего этот механизм используется в легитимном плане и далее материал, как это может повлиять на безопасность и как такие вещи можно искать.
Была похожая статья от Oversecured, на которую ссылается в том числе и автор материала, так как что тем, ето хочет глубже погрузиться в эту область рекомендую изучить и ее тоже.
#android #intents
Medium
Pending Intents: A Pentester’s view
Few days ago I came across an interesting case of vulnerability posted at the AndroidInfoSec’s facebook page. Since there are not many…
👍6🤔2❤1
Forwarded from Kotlin Multiplatform Broadcast (Кирилл Розов)
Официальная энциклопедия от JetBrains по интеропу между Kotlin и Swift. Рассказывается как работать с разными фичами Kotlin из Swift кода
🔥3❤2
Forwarded from Mobile Native ️️
Создание и использование BOM в Gradle
В статье рассказывается про то, как можно организовать BOM (bill of materials) для управления версиями зависимостей + рассматриваются более сложные кейсы создания и использования BOM в Gradle-проектах.
👉 Зачем вообще нужен BOM?
👉 Как выглядит BOM?
👉 Когда создавать свой BOM?
👉 Что такое Rich Model и Gradle Module Metadata?
👉 Как несколько BOM сочетаются друг с другом?
👉 Управление версиями Gradle-плагинов через BOM
Читать (Ru)
В статье рассказывается про то, как можно организовать BOM (bill of materials) для управления версиями зависимостей + рассматриваются более сложные кейсы создания и использования BOM в Gradle-проектах.
👉 Зачем вообще нужен BOM?
👉 Как выглядит BOM?
👉 Когда создавать свой BOM?
👉 Что такое Rich Model и Gradle Module Metadata?
👉 Как несколько BOM сочетаются друг с другом?
👉 Управление версиями Gradle-плагинов через BOM
Читать (Ru)
👍1🔥1😱1
Forwarded from Android Live 🤖
HashMap для Jetpack Compose
#compose #performance
Интересная статья, где рассказывается про минусы стандартной HashMap в контектсте использования Jetpack Compose.
При использовании mutableMapOf() под капотом создаётся LinkedHashMap(), которая довольна хороша, но имеет недостаток: при каждом новом добавлении элемента создаётся LinkedHashMapEntry, из-за чего структура не очень memory-friendly.
Ну и сходу предлагается использовать другую структуру — ScatterMap, у которой подобных недостатков нет. В статье есть и замеры, и описывается главный недостаток этого подхода: структура хоть и map-based, но не наследуется от привычного нам Map, хотя и имеет подобные ему классы.
Стоит ли бежать заменять мапы на неё? Безусловно, нет: сам автор признаётся, что вам просто стоит иметь в виду, что такая структура существует и вы вспомните о ней, когда аллокация памяти будет очень критичным моментом.
#compose #performance
Интересная статья, где рассказывается про минусы стандартной HashMap в контектсте использования Jetpack Compose.
При использовании mutableMapOf() под капотом создаётся LinkedHashMap(), которая довольна хороша, но имеет недостаток: при каждом новом добавлении элемента создаётся LinkedHashMapEntry, из-за чего структура не очень memory-friendly.
Ну и сходу предлагается использовать другую структуру — ScatterMap, у которой подобных недостатков нет. В статье есть и замеры, и описывается главный недостаток этого подхода: структура хоть и map-based, но не наследуется от привычного нам Map, хотя и имеет подобные ему классы.
Стоит ли бежать заменять мапы на неё? Безусловно, нет: сам автор признаётся, что вам просто стоит иметь в виду, что такая структура существует и вы вспомните о ней, когда аллокация памяти будет очень критичным моментом.
👍5🔥1👀1
Forwarded from Полуночные Зарисовки
Telegraph
(Не)стандартные способы передачи больших данных в Intent
Интро Думаю не секрет, что запуская Activity или Service через Intent нам не следует передавать много данных. Если попытаемся и превысим некоторый лимит на размер данных, который обычно от 800Кб до 1000Кб, то упадем с ошибкой TransactionTooLargeException.…
🔥5👍2❤1
Forwarded from RutheniumOS
Внезапный материал про SELinux
SELinux + AOSP, или безопасности много не бывает.
https://blog.rutheniumos.ru/docs/blog/selinux_in_aosp/
SELinux + AOSP, или безопасности много не бывает.
https://blog.rutheniumos.ru/docs/blog/selinux_in_aosp/
👍4🔥2👏1
Forwarded from Дмитрий Мовчан - про IT
Мой доклад про мобильные собеседования на Mobius в открытом доступе
https://youtu.be/F0TVWXw1z2A?si=M48-HajfCfGHBBwr
https://youtu.be/F0TVWXw1z2A?si=M48-HajfCfGHBBwr
YouTube
Дмитрий Мовчан — Cracking the Mobile Interview
Подробнее о конференции Mobius: https://jrg.su/ojGU3B
— —
При устройстве на работу необходимо пройти собеседование, но что нас там ждет – всегда загадка. Дмитрий делится опытом собеседований по обе стороны баррикад, дает советы на тему того, как лучше подготовиться…
— —
При устройстве на работу необходимо пройти собеседование, но что нас там ждет – всегда загадка. Дмитрий делится опытом собеседований по обе стороны баррикад, дает советы на тему того, как лучше подготовиться…
🔥5👍2🤓1
Forwarded from Mobile Developer (Алексей Гладков)
Compose Cupertino
https://github.com/alexzhirkevich/compose-cupertino
Из закрытого чата подкинули крутую библиотеку для компоуза
👉 Анимации и эффекты как в нативном iOS
👉 Поддержка Decompose
👉 Обертки над компонентами для использования их из iOS
👉 Набор иконок от Apple
Это мы подключаем
https://github.com/alexzhirkevich/compose-cupertino
Из закрытого чата подкинули крутую библиотеку для компоуза
👉 Анимации и эффекты как в нативном iOS
👉 Поддержка Decompose
👉 Обертки над компонентами для использования их из iOS
👉 Набор иконок от Apple
Это мы подключаем
GitHub
GitHub - alexzhirkevich/compose-cupertino: Compose Multiplatform UI components for iOS (Cupertino Widgets)
Compose Multiplatform UI components for iOS (Cupertino Widgets) - alexzhirkevich/compose-cupertino
🤡6😱3👍1