We Love Android – Telegram
We Love Android
631 subscribers
259 photos
26 videos
4 files
630 links
Новости из мира Android-разработки
Download Telegram
Forwarded from Android Guards
SQL инъекции в Android приложениях можно встретить не часто. Причин тому много. Разработчики поумнели, Google со своим Room-ом подтянулся. Так недолго и забыть как инъекции вообще эксплуатируются. Вот пара типичных пейлоадов для ContentProvider-ов:
💉 * from sqlite_master where type='table'-- (для projection)
💉 1=1) union select name,2,3,4,5,6,7 from sqlite_master where type='table'-- (для selection/where)
А по ссылке можно найти чуть более экзотические варианты, которые подойдут для более сложных случаев.
#aht
👍2🔥2👨‍💻2
Forwarded from Mobile Native ️️
Оптимизация анимации на Compose: крутим лоадеры, ищем неочевидные функции

Статья с разбором анимаций в Compose. Особенности анимаций, рекомпозиция, Canvas, в чём разница между группами анимаций Composable и Suspend, ну и всё это с примерами.

Читать (Ru)
🫡2🤪2😁1😱1
Forwarded from Mobile Compose
​​#News #Compose #Compiler

🆕🔥 Новости с полей: начиная с версии 1.5.0 Compose Compiler обеспечивает экспериментальную поддержку компилятора K2.
При этом, пока не весь функционал Compose поддерживается новой версией компилятора, часть будет добавлена позже в будущих версиях.

Надеюсь, скоро руки всё-таки дойдут до дайджеста, и там получится разобрать больше изменений последних релизов.
👍2🔥2
Compose 1.5 быстрее на 80%

Ну не то чтобы обещает быть быстрее в целом, а обещает что производительность модифайеров повысилась на 80%. Так и написали Modifiers see large performance improvements, up to 80% improvement to composition time, in this release.
Это точно очень крутое заявление и очень актуальное для нас сейчас.

Мы в Drinkit делаем один большой и сложный экран на Compose, который имеет проблему медленного открытия (особенно на холодную). Помимо загрузки рантайма (про это я писал отдельно), сам экран тоже влияет на время работы.

Т.к. модифайеры — это ключевой элемент компоуз виджетов и всё ими обмазано, то повышение их производительности это очень классный момент.

Мы скоро проверим это и я поделюсь результатами, помогло ли оно нам.

#compose
👍6🔥3🤔3
Forwarded from Mobile Compose (Jetpack Compose Bot)
​​#Article #Medium #Compose

A Developer’s Approach to Identifying Jetpack Compose Usage in Apps

🗣 Отвлечемся от всех этих релизов...
Тут человек обнаружил способ определять какой UI фреймворк использует приложение без изучения его кода. Для этого нужен всего-лишь старый советский ... тоггл "Show layout bounds" из раздела Developer Options устройства.

Если вкратце:
▫️Android Views, React Native, и даже Compose внутри ComposeView — отмечаются синим цветов по углам
▫️Jetpack Compose — никаких синих углов, но обводка всё еще сохраняется
▫️Flutter — вообще никаких обводок ui компонентов

Зеркало статьи 👉 тут
👍2🔥2👏2🤔1
Forwarded from addmeto (Grigory Bakunov)
Начиная со следующего релиза, Firefox для Андроида будет поддерживать почти все расширения десктопного Firefox. Это большое дело, я пользуюсь и андроидом, и айфоном, и главный плюс андроида для меня — Firefox. Если еще и все любимые расширения будут в нем, непонятно как удерживаться на айфоне, честно говоря.

https://blog.mozilla.org/addons/2023/08/10/prepare-your-firefox-desktop-extension-for-the-upcoming-android-release/
👍4🔥2
Forwarded from Android Live 🤖
Хендбук с алгоритмами
#algorithms

Тут на глаза попался отличный учебник от Яндекса по основам алгоритмов.
Если вы плаваете в этой теме — рекомендую пройти с самого начала. Беглый обзор показал, что объясняется весьма понятно, даже если вы совсем ничего не понимаете или пропускали этот предмет в вузе.

За основу взят этот ресурс, ну и плюс добавлена масса практических заданий и примеров. Сохраняйте в закладки, а лучше начинайте изучать сразу, чтобы проходить специфические собеседования без запинок. 🙃
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4🔥2
Forwarded from Android Guards
Если попалось приложение с библиотекой Navigation от Google, то можно очень быстро найти все диплинки, которые обрабатывает приложение. Для этого ищем по ключевому слову <deepLink и получаем красивый список со всеми параметрами и типами данных. Но этот фокус работает только если навигация реализована в XML файлах. А так бывает не всегда, и некоторые особо увлеченные разработчики делают все в коде.
#aht
👍3🔥2
Forwarded from Mobile Native ️️
Unleashing Creativity with Custom Modifiers in Android Jetpack Compose

