en
Feedback
We Love Android

We Love Android

Open in Telegram

Новости из мира Android-разработки

Show more
655
Subscribers
No data24 hours
+17 days
+2430 days
Posts Archive
IDEA: как не потерять важные места в коде В огромном проекте всегда есть места, которые хочется отметить или быстро находить. Раньше это делали так: 🔴 Ставили неактивный брейкпойнт в нужном месте. В принципе нормально, но иногда сложно вспомнить, что где находится ⭐️ Добавляли файл в favorites. Файл добавляется целиком, что не очень удобно Затем в IDEA убрали favorites и добавили закладки. Супер удобно, ни одна важная строчка теперь не потеряется. ▫️ Курсор на нужной строке → F11 → появляется закладка ▫️ Правый щёлк по закладке → Rename bookmark… → ввести что-то осмысленное ▫️ Посмотреть закладки: View → Tool Windows → Bookmarks

Lighten MVI architecture: Delegate responsibilities to new components Интересная статья про то, как можно упростить и не пере
Lighten MVI architecture: Delegate responsibilities to new components Интересная статья про то, как можно упростить и не перенагружать ViewModel, за счет делегирования логики другим компонентам(Processor, Reducer) в контексте MVI паттерна. Код на GitHub → Contact book Android app Читать (En)

Repost from Why Android? 🌚
Получил доступ к Remote Device Streaming от Google 🌚 Работает в Android Studio Iguana (Canary) Чтобы включить надо в Help >
+3
Получил доступ к Remote Device Streaming от Google 🌚 Работает в Android Studio Iguana (Canary) Чтобы включить надо в Help > Edit Custom Properties добавить firebasetestlab.direct.access = true Потом залогиниться в студии и выбрать Firebase проект, куда вам дали доступ. И так: 🌶 работает довольно шустро. Доступные девайсы: Pixel 7, Pixel Fold, Pixel Tablet, Pixel Watch. Обещали Pixel 8, но похоже его быстро разобрали 🌚 🌶 на ремоут девайс приложение устанавливается как на обычный телефон 🌶 сами девайсы находятся недалеко от Вашингтона 😁

Working solution on how to inject system CA certificates in Android 14 https://httptoolkit.com/blog/android-14-install-system-ca-certificate/

Tiling — это реализация пагинации на основе состояния, которая представляет выгружаемый набор данных в виде простого списка. Он обеспечивает постоянный доступ к элементам по индексам в режиме реального времени и возможность самоанализа элементов, просматриваемых по страницам. Tiller доступен в mavenCentral: implementation com.tunjid.tiler:tiler:version Читать статью #гайд

Сегодня релиз Java 21🥳 Главные фичи новой версии: 🔸 Виртуальные потоки В чём суть: для многих задач производительность ограничивается количеством потоков в ОС. Чтобы обойти это ограничение и использовать потоки на максимум, придумали множество способов — асинхронные библиотеки, реактивное программирование и тд. Вариант рабочий, но код усложняется. Виртуальные потоки позволяют писать простой код и не упираться в ограничения ОС. Ближайший аналог виртуальных потоков — горутины в Go. Собственно, горутины — основная причина, почему многие сервисы написаны на Go. Более дальний аналог — корутины в Kotlin. Они имитируют виртуальные потоки на уровне библиотеки и несут большие накладные расходы. В java виртуальные потоки реализованы на уровне JVM, поэтому их производительность гораздо выше. В теории виртуальные потоки принесут пользу большинству приложений. Посмотрим, что будет на практике. 🔸 Pattern matching В этих постах (один, два) я подробно расписала, зачем нужен pattern matching в целом, и как он реализован в java. Вкратце: нужен не всем, реализация в джаве так себе 🔸 Sequenced collections Новые методы в коллекциях: getFirst(), getLast(), reversed() и другие. Подробный пост тут Интересные preview фичи: 🔹 String templates — интерполяция строк, возможность писать
String str = "Hello, ${name}!";

Подробнее в этом посте 🔹 Scoped Values — аналог ThreadLocal c ограниченной областью действия 🔹 Structured Concurrency — способ организации подзадач в многопоточной среде Остальные фичи очень специфичные и вряд ли пригодятся большинству разработчиков: ▫️ Generational ZGC — в сборщик добавили поколения, как следует из названия. Молодые объекты будут собираться чаще, и сборщик будет работать эффективнее ▫️ Record Patterns — records можно использовать внутри case ▫️ Foreign Function & Memory API (Third Preview) — методы для работы с нативным кодом и управлению памятью за пределами JVM. Это нужно для приложений, которые хотят сами управлять размещением объектов в памяти и не зависеть от сборщика мусора. ▫️ Unnamed Patterns and Variables (Preview) — можно не указывать имя переменной, если оно не нужно. Вместо него ставить _ Например, в case:
case Point(int x, _) → …

Или при ловле исключения:
catch (IllegalStateException _)

