We Love Android – Telegram
We Love Android
630 subscribers
259 photos
26 videos
4 files
630 links
Новости из мира Android-разработки
Download Telegram
Forwarded from Android Good Reads (Egor Tolstoy)
dependency-guard – плагин для контроля зависимостей

В большой команде периодически возникают проблемы с изменением версий или добавлением зависимостей. Можно случайно добавить в продакшн тестовую зависимость, или вызвать креш в рантайме из-за поднятой версии какой-то из транзитивных зависимостей. Gradle-плагин dependency-guard позволяет это контролировать.

Он генерирует файл, содержащий явный список всех транзитивных зависимостей и их версий, что дает возможность следить за изменениями на PR и составлять черные списки библиотек.
👍4
Forwarded from StartAndroid
Подробный разбор механизма "живучести" ViewModel

#android #jetpack #viewmodel

https://bowser-f.medium.com/how-viewmodel-works-under-the-hood-52a4f1ff64cf
👍3😁2😱2
Трендинговые репозитории GitHub за январь для языка Kotlin:

1. v2rayNG - клиент V2Ray для Android (+717)
2. ViMusic - стриминг музыки с YouTube Music (+709)
3. Now In Android - лучшие практики Android-разработки в новостном приложении Google (+671)
4. Tachiyomi - открытый ридер манга для Android (+539)
5. ChatGPT Android - чат с ИИ с использованием Stream Chat SDK для Compose (+442)
6. Сloudstream - стриминг и скачивание кино, сериалов и аниме (+410)
7. Seal -скачивание видео/аудио с YouTube (+385)
8. bv - приложение Android TV для Bilibili (+340)
9. Saikou - клиент Anilist с аниме и манга (+302)
10. BiliRoaming - клиент Bilibili с фишками и перками (+300)
11. Maestro - автоматизация тестирования UI (+258)
12. Matsuri - V2Ray/proxy toolchain для Android (+251)
13. Android Developer Roadmap - план развития Android-разработчика (+241)
14. Сompose JB - Compose Multiplatform от JetBrains (+232)
15. Balloon - всплывающие подсказки (+188)
16. Unciv - открытая «Цивилизация» (+186)
17. Ivy Wallet - приложение для управления деньгами с открытым исходным кодом (+163)
18. Anki Android - карточки для запоминания и повторения (+143)
19. Uhabits - открытое приложение для формирования привычек (+139)
20. Komga - медиасервер для комиксов и манга (+139)
21. Fenix - Firefox для Android (+116)
22. Sunflower - лучшие практики Android-разработки в приложении о растениях (+113)
23. Ktlint - линтер для Kotlin (+64)
24. TV bro - браузер, оптимизированный для ТВ (+55)
25. Purpur - сервер для Minecraft (+46)
🔥4😁2👍1
Forwarded from Записки разработчицы (Anna Zharkova)
Аркадий Иванов опубликовал твит о выпуске первой релизной версии своего Decompose - библиотеки для общего UI под KMM:
https://github.com/arkivanov/Decompose/releases/tag/1.0.0
Основные фичи:

Возможность переиспользовать и тестировать компоненты (RIBs-like)
Разделение UI и не-UI кода
Возможность подключать платформоспецифический UI
Собственный DI
Мультиплатформенность
Поддержка сохранения состояния (Android/JVM/Apple)
Используется Compose Android/JVM/iOS/macOS/Web

И еще type-safe мультиплатформенная навигация в KMM
👍1🔥1😱1
Forwarded from Mobile AppSec World (Yury Shabalin)
Атаки на клиентов с использованием WebView

Вообще статья называется "A View Into Web(View) Attacks in Android" и открывая ее, я ожидал увидеть информацию об атаках на WebView в приложениях и прочие интересные штуки, но оказалось это немного про другое.

В статье расписано, как некоторые зловреды использовали WebView, чтобы обмануть пользователя и украсть данные от банковских аккаунтов.

Все достаточно просто, пользователь загружает зловредное приложение и при его открытии внутри WebView загружается легитимный банковский сайт, но со зловредным JS-кодом, который отправляет данные пользователя на сервер злоумышленника. Подход очень простой и имеет ряд существенных преимуществ, не нужно самому имитировать интерфейс приложения, не нужны дополнительные разрешения у системы спрашивать.

