We Love Android
Open in Telegram
655
Subscribers
No data24 hours
+17 days
+2430 days
Posts Archive
Repost from Android Guards
Часто ли разработчики полностью переходят в информационную безопасность? Случается 😉 Набросал немного своих мыслей на этот счет и попытался показать альтернативный путь развития для уже состоявшихся разработчиков. Приятного чтения!
Repost from Android Good Reads
Konsist – линтер для архитектуры
Konsist – новый линтер с доступом к PSI, который позволяет писать довольно сложные архитектурные чеки, например:
👉Наличие определенных суффиксов или префиксов у классов, реализующих интерфейс.
👉Расположение классов в определенном пакете в зависимости от аннотации.
👉Ограничение доступа классам из определенного пакета к другим пакетам.
👉У всех конструкторов параметры отсортированы по алфавиту.
Repost from Разработка ждёт балета
Тут описывают ряд техник, которыми Android малварь защищалась от анализа. Самая красивая - использование нестандартного метода сжатия APK. Большинство тулов разобрать архив не могут, а API 28+ девайсы кушают и не жалуются.
#android #cybersec
Repost from Android Good Reads
Простота API задает его элегантность
На примере интерфейса
Provider, который активно используется в Dagger, автор показывает, как очень простое по своей сути архитектурное решение позволяет вынести управление жизненным циклом всех сущностей в детали имплементации.Repost 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)
Repost from iOS Good Reads – swift, разработка мобильных приложений, архитектура, блокчейн, VR, AR, карьера, IT
Как работает CPU
Огненная серия статей про то, как процессор запускает и исполняет программы.
👉Общая архитектура процессоров
👉Что такое Syscall
👉Как работают прерывания
👉Как ядро Linux загружает и запускает программы
👉Формат ELF (линуксовый аналог Mach-O)
👉Доступ к памяти с учетом пагинации
👉Форки процессов
Repost 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)
Repost from Android Guards
Если попалось приложение с библиотекой Navigation от Google, то можно очень быстро найти все диплинки, которые обрабатывает приложение. Для этого ищем по ключевому слову
<deepLink и получаем красивый список со всеми параметрами и типами данных. Но этот фокус работает только если навигация реализована в XML файлах. А так бывает не всегда, и некоторые особо увлеченные разработчики делают все в коде.
#ahtRepost from Android Live 🤖
Хендбук с алгоритмами
#algorithms
Тут на глаза попался отличный учебник от Яндекса по основам алгоритмов.
Если вы плаваете в этой теме — рекомендую пройти с самого начала. Беглый обзор показал, что объясняется весьма понятно, даже если вы совсем ничего не понимаете или пропускали этот предмет в вузе.
За основу взят этот ресурс, ну и плюс добавлена масса практических заданий и примеров. Сохраняйте в закладки, а лучше начинайте изучать сразу, чтобы проходить специфические собеседования без запинок. 🙃
Repost from Mobile Compose
#Video #Compose #Navigation
Декларативная архитектура и навигация с Decompose
Доклад c весеннего сезона Mobius 2023 от Алексея Панова, в котором он рассказывает про декларативную архитектуру и навигацию, а также на реальном примере показывает, как всё это интегрировать в проект с помощью библиотеки Decompose.
Repost from Android Security & Malware
ARTful: A library for dynamically modifying the Android Runtime
https://github.com/LaurieWired/ARTful
Repost from addmeto
Начиная со следующего релиза, Firefox для Андроида будет поддерживать почти все расширения десктопного Firefox. Это большое дело, я пользуюсь и андроидом, и айфоном, и главный плюс андроида для меня — Firefox. Если еще и все любимые расширения будут в нем, непонятно как удерживаться на айфоне, честно говоря.
https://blog.mozilla.org/addons/2023/08/10/prepare-your-firefox-desktop-extension-for-the-upcoming-android-release/
Repost from Mobile Compose
#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 компонентов
Зеркало статьи 👉 тут
Repost from Мобильное Чтиво
Compose 1.5 быстрее на 80%
Ну не то чтобы обещает быть быстрее в целом, а обещает что производительность модифайеров повысилась на 80%. Так и написали Modifiers see large performance improvements, up to 80% improvement to composition time, in this release.
Это точно очень крутое заявление и очень актуальное для нас сейчас.
Мы в Drinkit делаем один большой и сложный экран на Compose, который имеет проблему медленного открытия (особенно на холодную). Помимо загрузки рантайма (про это я писал отдельно), сам экран тоже влияет на время работы.
Т.к. модифайеры — это ключевой элемент компоуз виджетов и всё ими обмазано, то повышение их производительности это очень классный момент.
Мы скоро проверим это и я поделюсь результатами, помогло ли оно нам.
#compose
Repost from Mobile Compose
#News #Compose #Compiler
🆕🔥 Новости с полей: начиная с версии 1.5.0 Compose Compiler обеспечивает экспериментальную поддержку компилятора K2.
При этом, пока не весь функционал Compose поддерживается новой версией компилятора, часть будет добавлена позже в будущих версиях.
Надеюсь, скоро руки всё-таки дойдут до дайджеста, и там получится разобрать больше изменений последних релизов.
Repost from Mobile Native ️️
Оптимизация анимации на Compose: крутим лоадеры, ищем неочевидные функции
Статья с разбором анимаций в Compose. Особенности анимаций, рекомпозиция, Canvas, в чём разница между группами анимаций Composable и Suspend, ну и всё это с примерами.
Читать (Ru)
Repost 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)
А по ссылке можно найти чуть более экзотические варианты, которые подойдут для более сложных случаев.
#ahtRepost from Android Security & Malware
How to attack (and secure) an Android app: An introduction
Presentation: https://www.droidcon.com/2023/07/31/how-to-attack-and-secure-an-android-app-an-introduction/
CTF apk: https://github.com/badolphi/droidcon-berlin
Slides: https://github.com/badolphi/droidcon-berlin/blob/main/Presentation.pdf
Repost from Dev Easy Notes
У меня есть друг с которым мы в былые времена, когда были начинающими мидлами горели тем, чтобы сделать какой-нибудь крутой pet или open source проект. Как и подобает мидлам мы страдали страшным перфекционизмом касательно автоматизаций. Сейчас вспоминать это смешно, но тогда это казалось невероятно важным.
Для примера, перед разработкой проекта мы тратили дичайше много времени, чтобы настроить плагин, который автоматически будет отгружать релизную сборку в maven central, далее настроили линтер, но почему-то сложным путем через создание собственного плагина, эээх молодеж... Затем настроили CI для сборки и прогона тестов, затем сделали даже автоматическую проверку на то, действительно ли либа корректно отправилась в maven. Очухались только когда кореш предложил и таски в трелло автоматически двигать после мержа...
Весь прикол заключается в том, что обычно на этом этапе проект и заканчивался. Мы могли побаловаться этими автоматизациями, сделать какой-то минимальный функционал и на этом все.
Автоматизации, хорошо настроенный CI, линтер, тесты, код ревью это очень хорошо и круто, но только на рабочих проектах, где тебе платят зарплату. На проектах, где это действительно нужно, ведь там куча людей, коммуникаций и цена ошибки выше.
Когда вас пара человек или ты вообще один(одна) то вообще не нужно запариваться на этот счет. По одной просто причине, топливо для pet проекта дичайше ограничено и его нужно растратить очень грамотно. Если не успел потратить грамотно выгоришь и проиграешь, суровая правда жизни. В самом начале проекта все что нужно это доехать до первой заправке аналогом которой будут реальные пользователи, деньги или присоединение других разрабов. Только после первой заправки можно думать про автоматизации.
Как я делаю сейчас при подобной разрабоке, которой к слову очень мало сейчас у меня. Я кладу болт на всю автоматизацию, делаю самый минимум насколько это возможно: CI – только сборка на МР, все остальное лесом, автоматическая отправка в Maven – либо руками, либо с готовым плагином без кастомной разрабоки, тесты – смотри мой пост про тесты выше, код ревью – только самый минимум по архитектуре. Даже несмотря на это далеко не всегда хватает энергии, чего уж говорить про автоматизации выше.
Repost from Mobile Compose
#Article #Medium #Compose
Jetpack Compose — The order of modifiers does matter
Статья посвящена такой важной теме при знакомстве с Jetpack Compose, как порядок модификаторов.
