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
Forwarded from Android Good Reads (Egor Tolstoy)
Обновленные рекомендации по использованию Compose в RecyclerView
Начиная с
Начиная с
RecyclerView 1.3.0-alpha02 и Compose UI 1.2.0-beta02, Composables больше не уничтожаются при выходе за границы экрана. Вместо этого они сохраняются и переиспользуются. Благодаря такому подходу исчез большой перфоманс-оверхед из-за необходимости постоянно пересоздавать composables.👍3💯1
Forwarded from Mobile Developer (Алексей Гладков)
Просто мегастатья, посвящённая оптимизации сборки, уменьшению веса и тд
https://habr.com/ru/post/533578/
Что внутри:
🤌 Как работает компиляция сборки
🤌 Как работает ProGuard
🤌 Что такое D8, R8
🤌 Как это помогает в оптимизации
Если хотите пройти собес на синьора - не пропустите эту статью
https://habr.com/ru/post/533578/
Что внутри:
🤌 Как работает компиляция сборки
🤌 Как работает ProGuard
🤌 Что такое D8, R8
🤌 Как это помогает в оптимизации
Если хотите пройти собес на синьора - не пропустите эту статью
Хабр
Оптимизация сборок Android приложений: ProGuard, D8, R8. Тайны обфускации
Оптимизация сборки — вишенка на торте мобильного приложения. К счастью, существуют инструменты, проверенные временем и заслужившие доверие сообщества. К сожалению, ее не всегда воспринимают всерьез и...
👍3
Forwarded from Mobile Compose
#Article #Blog
movableContentOf and movableContentWithReceiverOf
Не так давно Jorge Castillo (автор книги Jetpack Compose Internals) создал блог “Effective Android”, в котором он публикует различные полезные материалы по Android разработке (естественно большая часть посвящена Compose).
В одной из таких статей разбираются функции movableContentOf и movableContentWithReceiverOf, которые позволяют нам сохранять состояние UI-контента и передавать его в последующие вызовы.
▫️P.S. В одном из предыдущих постов мы уже частично разбирали movableContentOf , может помочь для лучшего понимания
▫️P.S.S. В своем недавнем докладе я также уделял внимание этому механизму (ссылка с таймкодом)
movableContentOf and movableContentWithReceiverOf
Не так давно Jorge Castillo (автор книги Jetpack Compose Internals) создал блог “Effective Android”, в котором он публикует различные полезные материалы по Android разработке (естественно большая часть посвящена Compose).
В одной из таких статей разбираются функции movableContentOf и movableContentWithReceiverOf, которые позволяют нам сохранять состояние UI-контента и передавать его в последующие вызовы.
▫️P.S. В одном из предыдущих постов мы уже частично разбирали movableContentOf , может помочь для лучшего понимания
▫️P.S.S. В своем недавнем докладе я также уделял внимание этому механизму (ссылка с таймкодом)
Effective Android
movableContentOf and movableContentWithReceiverOf
Tracking compositions in Jetpack Compose
👍3
Forwarded from Mobile Developer (Pavel Kachan)
Мы многократно упоминали о важности копирования существующих приложений для становления крутым разработчиком. Но бывает сложно найти подробный дизайн известных приложений и выбрать готовый не сильно легче — либо бесплатно и не очень, либо здорово и относительно дорого.
Поэтому вот хороший и бесплатный дизайн мобильного банка от замечательного дизайнера Анастасии.
Дизайн мобильного банка:
https://www.figma.com/file/lu7nTUMx3k3mgQ9Hwjs4mj/Bank-App?node-id=0%3A1
Другие работы Анастасии:
https://www.behance.net/84be0c32
Поэтому вот хороший и бесплатный дизайн мобильного банка от замечательного дизайнера Анастасии.
Дизайн мобильного банка:
https://www.figma.com/file/lu7nTUMx3k3mgQ9Hwjs4mj/Bank-App?node-id=0%3A1
Другие работы Анастасии:
https://www.behance.net/84be0c32
Figma
Bank App
Created with Figma
👍2
Forwarded from Android Good Reads (Egor Tolstoy)
Интерактивный гайд по работе со стейтом с помощью Flow
Страница со статьей собрана на Compose for Web. Благодаря этому, можно не только смотреть на примеры кода, но и на ходу играть со стейтом и смотреть, как обрабатываются его изменения. Автор разбирает:
- Как реализовать UDF с помощью Flows
- Как прокидывать действия пользователя до стейта
- Как мерджить изменения в стейте
- Как решать конфликты при изменениях
Страница со статьей собрана на Compose for Web. Благодаря этому, можно не только смотреть на примеры кода, но и на ходу играть со стейтом и смотреть, как обрабатываются его изменения. Автор разбирает:
- Как реализовать UDF с помощью Flows
- Как прокидывать действия пользователя до стейта
- Как мерджить изменения в стейте
- Как решать конфликты при изменениях
👍2
Forwarded from Android Broadcast (Кирилл Розов)
Customize Android Studio to run third-party tools (without plugins) (3 мин)
Автор статьи делится тем как интегрировать любую внешнюю тулзу (без разработки плагинов!) в интерфейс Android Studio и работать с ней прямо из панели
#androidstudio
Автор статьи делится тем как интегрировать любую внешнюю тулзу (без разработки плагинов!) в интерфейс Android Studio и работать с ней прямо из панели
#androidstudio
👍1
Forwarded from Android Live 🤖
UDF с Kotlin Flow
#kotlin
Классный пример визуализации поведения Kotlin Flow в Android.
Автор рассмотрел основные кейсы работы
Получилась крутая визуализация, что будет полезно, если вы хотите лучше разобраться с
#kotlin
Классный пример визуализации поведения Kotlin Flow в Android.
Автор рассмотрел основные кейсы работы
Flow в контексте состояний, пользовательских действий и различных типов.Получилась крутая визуализация, что будет полезно, если вы хотите лучше разобраться с
Flow 🤓👍2