Android Live 🤖
5.23K subscribers
53 photos
2 videos
809 links
Самые свежие новости, новинки и тренды Android от практикующего разработчика.


Автор: @al_gorshkov,
Чат: @android_live_chat
Личный блог: @al_gorshkov_blog

Рекламу не размещаю
Download Telegram
This media is not supported in your browser
VIEW IN TELEGRAM
И снова про шейдеры. Finger Shadows

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

Эффект на видео, а применяется тот же RuntimeShader, что и из предыдущего примера.

Статья тут, исходники тоже.
🔥9👍2
Какую библиотеку используете для похода в сеть?
Anonymous Poll
64%
Retrofit
26%
Ktor
4%
Другую либу
7%
Не скажу. Но результаты интересны
👍2
Java Memory Model

Для тех, кто любит копаться в том, что и как работает под капотом. Отличная статья, где описываются механизмы работы JMM.

Тема непростая, однако автор довольно хорошо объясняет сложные вещи простым языком. Ну и на собесе можно выпендриться, если что.
🔥9👍32
Styles API в Jetpack Compose 🚀

Интересного завезли. В Compose появился экспериментальный API для работы со стилями, который делает их изменение гораздо удобнее.

Сейчас работа с динамическими стилями требует немало ручного труда. И хотя InteractionSource неплохо приспособлен для этих задач, Styles API упрощает процесс в разы.

Ниже приведён пример кнопки, которая меняет цвет при состояниях hovered и pressed.


@Composable
fun InteractiveButton(onClick: () -> Unit) {
ClickableStyleableBox(
onClick = onClick,
style = {
background(Color.Green)
size(150.dp)
hovered { animate { background(Color.Yellow) } }
pressed { animate { background(Color.Red) } }
}
)
}


Выглядит неплохо, посмотрим, что будет дальше. Детали тут.
🔥15👍6👎1
Google Checks

На днях наткнулся на полезный, но не очень популярный сервис от Google — Checks.

Платформа предназначена для автоматической проверки кода на compliance, безопасность и другие подобные штуки.
Если их не мониторить в больших компаниях можно отрести прилично проблем, а данный сервис помогает их предотвратить. Пока всё бесплатно, можно пробовать и решить, надо ли оно вам. Подходит для Android и iOS.

Пробовали? Поделитесь опытом в комментариях. Я вот добавил себе задачку, чтобы не забыть попробовать.
👍62🔥2
Samsung One UI fix

Если вы пользователь Samsung с последним обновлением One UI, то вас, как и меня, мог раздражать новый двойной свайп для открытия панели быстрых настроек.

Оказывается — можно это вернуть! Один из немногих YouTube Shorts, который сэкономил время. 😄
Please open Telegram to view this post
VIEW IN TELEGRAM
😐8🔥42👍1
Обновление зависимостей с Gemini

Может вы, как и я, пропустили, что начиная с Android Studio Otter можно обновлять зависимости в toml-каталогах при помощи Gemini.

Процесс обновления зависимостей хоть и простой шах и мат AGP 9, но довольно затратный по времени. Gemini может решить эту проблему, хотя в идеале такие задачи стоит выносить на CI/CD

Попробовать новую фичу просто:
🔴открываем toml-каталог;
🔴нажимаем на зависимость, требующую обновления;
🔴выбираем пункт «Update all libraries with Gemini».
Please open Telegram to view this post
VIEW IN TELEGRAM
5👍3👎2🔥2
Local History в Android Studio

Мне кажется, что это довольно полезная функция Android Studio, о которой знают далеко не все разработчики.

Если вы случайно дропнули важный код и не успели закоммитить его в Git, данные можно восстановить при помощи Local History.
Для этого кликаем в IDE правой кнопкой и нажимаем на LocalHistory -> Show History. Ну и а затем найдите наиболее подходящую версию.

Важно помнить, что этот инструмент не заменяет Git: локальная история хранится только на вашем компьютере. Кроме того, её легко стереть при очистке кэша. Будьте бдительны!
🔥15👍7🥴5🤡21👎1
Project Accessors

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

Предположим, у нас есть модули core-ui и core-common. Обычно при их добавлении в другой модуль используется такой синтаксис:


implementation(project(":core:common"))
implementation(project(":core:ui"))


В целом, ок, но можно сделать аналогично тому, как мы работаем с зависимостями из toml-каталога:


implementation(projects.core.common)
implementation(projects.core.ui)


Для этого достаточно зайти в корневой settings.gradle и добавить там строку enableFeaturePreview("TYPESAFE_PROJECT_ACCESSORS»)

Хотя фича и считается «экспериментальной», вроде работает вполне себе стабильно. Надеюсь, было полезно.
👍19🥱12👏6
Дано: большой проект из 180 модулей и Claude Sonnet 4.5.

Сможет ли модель осуществить миграцию на AGP 9.0 без внешнего вмешательства? То есть начинаем с промта в любом виде -> модель шуршит -> успешный запуск проекта. Ваши прогнозы: 👇
Anonymous Poll
19%
Да, всё получится: не самая сложная задача для модели
12%
Нет, захлохнет на полпути
50%
Нет, миграцию «сделает», но проект не запустится
0%
Свой вариант ответа
19%
Просто. Покажи. Результаты
1
AGP 9.0 — миграция через Claude Sonnet 4.5

Спасибо за ваши комментарии и обратную связь.

На самом деле в вопросе не было опечаток, хотя он и звучал довольно абстрактно. Попробую рассказать подробнее.

Ещё до выхода Sonnet 4.6 я решил попробовать перевести рабочий проект на последний AGP. Стандартный «мигратор» Android Studio не втащил: добавил какие-то необходимые файлы, но после него даже не вышло собрать проект. А вот Sonnet — смог.

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

Для начала я объяснил задачу в режиме планирования (plan-mode). Промт был довольно простым, но я добавил в него несколько официальных гайдов по переходу. После корректировки плана мной — агент начал рабоать… и справился!

Проект успешно собрался, зависимые библиотеки обновились до совместимых версий, а модель самостоятельно «протестировала» результат, проверив сборку всех конфигураций. У меня, кстати, в проекте есть KMP-модули, хотя и довольно простые с бизнес-логикой.

Так что AI сегодня — инструмент, который не стоит игнорировать. Просто пробуйте некоторые задачи доверять ИИ, попутно смотря, что он там делает.
🔥23🤔4👍3
Решил помочь ребятам сделать исследование мобильного рынка за текущий год. Опрос займёт около 10 минут, а результатами я поделюсь уже в апреле.

Зачем оно нужно?
🟢можно сверить себя с рынком и понять, молодец ли я по ЗП или пора расти;
🟢что там с актуальным стеком, и правда ли что всем давно пора на KMP писать;
🟢как дела с AI, а то может и KMP учить поздно. 🤖

Сам опрос тут, думаю, что в итоге всем нам будет эта инфа полезна.
Please open Telegram to view this post
VIEW IN TELEGRAM
🤮16🔥6👍4👌3