We Love Android – Telegram
We Love Android
632 subscribers
259 photos
26 videos
4 files
630 links
Новости из мира Android-разработки
Download Telegram
Forwarded from Android Good Reads (Egor Tolstoy)
Open-Obfuscator – новый обфускатор мобильных приложений

- Автор проекта увлекался поиском уязвимостей в существующих обфускаторах, но ему не были рады. Поэтому он решил написать свой, с упором на открытость к разработчикам и рисерчерам. Даже для первого релиза большую часть времени разработки автор вложил в понятную документацию.
- Open-Obfuscator поддерживает обфускацию нативного кода с помощью специального LLVM плагина, и обфускацию Kotlin/Java кода поверх ядра Proguard.
- Нативный обфускатор называется O-MVLL, обфускатор для Kotlin – dProtect.
🔥4
Forwarded from Локалхост (Никита Куликов) (Nikita Kulikov)
Как неявная кодогенерация съела несколько часов в моей жизни

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

Спустя множество потраченных часов просмотра логов и кода я поменял стратегию - решил посмотреть генерируемый код. Для этого я взял собранное приложение и декомпилировал его с помощью JADX. И там я увидел что вместо моей красивой строки следующее: LiveLiterals$FirmwareVersionBuilderApiImplKt.INSTANCE.m9856xc5cc7c0e(). Сама строка в коде выглядит так: " ".

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

Оказалось все это время у меня крашился внутренний механизм LiveLiterals. AndroidStudio самостоятельно подменяет все константы в коде на LiveLiterals. Это сделано чтобы можно было менять константы в коде без пересборки приложения. Удивительно сколько всего себе позволяет текстовый редактор
🤯5🤔3
Forwarded from Android Broadcast (Кирилл Розов)
198839537-2794bac0-8075-470b-9c4d-aea9bc9d719c-Up to 4K.mov
24.4 MB
compose-animation-playground - репо с подборкой реализации разных анимаций на Jetpack Compose

#aniamtion #compose
👍2
Forwarded from Mobile Developer (Алексей Гладков)
Как Котлин собирается сделать вам хорошо в 2023

https://blog.jetbrains.com/kotlin/2022/11/how-kotlin-is-going-to-fix-your-pains-in-2023/?utm_source=dailykotlin_tl

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

Приятного чтения!
👍3
Forwarded from Android Guards
Давайте поговорим про исследование приложений на ReactNative? Чтобы задать тон дискуссии я написал небольшую заметку о моих подходах к вопросу и буду рад послушать про ваш опыт. Как положительный так и отрицательный.
👍4
Forwarded from Android Good Reads (Egor Tolstoy)
Multiplatform Paging

- Логика пагинации – идеальный кандидат для того, чтобы шарить между платформами.
- CashApp выпустили библиотеку Multiplatform Paging, полный аналог библиотеки из AndroidX, но с поддержкой мультиплатформы.
👍3🔥1
Forwarded from Android Good Reads (Egor Tolstoy)
Гайд по разработке библиотек

Большой набор рекомендаций по всем фазам жизненного цикла библиотеки: дизайну, разработке, релизу и поддержке. Вот некоторые из них:

👀 Используйте режим Explicit API для того, чтобы контролировать видимость ваших функций пользователям библиотеки.
Binary Compatibility Validator позволяет следить за обратной совместимостью.
🌠 Настройте работу с ресурсами, добавив им префиксы с именем библиотеки и отключив транзитивность для R class.
👍4
Forwarded from Android Broadcast (Кирилл Розов)
Combo Breaker - библиотека для Compose, которая позволяет огибать текстом элементы UI. например, сделать текст колонками как в газете/журнале.

#compose
👍4
Forwarded from Kotlin Multiplatform Broadcast (Кирилл Розов)
Kotlin Coroutines use cases for Data/Adapters Layer

Использование корутин в Data слое: адаптеры для callback подходов, библиотеки с поддержкой из коробки и блокирующие функции. Ну и как же без Flow