Вообще, достаточно интересное чтиво, с примерами реальных зловредов и разбора их кода. Самое то почитать в пятницу 😄

#android #WebView #fishing
🔥4🤔3👍2
Несущиеся слоны: опыт Square в улучшении системы сборки для Android

Это не техническое глубокое погружение. Наоборот, это высокоуровневый обзор того, что мы сделали, почему мы это сделали, что мы получили в результате усилий и почему мы считаем, что наш подход можно обобщить.

• Покажите мне данные
• Путешествие начинается
• Шардинг CI: особое примечание
• Серебряные пули
• Постепенные улучшения, накопление выгоды
buildSrc мертв. Да здравствует build-logic!
Будьте ленивыми
Удалите скрипты
Устраните межпроектную конфигурацию
Тестируйте свою сборку
Используйте кэш конфигурации
• Путешествие продолжается
• Шаблоны решений: серебряные пули и постепенная выгода

Статья: https://apptractor.ru/sqgrdl
Платформа: Android
👍4🔥2😱1
Forwarded from Android Broadcast (Кирилл Розов)
На этой неделе стартанула новая серия MADSkills по модификаторам Compose

📺 Fundamentals of Compose Layouts and Modifiers - MAD Skills (12 мин)
📺 The Jetpack Compose Beginner Crash Course for 2023 (50 мин)
📺 Now In Android #76 (3 мин)
📺 Новости мобильной разработки от Android Broadcast (18 мин)

В комментариях делитесь видео по разработке, которые понравились вам и будут полезны другим

#подборкавидео
👍2🔥1🤔1
Forwarded from Mobile AppSec World (Yury Shabalin)
Обход детекта Frida на Android

Всем привет!
Для любителей видео-демонстраций, уроков и лекций, нашел видео-гайд по одному из способов обхода детекта Frida на Android.

Видео основано на анализе приложения R2Pay, которое как раз содержит детект на наличие root и frida-server на устройстве. При этом реализовано это все в нативе, так что полезно будет и тем, кто хотел посмотреть, как хукать нативные вызовы в .so файлах в Android.

Для тех, кто хочет почитать, есть подробный разбор аналогичного таска в текстовом представлении.

Изучаем, радуемся и проходим CTF =)

#CTF #Frida #Antifrida
👍3🤔2
Dashlane Android Apps - репозиторий с исходниками приложений для управления паролями Dashlane. Они общедоступны для проверки кода и и интересны для всех, кто хочет узнать больше о том, как работают приложения для Android.

Внутри монолит (который прямо сейчас модуляризируют), MVVM, Kotlin с Coroutine и Flow (есть легаси Java), Hilt, Jetpack Navigation, криптография OpenSSL и Argon2.

Dashlane Android Apps на GitHub: https://github.com/Dashlane/android-apps
Платформа: Android
⭐️: 97
🔥4👍1
Forwarded from Android Good Reads (Egor Tolstoy)
Совместимость библиотек и binary-compatibility-validator

В статье разбирается несколько типов совместимости, о которых должны думать авторы библиотек: backward/forward и source/binary compatibility. А для того, чтобы авторы библиотек случайно ломали binary совместимость, есть binary-compatibility-validator.
🤔2👍1🔥1
Forwarded from Android Live 🤖 (AdminBot)
​​JavaScriptSandbox
#android

Мало кто заметил (вероятно, потому что это довольно редкая штука), но Google работает над новой возможностью выполнять JS-код в Android.

Если у вас когда-то был опыт запуска JS-кода в Android-приложении, то вы должны знать о том, что для его запуска существует только одна возможность — использование инстанса WebView в фоне.

Это далеко не всегда удобно: нужно создавать дополнительные интерфейсы и функции для связи с JS, да и создавать инстанс WebView бывает накладно. Однако появляется новое решение — JavaScriptSandbox.

Вот пара преимуществ:
🎯 более низкое потребление ресурсов, так как не требуется создавать WebView;
🎯 можно запустить работу в Service, или WorkManager;
🎯 возможность выполнять несколько задач одновременно;
🎯 и передавать большие объёмы данных;

