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


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

Рекламу не размещаю
Download Telegram
Перенос приложения в Huawei App Gallery

Я уже как-то писал ппро перенос приложения в Google Play в случае изменения юридического лица приложения (например, при его продаже). Это всё делается буквально за 3-4 дня, и даже заплаченные $25 за регистрацию начального аккаунта возвращают. Отлично отлаженный процесс.

Но в Huawei App Gallery такого процесса нет, а то, что предлагается — это боль и нервы. Скорее всего, вам это не пригодится, но если что — знайте, что делать.

1. Для начала открываете официальный док, и думаете, что всё хорошо: даже новый аккаунт не надо регистрировать, а можно переименовать юридическое лицо в текущем. Но это только в теории.
Renaming Application Form простая, но приложить к ней у меня получилось документы в JPEG-формате. Остальные форма отбраковывала на этапе заполнения с рандомными ошибками.

2. Через пару дней вашу заявку рассматривают, и… переименовывается часть полей: например, имя компании будет новым, но адрес — старый.

3. Создаёте заявку, где вам будет помогать поддержка, прося те же документы, которые вы изначально отправили.

4. Ещё если вы изменили юр.лицо в Google Play, то App Gallery будет реджектить ваше приложение, потому что «в Google Play у вас другие данные». То есть они не могут починить у себя проблему, но реджект делают на основе того, что есть в Google Console.

5. Это может длиться неделями: главное — не закрывайте открытый тикет, чтобы не объяснять всю ситуацию с начала.

В общем, ребятам явно есть над чем поработать. Может быть, в HarmonyOS-сторе всё получше.
👍6🤩3
Никому нельзя доверять

Сегодня не совсем про Android-разработку, но тем не менее — суперважная тема.

Попалась статья, где нашего коллегу пытались взломать через… тестовое задание. И лишь излишняя паранойя и AI-агент спасли его от потенциального взлома.

Кратко о том, что произошло. В сообщения постучался сотрудник компании, который предложил работу. Настоящая страница, реальная компания, 1000+ «друзей» в профиле. Даже посты были похожи на настоящие, с комментариями.

Во время общения было предложено сделать тестовое задание, где была отправлена болванка для запуска. Сама она тоже выглядела очень хорошо: корректный README, актуальный стек, реальный проект. Но времени было не так много, и наш герой не успел настроить sandbox-среду.
Однако интуиция заставила его прогнать код через AI-агент перед непосредственным запуском. И вот — агент нашёл обфусцированный byte-array, который мог стащить всё, что плохо лежит: криптокошельки, пароли, файлы и т.д.

Просто хочу напомнить всем нам.
🟢никогда не запускайте неизвестный код на своём основном ноутбуке. Помните о Gradle Wrapper Attack, которую очень непросто сходу найти.
🟢неизвестные куски кода скармливайте AI. Они весьма шустро переваривают всякое легаси и описывают, что происходит;
🟢проверяйте, кто вам пишет, верифицируйте профили и страницы;
🟢банально, но — обмазывайтесь любыми двухфакторками, сложными паролями, хардварными криптокошельками и т.д.
🟢доверяйте интуиции. Ваш ноутбук — это кладезь ценной и дорогой информации для злоумышленников, помните об этом.

Если вы знакомы с такими случаями — буду рад услышать вас в комментариях.
Please open Telegram to view this post
VIEW IN TELEGRAM
😱3112👍9🔥3😁1
Вот так новость, интересно, на другие вендроры подвезут?
Общий буфер обмена с Macbook, думаю, точно не подвезут. 😄

Кто попробовал — напишите, работает ли 🤔
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥9👍4
Lineage OS
#android

На днях обновили версию Android на моём рабочем проекте, и мой старенький Samsung S8+ стал неактуален для тестирования.

Решил посмотреть, что можно с ним сделать и нашёл решение — установить Lineage OS. Оказалось, что это сделать довольно просто, и есть масса сторонних решений на 4PDA. И не только LineageOS.

Выбрал не самую последнюю, но стабильную на базе Android 13.
Работает всё шикарно: быстрее, плавнее и дружелюбнее для батареи, чем стандартная оболочка. Очень доволен. 🫶

К слову, это ещё и неплохой способ попробовать альтернативную прошивку и получить рут-права для тестирования.

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

Так что вот вам на заметку кейс, что можно сделать с уже «отжившими» смартфонами. 👆
Please open Telegram to view this post
VIEW IN TELEGRAM
11💯4🔥3👍2🤓1
RemoteCompose

Похоже, в конце прошлого года появился довольно любопытный подход к рендерингу UI с бэкенда — RemoteCompose. И если раньше мы видели примеры архитектур на базе JSON (вроде Epoxy), то теперь инициатором выступает Google совместно с Compose.

Идея проста: делаете Compose код удалённо, имея все плюсы server-driven UI: тут и простые A/B тесты, и быстрые изменения, и возможность удалённых фиксов, если надо скрыть фичу под флагом.

На клиенте у нас появляется RemoteDocumentPlayer и ряд других компонентов, которые помогают воспроизвести приходящий byte array с сервера и отобразить всё в нативных компонентах.

Подход любопытный и вполне жизнеспособный.
Однако, пока рано говорить про релиз, ведь вышла только первая alpha. Да и iOS-команде продать Compose не так просто, а уж RemoteCompose тем более. Но если проект KMP, то почему бы и не попробовать через несколько месяцев, когда будет хотя бы beta.

Что думаете? 👇
Please open Telegram to view this post
VIEW IN TELEGRAM
👍20🥴12💩5🔥43👎2
Mole

Не удивлён, что macOS в топе. Хотя кто знает, может через пару тысяч голосов всё изменится. 😄
Всё равно — пусть будет полезный пост.

На днях узнал о суперполезной утилитке Mole.


Если вкратце — это тулкит, который объединяет возможности CleanMyMac, AppCleaner и других аналогичных сервисов в одной консольной утилите. Бесплатно, opensource и без лишних сложностей.
Заметил особенность: иногда может показаться, что программа «подвисает», но нужно просто подождать пару минут — это нормальное поведение, скрипт скоро продолжит работу.

Давайте поделимся в комментариях результатами: кто сколько места освободил после mo clean. У меня ушло 31.8 ГБ. Честно говоря, думал, что под сотку наберётся, но вот нет.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥114👍4
Upside Down из Stranger Things 🌌

Первый рабочий день года — отличное время для того, чтобы изучить создание красивой анимации. А возможно, и начать погружение в AGSL-шейдеры — кто знает, куда это может вас привести.

Рассказывается, как сделать эффект Upside-Down из Stranger Things. Если не знаете что это — то достаточно посмотреть анимацию: то переход от обычной тёплой картинки к мрачным, холодным тонам.

В статье по шагам рассказывается про шейдеры, HSV, анимации и их связь с псевдорандомом, и как это всё привязать к Compose.
6
This media is not supported in your browser
VIEW IN TELEGRAM
И снова про шейдеры. Finger Shadows

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

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

Статья тут, исходники тоже.
🔥9👍2
Какую библиотеку используете для похода в сеть?
Anonymous Poll
64%
Retrofit
26%
Ktor
3%
Другую либу
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) } }
}
)
}


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