#ocorutines
👍4🤔1
Forwarded from Mobile Compose (Jetpack Compose Bot)
#Article #Medium #Animations

Making Jellyfish move in Compose: Animating ImageVectors and applying AGSL RenderEffects

Любопытная статья, в которой автор показывает как можно создать нетривиальную анимацию медузы (!!!), по пути охватывая такие темы как:
▫️Создание кастомных ImageVectors из SVG
▫️Частичная анимация ImageVector
▫️Применение эффекта шума к Composable при помощи AGSL RenderEffect
👍3
Forwarded from Android Good Reads (Egor Tolstoy)
Обновилась документация по управлению памятью

Google обновили документацию про то, как в Android организован memory management. Из интересного – рекомендации по тестированию работы приложений в условиях ограниченной памяти, в том числе с помощью использования Stressful Application Test.
👍3
Forwarded from Mobile Native ️️
Android App Starter Template

Еще один проект-шаблон, который может стать отправной точкой для новых проектов с использованием best practices разработки и чистой архитектурой. Это интерпретация и адаптация официальных рекомендаций по архитектуре от Google.

👉 Modularization
👉 Gradle Version Catalog
👉 Ktor
👉 Coroutines
👉 Jetpack Compose
👉 Hilt
👉 DataStore
👉 Testing

Код на GitHub → Android App Starter Template
👍5🤔2👎1🔥1
Forwarded from Kotlin Multiplatform Broadcast (Кирилл Розов)
Кодогенерация (а значит kapt) - это уже неотъемлемая часть современных Android проектов. Мы знаем что это медленно и затратно по ресурсам.

Вопрос "как глубоко днище потребления ресурсов kapt-ом" раскрывается в статье. На примере проекта автора - чуть меньше половины времени всей сборки - это генерация кода.

Молимся на Kotlin Symbol Processing (KSP)
👍3
Когда то я написал пост про то что DI фреймворки не решают проблемы, а заменяют их новыми. На что многие мне ответили “а как же так? ты что, пишешь зависимости рУкАмИ? Ты что, Dagger пишет код за меня!”. Ну что ж, давайте я в новом посте покажу тебе, мой сомневающийся в силе фабрик читатель, как при помощи by-делегации в Kotlin можно писать кода не больше чем при использовании Dagger. Привет ребятам с Podlodka Android Crew, которые забайтили меня на это
👍6
Forwarded from addmeto (Grigory Bakunov)
В мире андроида невероятная утечка — утекло несколько сертификатов, принадлежащих разработчикам нескольких аппаратных платформ (один из ключей точно Mediatek, еще один — Samsung). Как это произошло — непонятно, пока гугл не раскрывает причин, но подписав приложение таким сертификатом, злоумышленник может “представиться” системе другим приложением и как следствие получить доступ к файлам приложения, а также выполнить действия, которые разрешены этой программе. Т.е., например, я могу прикинуться приложением карт, предустановленным в вашем телефоне, и получать данные о вашем перемещении или приложением “галерея” и иметь полный доступ к вашим фоткам.

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

https://bugs.chromium.org/p/apvi/issues/detail?id=100
😢5👍2😱2
Forwarded from Android Broadcast (Кирилл Розов)
Jetpack Compose — When should I use derivedStateOf?

Разбор применения derivedStateOf в Compose - функции, которая предназначена когда ваше состояние или ключ меняются чаще чем надо обновлять UI

#compose
👍3
Forwarded from Android Broadcast (Кирилл Розов)
Как цветовая схема приложения может меняться в зависимости от контента

red_mad_robot делятся опытом работы с content-based color schemes. Это когда цвет вашего приложения меняется в зависимости не от системных цветов, а от контента внутри него. Ребята поверх всего это сделали свое решение (исходники тут) и делятся им.

#android12 #material
👍5
Circuit — это простая, легкая и расширяемая платформа от Slack для создания приложений Kotlin, основанных на Compose.

Circuit на GitHub: https://github.com/slackhq/circuit
Описание: https://slackhq.github.io/circuit/
Платформа: Android
⭐️: 376
👍3