We Love Android – Telegram
We Love Android
630 subscribers
259 photos
26 videos
4 files
630 links
Новости из мира Android-разработки
Download Telegram
Forwarded from Android Broadcast (Кирилл Розов)
Media is too big
VIEW IN TELEGRAM
📺 Что нового в Android 14 для разработчиков (35 мин)

Свежая версия Android уже вышла, а я собрал все самые важные изменения для разработчиков и менеджеров продуктов

Часть изменений повлияет на все приложения, независимо от targetSdk

01: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 #разбор
👍1🔥1🤓1
Forwarded from Mobile Native ️️
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)
4👍1
Forwarded from Mobile Compose
#Article #Medium #Compose

Unleashing Compose on the Terminal: Building Pikslate

Чуть более 2 лет назад небезызвестный Jake Wharton представил Mosaic — библиотеку для создания консольных интерфейсов поверх Compose compiler/runtime.
Автор сегодняшней статьи пошел дальше, и при помощи Mosaic сделал Pikslate — софт для рендера картинок и видео в терминале (да, это кому-то необходимо).

Зеркало статьи 👉 тут
Forwarded from Android Live 🤖
SDK Upgrade Assistant
#android

Оказывается, пару месяцев назад появилась утилита, которая помогает быстро обновить targetSdkVersion в проекте.

Правда, нет свежего 34 SDK (но вручную уже можно обновиться), уверен, что со временем и он там появится.
Для использования надо выбрать Tools > Android SDK Upgrade Assistant, и Google советует обновлять по 1 уровню за раз.

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

#certificate #network #tls
🤔4👍3🔥1
Forwarded from Surf Mobile Team
Что нового в Kotlin 1.9 📱

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

#экспертный
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5🔥2🤔1
Forwarded from Mobile Native ️️
Intro to Polymorphism with Kotlinx.Serialization

Статья с примером, как заложить структуру данных для полиморфных типов с использованием Kotlinx.Serialization.

Читать (En)
👍2🔥2🤓1
Forwarded from Mobile AppSec World (Yury Shabalin)
Пишем Android-приложение практически полностью в NDK

Привет любителям прятать строки в .so файлах, что бы их сложнее было найти!

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

На самом деле, что-то в этом есть, особенно мне понравилась часть про вызов Binder напрямую из нативного кода через reflection, и вызов соответствующих сервисов далее:

class.forName("android.os.ServiceManager").getMethod("getService", String.class);

Это тебе уже не просто ключ шифрования в сошку положить, тут поинтереснее.

Доклад интересен глубиной погружения и способом подачи, то есть после того, как разбирается очередной пример "скрытия" чего-либо, идет небольшой блок демо, как это выглядит в коде, как переписать привычные нам действия с Java на натив. Ну и в конце пара выводов, как еще можно усилить подобное, да и надо ли оно такое вообще?

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

В общем, весьма смешанные чувства после просмотра =)

#android #ndk #obfuscation
👍2🔥2
Forwarded from Mobile Developer (Алексей Гладков)
Внутренности ANR [EN]
https://blog.p-y.wtf/anr-internals-touch-dispatching-through-the-view-hierarchy

Как же я люблю такие статьи, где не просто поверхностно прошлись, а прям объяснили как это работает

👉 Как устроен механизм touch dispatch
👉 Сравнение механизмов View и Compose
👉 Как это все связано с ANR
👍2🔥2🤔1
Forwarded from Java: fill the gaps
Сегодня релиз 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!");
}
}

Вот такой релиз. Конечно, самая ожидаемая фича — это виртуальные потоки. Если планируете в ближайшее время внедрять их, отпишитесь по впечатлениям, мне очень интересно😊
🤯3👍2😱1
This media is not supported in your browser
VIEW IN TELEGRAM
Tiling — это реализация пагинации на основе состояния, которая представляет выгружаемый набор данных в виде простого списка. Он обеспечивает постоянный доступ к элементам по индексам в режиме реального времени и возможность самоанализа элементов, просматриваемых по страницам.

Tiller доступен в mavenCentral:

implementation com.tunjid.tiler:tiler:version

Читать статью

#гайд
👍2🤔2👎1🔥1