Forwarded from Android Live 🤖
Navigation в Jetpack Compose
#compose
Использование правильно настроенной навигации в приложении — очень важная вещь, которая в будущем, при росте проекта, спасает от многих проблем.
И если в привычной Android-разработке уже существует несколько различных подходов, то с появлением Jetpack Compose приходится искать другие варианты.
Тут автор очень круто сравнивает текущие подходы к навигации и пытается подобрать идеальный вариант. В сравнение попали следующие библиотеки:
👉 Navigation-compose;
👉 Compose-navigation-reimagined;
👉 Voyager;
👉 Navigator-compose;
👉 Simple-stack-compose-integration;
У каждой из них он рассмотрел плюсы и минусы, в некоторых указал, как эти минусы разрешить.
🏆 В итоге, по мнению автора, победила библиотека Voyager, которая вот-вот выйдет в релизную версию.
#compose
Использование правильно настроенной навигации в приложении — очень важная вещь, которая в будущем, при росте проекта, спасает от многих проблем.
И если в привычной Android-разработке уже существует несколько различных подходов, то с появлением Jetpack Compose приходится искать другие варианты.
Тут автор очень круто сравнивает текущие подходы к навигации и пытается подобрать идеальный вариант. В сравнение попали следующие библиотеки:
👉 Navigation-compose;
👉 Compose-navigation-reimagined;
👉 Voyager;
👉 Navigator-compose;
👉 Simple-stack-compose-integration;
У каждой из них он рассмотрел плюсы и минусы, в некоторых указал, как эти минусы разрешить.
🏆 В итоге, по мнению автора, победила библиотека Voyager, которая вот-вот выйдет в релизную версию.
👍1
Forwarded from Android Broadcast
#compose
Creating a graph in Jetpack Compose (4 мин)
Автор рассказывает как реализовать отрисовку графика по заданным точкам в Jetpack Compose.
Creating a graph in Jetpack Compose (4 мин)
Автор рассказывает как реализовать отрисовку графика по заданным точкам в Jetpack Compose.
👍1
Forwarded from Android Broadcast
#compose
Custom Layouts with jetpack Compose (Deep Dive)
Разбор как реализовать собcтвенный layout в Compose. Такие задачи появляются не так часто, но в Jetpack Compose сделать это проще чем в View
Custom Layouts with jetpack Compose (Deep Dive)
Разбор как реализовать собcтвенный layout в Compose. Такие задачи появляются не так часто, но в Jetpack Compose сделать это проще чем в View
👍1
Forwarded from Mobile AppSec World (Yury Shabalin)
Инструмент для загрузки приложений из систем дистрибуции и магазинов приложений
Всем привет!
Очень часто возникает необходимость загрузить что-то из Google Play или Apple Appstore.
А бывает и такое, что нужно автоматизировать загрузку промежуточных версий из какого-то Firebase, например или AppCenter.
Мы тоже сталкиваемся постоянно с этими задачами, поэтому решили их автоматизировать и оформить в виде репо на гитхаб, а также питоновского пакета и докер-образа :)
Вообще, это наш cli для автоматического сканирования приложений, но если вам нужно просто приложение, достаточно указать флаг —download_only
И если интересно почитать, как мы это разрабатывали - прошу на Хабр!
Пользуйтесь на здоровье :)
#habr #integratios #firebase #googleplay #appstore
Всем привет!
Очень часто возникает необходимость загрузить что-то из Google Play или Apple Appstore.
А бывает и такое, что нужно автоматизировать загрузку промежуточных версий из какого-то Firebase, например или AppCenter.
Мы тоже сталкиваемся постоянно с этими задачами, поэтому решили их автоматизировать и оформить в виде репо на гитхаб, а также питоновского пакета и докер-образа :)
Вообще, это наш cli для автоматического сканирования приложений, но если вам нужно просто приложение, достаточно указать флаг —download_only
И если интересно почитать, как мы это разрабатывали - прошу на Хабр!
Пользуйтесь на здоровье :)
#habr #integratios #firebase #googleplay #appstore
Хабр
Один в поле не воин. Полезные интеграции для инструментов анализа мобильных приложений
Привет, Хабр! Как вы уже наверняка помните, меня зовут Юрий Шабалин и я занимаюсь разработкой динамического анализатора мобильных приложений Стингрей. Сегодня мне хотелось бы затронуть тему интеграций...
👍1
Forwarded from Mobile AppSec World (Yury Shabalin)
Переход на 64-битную архитектуру в Android
Как мы знаем, ещё в далеком 2017 (блин, 5 лет прошло уже 😰), Apple полностью отказалась от поддержки 32-битных приложений и этой архитектуры как таковой. Google же, в свою очередь нет-нет, да и посматривал на своего оппонента и вот, долгожданные новости. В ближайшее время компания планирует отказаться от поддержки x86!
Уже сейчас, в новых линейках процессоров из 8 доступных ядер для выполнения 32-битных операций будут доступны только 3 ядра. А к следующему году планируется полностью исключить их выполнение.
Android давно к этому готовился и вот, Android 12 первая версия операционной системы, которая поддерживает выполнение только 64-битных приложений! Небольшая выдержка из статьи:
The latest revision to the CDD explicitly requires device makers to build 32-bit Android for low RAM devices. The goal is to reduce the types of Android builds to two — Android 32-bit only and Android 64-bit only — to reduce fragmentation until 32-bit support can be fully deprecated years from now.
Больше подробностей в статье. За что мне нравится этот ресурс - это огромное количество ссылок в процессе повествования, по которым интересно походить и прочитать интересующую информацию.
#android #fragmentation #x86 #x64
Как мы знаем, ещё в далеком 2017 (блин, 5 лет прошло уже 😰), Apple полностью отказалась от поддержки 32-битных приложений и этой архитектуры как таковой. Google же, в свою очередь нет-нет, да и посматривал на своего оппонента и вот, долгожданные новости. В ближайшее время компания планирует отказаться от поддержки x86!
Уже сейчас, в новых линейках процессоров из 8 доступных ядер для выполнения 32-битных операций будут доступны только 3 ядра. А к следующему году планируется полностью исключить их выполнение.
Android давно к этому готовился и вот, Android 12 первая версия операционной системы, которая поддерживает выполнение только 64-битных приложений! Небольшая выдержка из статьи:
The latest revision to the CDD explicitly requires device makers to build 32-bit Android for low RAM devices. The goal is to reduce the types of Android builds to two — Android 32-bit only and Android 64-bit only — to reduce fragmentation until 32-bit support can be fully deprecated years from now.
Больше подробностей в статье. За что мне нравится этот ресурс - это огромное количество ссылок в процессе повествования, по которым интересно походить и прочитать интересующую информацию.
#android #fragmentation #x86 #x64
www.esper.io
Android 12 ultimate compatibility guide — all the changes for enterprise and device makers
Ready to build Android 12? If you plan to include GMS in your software, you'll need to meet Android 12's compatibility requirements.
👍1
Forwarded from Mobile Compose
#Video #Youtube #JetpackCompose
Positional memoization, или Как работает одна из главных концепций Jetpack Compose
На YouTube канале Mobius начали публиковать первые записи докладов с прошедшей конференции, среди которых появился и мой, в котором я рассказываю о том, как устроена одна из ключевых концепций Jetpack Compose — позиционная мемоизация. Приятного просмотра!
Positional memoization, или Как работает одна из главных концепций Jetpack Compose
На YouTube канале Mobius начали публиковать первые записи докладов с прошедшей конференции, среди которых появился и мой, в котором я рассказываю о том, как устроена одна из ключевых концепций Jetpack Compose — позиционная мемоизация. Приятного просмотра!
YouTube
Дмитрий Григорьев — Positional memoization. Как работает одна из главных концепций Jetpack Compose
Подробнее о конференции Mobius: https://jrg.su/ojGU3B
— —
Дмитрий Григорьев – Android-разработчик, интересуется декларативной и кроссплатформенной разработкой. Пишет и рассказывает про Jetpack Compose в своем Telegram — https://news.1rj.ru/str/mobile_compose, и на YouTube…
— —
Дмитрий Григорьев – Android-разработчик, интересуется декларативной и кроссплатформенной разработкой. Пишет и рассказывает про Jetpack Compose в своем Telegram — https://news.1rj.ru/str/mobile_compose, и на YouTube…
👍1
Forwarded from Android Broadcast (Кирилл Розов)
This media is not supported in your browser
VIEW IN TELEGRAM
#compose #animation
Orbitary - Compose библиотека для создания анимация с переходом элементов (transition with shared element)
Orbitary - Compose библиотека для создания анимация с переходом элементов (transition with shared element)
👍1
Forwarded from Android Broadcast (Кирилл Розов)
#performance
Performance Considerations for Memory Leaks: An Android Cookbook (6 мин)
Неплохая статья с примерами основных причин утечек памяти и как с ними бороться. Тем кто не знаком с этим рекомендую пройтись, тем кто в курсе - вспомнить лишний раз про возможные причины:
👉 Статические ссылки
👉 Взаимодействие с UI не из UI слоя/Android классов
👉 Хранение Bitmap
👉 Строгие ссылки на объекты с жизненным циклом
👉 Вложенные нестатические классы
Performance Considerations for Memory Leaks: An Android Cookbook (6 мин)
Неплохая статья с примерами основных причин утечек памяти и как с ними бороться. Тем кто не знаком с этим рекомендую пройтись, тем кто в курсе - вспомнить лишний раз про возможные причины:
👉 Статические ссылки
👉 Взаимодействие с UI не из UI слоя/Android классов
👉 Хранение Bitmap
👉 Строгие ссылки на объекты с жизненным циклом
👉 Вложенные нестатические классы
👍2
Forwarded from Android Good Reads (Egor Tolstoy)
Команда Касперского делится своим опытом использования Baseline profiles для оптимизации перфоманса. Помимо итоговых результатов, статья дает хороший обзор принципов работы этих профилей.
Хабр
Улучшаем производительность android-приложения с помощью Baseline profiles
Производительность важна для формирования положительного пользовательского опыта использования приложения, поэтому разработчики стремятся ускорить работу своих программ. Для приложений в области...
👍1
Forwarded from Mobile AppSec World (Yury Shabalin)
Как написать собственный эмулятор
Огненная статья по написанию самого худшего эмулятора Android в мире (да, она именно так и называется).
Статья очень информативная и интересная, покрывает широкий спектр различных тем, ведь чтобы написать эмулятор, нужно абсолютно точно понимать, как работает операционная система, которую мы собираемся эмулировать. В данном случае в статье покрыты темы:
• Базовая архитектура операционной системы Android
• Что такое системные вызовы
• Как обрабатываются системные вызовы в AArch64
• Как работает сопоставление памяти
• Как операционная система загружает ELF в память и запускает его
• Как эмулировать поведение операционной системы для загрузки ELF в память и его запуска
Советую всем неравнодушным к Android!
#android #emulator #rust
Огненная статья по написанию самого худшего эмулятора Android в мире (да, она именно так и называется).
Статья очень информативная и интересная, покрывает широкий спектр различных тем, ведь чтобы написать эмулятор, нужно абсолютно точно понимать, как работает операционная система, которую мы собираемся эмулировать. В данном случае в статье покрыты темы:
• Базовая архитектура операционной системы Android
• Что такое системные вызовы
• Как обрабатываются системные вызовы в AArch64
• Как работает сопоставление памяти
• Как операционная система загружает ELF в память и запускает его
• Как эмулировать поведение операционной системы для загрузки ELF в память и его запуска
Советую всем неравнодушным к Android!
#android #emulator #rust
fuzzing.science
Rudroid - Writing the World's worst Android Emulator in Rust 🦀 | fuzzing.science
Introduction
👍1
Forwarded from Mobile Compose
#Article #Medium
Introducing Jetpack Compose’s New Layout: “LookaheadLayout”
Вместе с появлением новой альфа версии Jetpack Compose (1.3.0-alpha01) API фреймворка пополнился новым и уже горячо обсуждаемым layout-ом — LookaheadLayout. Если кратко, это первый layout в Compose, способный отслеживать кадры используемой анимации, при помощи чего, к примеру, легко можно реализовать анимацию типа “Shared Element Transition”. Подробнее о том, как работает этот компонент — в сегодняшней статье.
Introducing Jetpack Compose’s New Layout: “LookaheadLayout”
Вместе с появлением новой альфа версии Jetpack Compose (1.3.0-alpha01) API фреймворка пополнился новым и уже горячо обсуждаемым layout-ом — LookaheadLayout. Если кратко, это первый layout в Compose, способный отслеживать кадры используемой анимации, при помощи чего, к примеру, легко можно реализовать анимацию типа “Shared Element Transition”. Подробнее о том, как работает этот компонент — в сегодняшней статье.
👍2
Forwarded from StartAndroid
В Android Studio Electric Eel была добавлена интеграция с Firebase Crashlytics.
Теперь креши можно смотреть прямо в студии. Кроме того, студия будет подсвечивать строки кода, которые приводят к крешам.
#androidstudio #firebase #crashlytics
https://developer.android.com/studio/preview/features#aqi
Теперь креши можно смотреть прямо в студии. Кроме того, студия будет подсвечивать строки кода, которые приводят к крешам.
#androidstudio #firebase #crashlytics
https://developer.android.com/studio/preview/features#aqi
👍1
Forwarded from Android Good Reads (Egor Tolstoy)
Разбор всех этапов совершения сетевого вызова, способов их инструментации, сбора метрик перфоманса и различных способов оптимизации времени совершения запроса. Кейс интересен тем, что для авторов производительность сетевых запросов особенно важна – они делают приложение, основные пользователи которого живут в сельской местности в Индии со слабым сетевым соединением.
Medium
How OkCredit Android App boosted Network Performance by 30%
By instrumenting network calls on production and following best practices, we can make huge improvements to an app’s network performance…
👍1
Forwarded from Mobile Developer (Алексей Гладков)
Кстати, если кто-то хочет начать делать проект на КММ, но не хочет заморачиваться с собственными решениями, то есть репозиторий, где собраны почти все либы, которые работают для КММ
https://github.com/terrakok/kmm-awesome
https://github.com/terrakok/kmm-awesome
GitHub
GitHub - terrakok/kmp-awesome: An awesome list that curates the best Kotlin Multiplatform libraries, tools and more.
An awesome list that curates the best Kotlin Multiplatform libraries, tools and more. - GitHub - terrakok/kmp-awesome: An awesome list that curates the best Kotlin Multiplatform libraries, tools a...
👍3
Forwarded from Android Broadcast (Кирилл Розов)
This media is not supported in your browser
VIEW IN TELEGRAM
#compose
Compose Image on Steroids - набор Compose API для расширения ваших возможностей по работе с изображениями в новомодном UI фреймворке от Google
Compose Image on Steroids - набор Compose API для расширения ваших возможностей по работе с изображениями в новомодном UI фреймворке от Google
👍1
Forwarded from Android Good Reads (Egor Tolstoy)
Еще один скриншот нового легкого UI IntelliJ, который появится и в Android Studio.
👍3👎2
Forwarded from Mobile AppSec World (Yury Shabalin)
Как установить более старую версию приложения поверх нового и не потерять данные в Android
По умолчанию, Android-система не позволяет устанавливать более старую версию поверх новой для одного приложения. В целом, это правильный подход, так и должно быть, потому что внутренние базы и структуры данных уже могут быть изменены под новую версию и старая может работать некорректно.
Но, иногда такая необходимость возникает. И тут на помощь нам придет статья, в которой описано несколько способов как это совершенно легально провернуть и оставить данные на месте.
Это может быть крайне полезно!
#android #downgrade
По умолчанию, Android-система не позволяет устанавливать более старую версию поверх новой для одного приложения. В целом, это правильный подход, так и должно быть, потому что внутренние базы и структуры данных уже могут быть изменены под новую версию и старая может работать некорректно.
Но, иногда такая необходимость возникает. И тут на помощь нам придет статья, в которой описано несколько способов как это совершенно легально провернуть и оставить данные на месте.
Это может быть крайне полезно!
#android #downgrade
🔥1
Forwarded from Голос из-под шторки | Миша Левченко
Почти 3 года назад я “продал” TEA своей команде в Авто.ру. С тех пор наша команда написала 180 TEA-компонентов - от простых экранов с парой кнопок до сложных форм-визардов с кучей логики. Тогда одним из ключевых требований дизайна, которые я перед собой ставил, был интероп с тогдашним стеком приложения - MVP + Clean Architecture, RxJava, Dagger 2. С тех пор я много думал о том, как бы выглядела архитектура, если убрать ограничение на совместимость с наследием эпохи Clean Architecture. Эта статья - компиляция моих заметок на эту тему.
t.me
The Elm Architecture в Android проекте: 3 года спустя
Почти 3 года назад я “продал” TEA своей команде в Авто.ру. С тех пор наша команда написала 180 TEA-компонентов - от простых экранов с парой кнопок до сложных форм-визардов с кучей логики. Тогда одним из ключевых требований дизайна, которые я перед собой ставил…
👍2
Forwarded from Mobile Compose
#Article #Blog #UI
Drawing custom text spans in Compose UI
Автор статьи, ориентируясь на разнообразные подчеркивания текста в приложении BuzzKill, решил вручную реализовать их в Jetpack Compose. Результат - небольшая готовая библиотека ExtendedSpans. Об этапах реализации, а также достигнутых результатах — в сегодняшней статье.
Drawing custom text spans in Compose UI
Автор статьи, ориентируясь на разнообразные подчеркивания текста в приложении BuzzKill, решил вручную реализовать их в Jetpack Compose. Результат - небольшая готовая библиотека ExtendedSpans. Об этапах реализации, а также достигнутых результатах — в сегодняшней статье.
Saket Narayan
Drawing custom text spans in Compose UI
Exploring how squiggly underlines and rounded corners can be drawn without any official APIs for drawing custom spans.
👍2
Forwarded from Mobile AppSec World (Yury Shabalin)
Детальный разбор эволюции троянского приложения Flubot
Очень здоровская статья про развитие и эволюцию банковского зловреда под Андроид.
Основной особенностью на мой взгляд, является то, что это современный (первая версия датирована 2020 годом), написанный самостоятельно (а не скопированный с других зловредов) проект, который эволюционирует и развивается получше и побыстрее многих коммерческих приложений 😁
Очень интересно почитать про те приемы, которые они использовали, чтобы оставаться менее заметными и их было сложнее определить.
В общем, рекомендую почитать, может даже мы что-то у них позаимствуем :)
#malware #android #analisys
Очень здоровская статья про развитие и эволюцию банковского зловреда под Андроид.
Основной особенностью на мой взгляд, является то, что это современный (первая версия датирована 2020 годом), написанный самостоятельно (а не скопированный с других зловредов) проект, который эволюционирует и развивается получше и побыстрее многих коммерческих приложений 😁
Очень интересно почитать про те приемы, которые они использовали, чтобы оставаться менее заметными и их было сложнее определить.
В общем, рекомендую почитать, может даже мы что-то у них позаимствуем :)
#malware #android #analisys
Fox-IT International blog
Flubot: the evolution of a notorious Android Banking Malware
Authored by Alberto Segura (main author) and Rolf Govers (co-author) Summary Flubot is an Android based malware that has been distributed in the past 1.5 years inEurope, Asia and Oceania affecting …
👍1