Было бы удобно сделать такое для лямбд, но для этого есть отдельный JEP, который сделают чёрт знает когда ▫️ Deprecate the Windows 32-bit x86 Port for Removal — перестать работать с Windows 32-bit x86, в будущем удалить ▫️ Prepare to Disallow the Dynamic Loading of Agents Агент — компонент, который изменяет классы при загрузке или меняет уже загруженные классы в JVM. Используется для мониторинга, профайлинга и других служебных целей ▫️ Key Encapsulation Mechanism API — методы для защиты ключей симметричного шифрования ▫️ Unnamed Classes and Instance Main Methods (Preview) Видимо чтобы короче писать Hello World: class HelloWorld { void main() { System.out.println("Hello, World!"); } } Вот такой релиз. Конечно, самая ожидаемая фича — это виртуальные потоки. Если планируете в ближайшее время внедрять их, отпишитесь по впечатлениям, мне очень интересно😊

Repost from Mobile Developer
Внутренности ANR [EN] https://blog.p-y.wtf/anr-internals-touch-dispatching-through-the-view-hierarchy Как же я люблю такие статьи, где не просто поверхностно прошлись, а прям объяснили как это работает 👉 Как устроен механизм touch dispatch 👉 Сравнение механизмов View и Compose 👉 Как это все связано с ANR

Пишем Android-приложение практически полностью в NDK Привет любителям прятать строки в .so файлах, что бы их сложнее было найти! Тут есть крайне занятный пример, как практически полностью написать приложение, используя NDK для того, чтобы усложнить анализ такого приложения, помешать захукать системные вызовы и прочие приколы. На самом деле, что-то в этом есть, особенно мне понравилась часть про вызов Binder напрямую из нативного кода через reflection, и вызов соответствующих сервисов далее: class.forName("android.os.ServiceManager").getMethod("getService", String.class); Это тебе уже не просто ключ шифрования в сошку положить, тут поинтереснее. Доклад интересен глубиной погружения и способом подачи, то есть после того, как разбирается очередной пример "скрытия" чего-либо, идет небольшой блок демо, как это выглядит в коде, как переписать привычные нам действия с Java на натив. Ну и в конце пара выводов, как еще можно усилить подобное, да и надо ли оно такое вообще? В общем спорная штука, как доклад вполне, как перенос части вещей для усложнения тоже может быть интересно (ну и защититься немного от перехвата штатными скриптами тоже прикольно в ряде случаев). В общем, весьма смешанные чувства после просмотра =) #android #ndk #obfuscation

Intro to Polymorphism with Kotlinx.Serialization Статья с примером, как заложить структуру данных для полиморфных типов с исп
Intro to Polymorphism with Kotlinx.Serialization Статья с примером, как заложить структуру данных для полиморфных типов с использованием Kotlinx.Serialization. Читать (En)

Что нового в Kotlin 1.9 📱 JetBrains продолжает развивать Kotlin, и сегодня мы подробнее рассмотрим обновления в самом языке.
+9
Что нового в Kotlin 1.9 📱 JetBrains продолжает развивать Kotlin, и сегодня мы подробнее рассмотрим обновления в самом языке. Листай карточки и задавай вопросы по изменениям в комментариях ⬆️ #экспертный

Тут в блоге http toolkit хороший разбор того, что происходит с TLS сертификатами в Android 14. Пока всё выглядит так, что сво
Тут в блоге http toolkit хороший разбор того, что происходит с TLS сертификатами в Android 14. Пока всё выглядит так, что свои подсунуть больше не выйдет. Но может ещё найдётся решение. #certificate #network #tls

Repost from Android Live 🤖
SDK Upgrade Assistant #android Оказывается, пару месяцев назад появилась утилита, которая помогает быстро обновить targetSdkV
SDK Upgrade Assistant #android Оказывается, пару месяцев назад появилась утилита, которая помогает быстро обновить targetSdkVersion в проекте. Правда, нет свежего 34 SDK (но вручную уже можно обновиться), уверен, что со временем и он там появится. Для использования надо выбрать Tools > Android SDK Upgrade Assistant, и Google советует обновлять по 1 уровню за раз. Больше деталей можно почитать тут.

Repost from Mobile Compose
#Article #Medium #Compose Unleashing Compose on the Terminal: Building Pikslate Чуть более 2 лет назад небезызвестный Jake Wharton представил Mosaic — библиотеку для создания консольных интерфейсов поверх Compose compiler/runtime. Автор сегодняшней статьи пошел дальше, и при помощи Mosaic сделал Pikslate — софт для рендера картинок и видео в терминале (да, это кому-то необходимо). Зеркало статьи 👉 тут

Exploring Canvas in Jetpack Compose — Crafting Graphics, Animations, and Game Experiences Неплохая статья с примерами про раб
Exploring Canvas in Jetpack Compose — Crafting Graphics, Animations, and Game Experiences Неплохая статья с примерами про работу с Canvas в Jetpack Compose. 👉 Getting Started with Canvas 👉 Drawing Shapes and Paths 👉 Custom Data Visualizations 👉 Animating with Canvas 👉 Advanced Techniques — Particles and Effects 👉 Performance Considerations 👉 Near to Real World Example Читать (En)

