Android & Coffee с Васей
183 subscribers
74 photos
5 videos
50 links
Канал для разговоров за кофе о разработке. В основном Android, но вообще как получится
Download Telegram
🇨🇳 Приложения в Китае. Продолжение

🖼 Look

Для меня приложения выглядят непривычно и, честно говоря, некрасиво.

Интерфейсы кажутся неровными, перегруженными, с разным стилем внутри одного приложения. Особенно это заметно в Alipay: переходишь в миниапп — и оказываешься как будто в другом продукте.

🧰 Feel

Если вы видели AliExpress или Trip.com, то, скорее всего, ловили необычный вайб.

После Alipay и Taobao это ощущение усиливается раз в десять.

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

Я думаю, это связано с языком. Иероглифы позволяют уместить гораздо больше смысла в маленьком пространстве.
А AliExpress и Trip.com — это уже адаптированные версии под другие рынки.

Хороший пример того, как язык влияет на продукт.

P.S. Скриншоты — из трёх разных миниаппов. Один клик — и всё поменялось
🔥1
🇨🇳 Приложения в Китае. Еще один пост

🔨Performance

Приложения часто работают медленно.

И речь не про заблокированные YouTube или Instagram, а про локальные сервисы.

Причём неважно, используешь eSIM или Wi-Fi. Особенно это заметно в Alipay и его миниаппах.

Возможные причины:

— огромный объём трафика в китайском интернете
— большое количество запросов между супераппом и миниаппами

Через пару дней просто адаптируешься: не жмёшь кнопку второй раз, а ждёшь 2–5 секунд.

При этом почти все приложения на удивление экономно расходуют батарею.
Исключения — Trip.com и Universal Beijing Resort. Эти жрут батарею за десятерых.

🧠 Интересное

В Alipay есть классная фича перевода: нажимаешь кнопку — и весь текст в приложении переводится на нужный язык (кроме картинок).

Работает даже внутри миниаппов.

Звучит просто, но с технической точки зрения — очень нетривиально.
Ну и бонус — забавные переводы вроде “паровой утиный платок”.
🇨🇳 Приложения в Китае. Вывод

Вроде очевидная мысль, но я сам про неё регулярно забываю:

UI и UX — не универсальны.

Они сильно зависят от аудитории, языка и рынка. Где-то пользователи ждут мгновенного отклика приложения. Где-то важна эксклюзивность контента. А где-то важнее акции, или плотность информации.
Например, в китайских приложениях тебя закидают офферами ещё до того, как ты успеешь заказать такси.

И если делать продукт для другой страны, это нужно учитывать не на уровне “перевели текст”, а на уровне всей структуры приложения.
2💯1
Please open Telegram to view this post
VIEW IN TELEGRAM
⚔️ Spec Kit vs Superpowers

Сравниваем два плагина, улучшающих Coding Assistants. Я пробовал с Claude и Copilot, в обоих использовал модель Claude Sonnet.

SpecKit реализует Spec-driven development. Этот инструмент от Github на основе AI агентов имеет набор скиллов, утилит, определённую философию разработки. Требует от разработчика соблюдения четкого процесса для достижения результата.

Superpowers — набор инструментов и скиллов. Фактически, это готовый флоу разработки, но, в отличие от SpecKit, не требует знания флоу, а сам ведёт тебя по нему.

Для обоих инструментов намеренно использовал промпт среднего качества — без сильных деталей, но больше нескольких слов. Давал ссылки на макеты, был подключен Figma MCP, верхнеуровнево описывал флоу или фичу.

Что получилось — читай дальше 👇
Superpowers

С Superpowers сделал несколько фич подряд. В том числе с нуля с использованием CameraX для сканирования QR кода. Всего было 3 фичи, по 3-5 экранов каждая.

Superpowers завёлся быстро, ничего дополнительно настраивать не пришлось.

Плагин сильно улучшил планирование — режим планирования в Copilot или Claude теперь нужен очень редко. Задаёт хорошие вопросы, оставляет хороший файл с планом, сам параллелит выполнение, сам ревьюит свои изменения.

Дизайн из Figma тоже перенёс хорошо. Использовал UI Kit, вся вёрстка — близко к макетам.

Лимиты чуть выросли, но в разумных пределах.

Очень доволен.
🔥1
Spec Kit

Со Spec Kit попробовал сделать одну фичу — экран с множеством состояний. 

Настройка занимает время. Первый шаг — "конституция", уже вызывает вопросы. Уже есть CLAUDE.md. Чем будет отличаться конституция? Ответ найти оказалось непросто. Настроил по чуйке и обсуждениям

Spec Kit сгенерировал мусорную спеку, не задав ни одного вопроса. А я надеялся, что он сам выяснит нужное в диалоге.

Окей, пробуем еще раз. Дал более подробный промпт, приложил ссылки — снова ничего не спросил, спека стала чуть лучше.

Уточнил моменты вручную, попросил спланировать и разбить на задачи. Он всё сделал, хоть и медленно.

По итогу задачу выполнил плохо: поменял не все нужные файлы, дизайн очень кривой. Настолько кривой, что были проигнорированы все рекомендации CLAUDE.md по использованию Material темы и нашего UI Kit

А еще он съел все лимиты личного Claude 💀

Уже после пошел искать информацию, и наткнулся на обсуждение SpecKit creates the illusion of work, generating a bunch of text. Очень попало в мои впечатления.
😁1
Итог битвы — для меня Superpowers оказался проще в использовании, и при этом я получил лучший результат.

Инструменты решают одну задачу. Но Spec Kit не сделал ничего такого, что не сделал бы чистый Claude или Copilot с нормальным промптом.