Я бы пока не рискнул тащить это в боевой проект, потому что JavanoscriptEngine ещё в начальной alpha-версии, но, надеюсь, Google и дальше продолжит развитие этой библиотеки. 🤓
👍4🔥32
Forwarded from Mobile Native ️️
Provider Pattern in Jetpack Compose

Неплохая статейка про
CompositionLocalProvider
в Jetpack Compose. Рассказывается что такое
CompositionLocalProvider
, как использовать и в каких случаях может быть полезен 👍

Читать (En)
👍3😱2🔥1
Forwarded from Android Broadcast (Кирилл Розов)
Вышла первая превью Android 14
👉 Новые ограничения для работы в фоне
👉 Оптимизация рассылки Broadcast-ов
👉 Обязательно запрашивать разрешение SCHEDULE_EXACT_ALARM для работы с AlarmManager.setExactAlarm
👉 Можно будет задавать размер текста вплоть до 200% благодаря нелинейному масштабированию
👉 Grammatical Inflection API
👉 Установка приложений с targetSdk ниже 23 будет невозможно
👉 Поддержка Passkeys
👉 Поддержка OpenJDK 17

Выход ожидается в конце лета - начале осени 2023. Позже буду здесь разбираться новые фичи в отдельных постах

#android14
😱3🤡3🔥2
Forwarded from Mobile AppSec World (Yury Shabalin)
Дамп и расшифровка трафика без использования Proxy

Все мы так или иначе сталкивались с необходимостью посмотреть трафик приложения и поисследовать его. Но всегда мешают всякие нехорошие безопасники, которые заставляют делать разработчиков SSL Pinning в приложении. И наиболее частый вопрос - как открутить пиннинг в приложении.

Как правило, это использование frida или аналогов, чтобы подмениить и отключить проверку сертификата в приложении. Но сделать это удается далеко не всегда и не со всеми приложениями.

Есть альтернативный вариант данному методу - это логировать SSL-ключи, которые используются для шифрования внутри канала связи, снимать дамп трафика и потом его расшифровывать этими ключами.

Спасибо огромное @vadim_a_yegorov за универсальный скрипт для Android и iOS (12/13/14/15), который помогает снимать и сохранять ключи!

Вот тут можно найти полный Frida-код этого прекрасного скрипта.

Спасибо, это очень круто!

#sslpinning #ssl #keys #dump
👍2🔥1😱1
Forwarded from Mobile Compose
#Article #Blog #OpenSource

Maps Compose Library Tutorial for Android: Getting Started

В феврале 2022 года Google выпустила библиотеку Maps Compose (набор composable функций с открытым исходным кодом для упрощения интеграции с Google Maps, а также различных типов данных, связанных с Maps SDK). О том, как работать с этой библиотекой на примере приложения GeoMarker — в сегодняшней статье.
👍3🔥21
Read You - открытый RSS-ридер для Android на Jetpack Compose и с Material You.

Read You на GitHub: https://github.com/Ashinch/ReadYou
Платформа: Android
⭐️: 1.8K
👍2🔥1
Forwarded from Android Good Reads (Egor Tolstoy)
Как Reddit переезжали на Anvil

Дано: приложение на 500 модулей, активно использующее Dagger 2 и кастомный kapt процессор для борьбы с циклическими зависимостями. Команде не нравилось, что их DI сетап слишком сложный, онбордить новых людей в него трудно, а использование kapt существенно замедляет сборку.

Чтобы решить эти проблемы, проект перевели на работу с Anvil. В статье – история миграции, результаты и советы тем, кто решит повторить их путь.
👍4🔥1😱1
Forwarded from Mobile Compose
#Featured #AndroidDevelopers #MADSkills #YouTube

[Eng] Constraints and modifier order

Очередной видеоролик про базовые практики в Compose из серии MAD Skills, в котором на этот раз разбирается как работает цепочка модификаторов (Modifiers) в Compose, а также почему так важен порядок их применения.
👍1🔥1
Forwarded from Рубанов про мобилу (Михаил Рубанов)
Про нейминг в коде

Арсений Мельников выпустил отличную статью про нейминг. Арсений занимается нашим публиным API у Dodo IS, круто что у него в этом такой системный подход.

https://habr.com/ru/company/dododev/blog/714512/
👍2🤔2