Repost from Android Broadcast
📺 Что нового в Android 14 для разработчиков (35 мин) Свежая версия Android уже вышла, а я собрал все самые важные изменения для разработчиков и менеджеров продуктов ❗ Часть изменений повлияет на все приложения, независимо от targetSdk01:01 Predictive Back Gesture 02:20 Ограничение на установку старых приложений 04:26 Обновление локализации 05:43 Нелинейное масштабирование размера текста 07:51 ShareSheet 09:32 AlarmManager 10:31 Foreground Service 15:06 Intent 16:13 BroadcastReciever 17:26 JobScheduler 19:54 Частичный доступ к медиа 22:37 PackageManager 25:36 Обнаружение скриншотов 26:46 Уведомления 28:14 Data Safety в системе 29:47 Унификация работы Foreground Service 30:29 Другие изменения 34:35 Заключение #AndroidBroadcast #разбор

Repost from Compose Broadcast
Нашел playground где можно поиграться с Compose Modifier и посмотреть как они и их порядок влияют на финальный UI
Нашел playground где можно поиграться с Compose Modifier и посмотреть как они и их порядок влияют на финальный UI

Большая подборка книг, курсов и статей по безопасности мобильных приложений На день знаний не успел выложить, но хоть на 3-е сентября будет 😄 Собрал воедино все книги, которые у меня были и что мне присылали, гайды и курсы по анализу и безопасности мобильных приложений! Что получилось в итоге: Android Books Android Application Pentest Guide (AAPG) Android Forensics Android binder Android Task Hijacking Android Hacker's Handbook Android Malware and Analysis Android Apps Security Android Security Attacks and Defenses Android Security Internals Application Security for the Android Platform Android Application Secure Design/Secure Coding Guidebook Decompiling Android Deep Dive into Android Binder IPC DEF CON 24 Workshop Dinesh Shetty Practical Android Application Embedded Android Kotlin secure coding practices Learning Android Forensics Hacking Android XDAs Android Hackers Toolkit Xaker-254 Яндекс - как общаются Android приложения Broken Fingers - On the Usage of the Fingerprint API in Android What can you do to an apk without its private key except repacking WhatsApp Forensics: Decryption of Encrypted WhatsApp Databases Huawei Mate 9 Pro (LON AL00) PWN2OWN Android Internals - A Confectioner's Cookbook (Volume I) Android Courses Android Part - Mobile Application Security and Penetration Testing v2 AndroidHackingCourse Penetration Testing Apps for Android Devices iOS Books Apple Security Sandbox iOS App Reverse Engineering IOS FORENSICS COOKBOOK IOS Hackers Handbook Mac OS X and iOS Internals (1-е издание) Mobile App Hackers Handbook Hacking and Securing IOS Applications Recreating an iOS 0day Jailbreak Out of Apple’s Security Updates Revisiting iOS Kernel (In)Security: Attacking the early random() PRNG Demystifying The Secure Enclave Processor iOS Courses iOS Part - Mobile Application Security and Penetration Testing v2 Книги включающие в себя и Android и iOS либо нечто общее про безопасность мобилок MASTERING MOBILE FORENSICS Mobile App Hackers Handbook MOBILE FORENSICS ADVANCED INVESTIGATIVE STRATEGIES DSEC - Анализ безопасности мобильных банковских приложений DSEC - Анализ безопасности мобильных банковских приложений 2012 DSEC - SCADA и мобильники - оценка безопасности приложений, превращающих смартфон в пульт управления заводом Secure mobile development best practices OWASP Mobile App Security Checklist OWASP Mobile AppSec Verification Standard RU OWASP mobile security testing guide Брюс Шнайдер - прикладная криптография :D Смешанные курсы Mobile Application Security and Penetration Testing v1 Все материалы доступны по ссылке. Можно как скачать отдельные материалы, так и все сразу. По мере нахождения новых интересных материалов - буду обновлять и дополнять "библиотеку" 🤓 #Books #Education #Android #iOS

Repost from Mobile Developer
Рефакторинг многомодульного проекта с Konsist [EN] https://proandroiddev.com/refactoring-multi-module-kotlin-project-with-konsist-f0de0de59a3d Konsist наделал шуму, а тут уже подъехал и реальный пример, как его использовать в проекте 👉 Как унифицировать имена usecase 👉 Проверить, что usecase имеет только один публичный метод 👉 Как это все настраивать для многомодульности Приятного чтения

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

Repost from Mobile Compose
#Habr #Article #Compose Использование Compose для ТВ-версии приложения Иви: мощный фреймворк для создания эффективных Android-приложений Крутой кейс от разработчиков из Иви, в котором они делятся опытом интеграции Compose в их приложение на Android TV.