А Superpowers — топ.
Теперь не могу развидеть тут свинку в очках
😁2
Preview Wrappers

В Compose 1.11 добавили Preview Wrappers

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

Теперь можно сделать один раз:


class ThemeWrapper : PreviewWrapperProvider {
@Composable
override fun Wrap(content: @Composable (() -> Unit)) {
YourAppTheme { content() }
}
}


И применять через аннотацию:


@PreviewWrapper(ThemeWrapper::class)
@Preview
@Composable
private fun ButtonPreview() {
Button(onClick = {}) { Text("Demo") }
}


Работает с @Preview и Multi Preview

Кстати, в официальном блоге Google интерфейс и аннотация перепутаны местами — там PreviewWrapper как интерфейс и @PreviewWrapperProvider как аннотация. Судя по реальному API — всё наоборот.

Но есть нюанс, о нём — дальше 👇
❤‍🔥2
Продолжение про Preview Wrappers в Compose 1.11

Фича удобная, но сразу возник вопрос: а что если тем несколько? У нас в проекте именно так

Допустим, есть две темы или больше. Хочется одной аннотацией получить превью сразу во всех. Но @PreviewWrapper сейчас не повторяемый — повесить его дважды не выйдет. И на аннотационные классы тоже не повесишь, то есть нормальный MultiPreview с враппером не сделаешь.

Решил завести issue с предложением это исправить. Чтобы можно было бы написать вот так:


@Preview
@PreviewWrapper(ThemeOneWrapper::class)
@PreviewWrapper(ThemeTwoWrapper::class)
annotation class MultiThemePreview

@MultiThemePreview
@Composable
private fun MyContent() {
Text("Content")
}


Одна аннотация — превью сразу во всех темах.

Если тема актуальна — ставьте плюсики на issue: https://issuetracker.google.com/issues/505643423

Делитесь, у кого есть интересные кейсы использования Preview?
This media is not supported in your browser
VIEW IN TELEGRAM
Jazari One

Запустились в UK в июле 2025. Прошло меньше года — и мы уже делаем второе приложение. Глобальное. На стейблкоинах. 🚀

Казалось бы, повод гордиться.

Но первое, что сделал новый продукт — это вежливо предъявил нам всё, на что мы закрывали глаза в первом.

Модуляризация, которая "не нужна в стартапе". Дизайн-система, которая "не нужна на старте". Инверсия зависимостей, которую "и так понятно где". Архитектурные решения с пометкой "пока сойдёт" — они никуда не делись, просто ждали момента.
👍2💯2
Jazari One — часть 2

И вот момент настал. Весь долг пришлось отдавать, потому что иначе поддерживать два приложения очень дорого.

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

Стартап — это не про то, чтобы делать плохо. Это про то, чтобы делать быстро. Разница кажется очевидной, пока не начинаешь второй продукт на той же кодовой базе.

🙋🏻‍♂️ Если интересно про андроид часть — напишите в комментариях. Расскажу, какую работу пришлось проделать, какие варианты рассматривали и как в итоге сделали.
🔥5👍2
Jetpack Compose: весь changelog в одном месте

Новый Compose выходит 1-2 раза в месяц. И каждый раз обновление превращается в квест. Мне. Надоело.

Приходится вручную:

1. Идти на BOM to library version mapping, смотреть какие библиотеки поменялись
2. Для КАЖДОЙ из них открывать changelog на отдельной странице — и ещё помнить, какая версия была до этого
3. Отдельно искать What's new in the Jetpack Compose — полезно, но не очевидно где найти

Обновляешь сразу на две версии — всё это x2.

👉 Короче, собрал сайт со всеми изменениями. Лично кайфанул от того, что похоже на developer.android.com, при этом всё видно сразу

Плюс сделал AI-friendly: есть llms.txt, чтобы агентам было проще разбирать изменения и помогать с апгрейдами

Пригодится всем, кто регулярно обновляет Compose. Ну и агентам скармливать удобно — пусть сами разбираются с апгрейдами.

⭐️ Если пригодится — звёздочка на GitHub и репост приветствуются. Чем больше людей узнает, тем быстрее убедим Google выпустить свою версию.
👏9
Android & Coffee с Васей
Jazari One — часть 2 И вот момент настал. Весь долг пришлось отдавать, потому что иначе поддерживать два приложения очень дорого. Кто занимается проектированием, знает, что идеальной архитектуры не существует. Каждое решение — это компромисс между требованиями…
Jazari — UK-банкинг — запущено, стабильно работает у пользователей уже почти год. Мы решили, что хотим сделать еще приложение на стейблкоины — другая аудитория, другая регуляция, другой продукт.

Как оно будет выглядеть — не знает никто. Экспертизы по стейблкоинам в команде почти нет. Всё обсуждается по ходу и может поменяться к следующему утру. Спросить некого: мы сами и рождаем это приложение прямо сейчас.

О завершённых проектах обычно рассказывают итог: «сделали вот так, всё работает». Трейдофы — что отбросили, почему, что пошло не туда — остаются за кадром.

Я хочу рассказать именно это. В основном про Android приложение. И ещё — где во всём этом помог AI, а где нет.

Первый пост — завтра

Кажется, получится долгий рассказ, поэтому буду помечать посты:

серия → «Два приложения — один логин»

#android #kotlin #androiddev #архитектура
4👍1
Android & Coffee с Васей pinned «Jazari — UK-банкинг — запущено, стабильно работает у пользователей уже почти год. Мы решили, что хотим сделать еще приложение на стейблкоины — другая аудитория, другая регуляция, другой продукт. Как оно будет выглядеть — не знает никто. Экспертизы по стейблкоинам…»