Статья про кастомные модификаторы Jetpack Compose.

Как, зачем и почему + несколько примеров, которые могут пригодиться в реальных проектах.

👉 Understanding Custom Modifiers
👉 Creating Custom Modifiers
👉 Real World Examples and Use Cases

Читать (En)
👍3🔥2
Как работает CPU

Огненная серия статей про то, как процессор запускает и исполняет программы.

👉Общая архитектура процессоров
👉Что такое Syscall
👉Как работают прерывания
👉Как ядро Linux загружает и запускает программы
👉Формат ELF (линуксовый аналог Mach-O)
👉Доступ к памяти с учетом пагинации
👉Форки процессов
3👍3🔥2
Forwarded from Mobile Native ️️
Best practices for error handling in Kotlin

Статья с обзором различных способов обработки ошибок в Kotlin.

👉 Exceptions in Coroutines
👉 Uses of Sealed Classes for Error Handling
👉 Functional Error Handling
👉 Uncaught Exception Handlers
👉 Handling Network Errors with Retrofit
👉 Graceful Error Handling with Coroutines
👉 Error Handling with RXJava

Читать (En)
👍3
Forwarded from Android Good Reads (Egor Tolstoy)
Простота API задает его элегантность

На примере интерфейса Provider, который активно используется в Dagger, автор показывает, как очень простое по своей сути архитектурное решение позволяет вынести управление жизненным циклом всех сущностей в детали имплементации.
👍3🔥21
Тут описывают ряд техник, которыми Android малварь защищалась от анализа. Самая красивая - использование нестандартного метода сжатия APK. Большинство тулов разобрать архив не могут, а API 28+ девайсы кушают и не жалуются.

#android #cybersec
👍3🔥1😱1
Forwarded from Android Good Reads (Egor Tolstoy)
Konsist – линтер для архитектуры

Konsist – новый линтер с доступом к PSI, который позволяет писать довольно сложные архитектурные чеки, например:

👉Наличие определенных суффиксов или префиксов у классов, реализующих интерфейс.
👉Расположение классов в определенном пакете в зависимости от аннотации.
👉Ограничение доступа классам из определенного пакета к другим пакетам.
👉У всех конструкторов параметры отсортированы по алфавиту.
👍4🔥2🤔1
Forwarded from Android Guards
Часто ли разработчики полностью переходят в информационную безопасность? Случается 😉 Набросал немного своих мыслей на этот счет и попытался показать альтернативный путь развития для уже состоявшихся разработчиков. Приятного чтения!
👍3👨‍💻3🔥2
Forwarded from По-явански
Пару слов про зерокодинг и ни одной шутки про зерозарплатинг

Да, из готовых компонентов можно собрать сайт, приложение или круд. Оно даже будет работать. Я смотрю на это просто как на программирование на более высоком уровне.

Что здесь примечательно для нас, разработчиков? А то, что компоненты «среднего» уровня написаны такими же программистами. И если менеджер мышкой натыкивает приложение быстрее, чем профессиональный разработчик, то у нас, коллеги, наблюдается проблема с job security качеством и доступностью компонентов. Если OAuth из конструктора интегрируется быстрее и работает лучше, чем решение с гитхаба, значит, мы залайкали не тот репозиторий, автор его недодокументировал или вообще бросил на полпути. Если нам данные приходят по одной схеме, и мы, чтобы трансформировать их в другую, удобную нам, выражаем обе через ДТОшки и пишем маппер между ними, значит, библиотека, которой мы намазываем данные на классы, не решает нашу задачу. Если прокладка для работы с БД заставляет нас… ну и так далее.

Зерокодинг никогда не станет мощнее и гибче, чем «настоящее» программирование. А наша задача — делать так, чтобы последнее не отставало по скорости и качеству. Хочу надеяться, что конкуренция со стороны зерокодинга поспособствует повышению качества нашего родного программирования.
👍7🔥1🤔1
Forwarded from Mobile Developer (Алексей Гладков)
Рефакторинг многомодульного проекта с Konsist [EN]
https://proandroiddev.com/refactoring-multi-module-kotlin-project-with-konsist-f0de0de59a3d

Konsist наделал шуму, а тут уже подъехал и реальный пример, как его использовать в проекте

👉 Как унифицировать имена usecase
👉 Проверить, что usecase имеет только один публичный метод
👉 Как это все настраивать для многомодульности

Приятного чтения