@androidcoffee
Канал для разговоров за кофе о разработке. В основном Android, но вообще как получится
О канале Android & Coffee с Васей
Канал для разговоров за кофе о разработке. В основном Android, но вообще как получится
Основные метрики
Рост подписчиков
Вовлечённость
Здоровье аудитории
Часовая активность
МСККогда канал публикует — распределение постов по часам суток.
Последние публикации канала «Android & Coffee с Васей»
- 87 просмотров, 5 реакций, 02 июл. 2026 г.
Про то, как AI не смог Jazari One — приложение со стейблкоинами. Один из важных типов — Money , работает поверх java.util.Currency . Но старая реализация не подходит: вызов Currency.getInstance("USDT") просто бросил бы исключение. Нужно было расширить тип, чтобы он умел работать и с фиатом, и с токенами. sealed interface MoneyCurrency { val currencyCode: String data class Fiat(val currency: Currency) : MoneyCurrency { ... } data class Token(val symbol: String) : MoneyCurrency { ... } } Вопрос был один: как определить, что перед нами — фиат или токен? AI решил проверять длину строки: USD —…
Открыть пост в MAX - 156 просмотров, 1 реакций, 26 июн. 2026 г.
Claude может сам настроить мониторинг токенов Claude Code и другие coding-ассистенты умеют отдавать телеметрию через OpenTelemetry — токены, latency, события агента. Подключается к Grafana или любому OTEL совместимому коллектору. Есть бесплатный облачный вариант, можно поднять своё. Пригождается когда упираешься в лимиты или хочешь понять, куда реально уходят токены. Ну и просто прикольно видеть, что потратил 500 баксов на токены, а подписка стоит $100 https://code.claude.com/docs/en/agent-sdk/observability #claude #claudecode #ai #devtools #observability
Открыть пост в MAX - 148 просмотров, 2 реакций, 25 июн. 2026 г.
Один логин, разный UI В Jazari Money дизайн-системы как артефакта почти не существовало — она была в чертогах разума, но несколько компонентов всё же просочились в Figma. Android жил на Material-токенах, iOS придумал свои. Тёмная тема была только в iOS приложении силами и энтузиазмом iOS команды. Не потому что не знали как нужно: качественная дизайн система — отдельная большая работа. Легко сделать плохо и заиметь еще бОльший долг. Дизайнер приносит дизайн Jazari One. Конечно, с мыслью о переиспользовании — но сразу появились отличия: только тёмная тема, другие цвета с другой семантикой,…
Открыть пост в MAX - 122 просмотров, 25 июн. 2026 г.
Прикольная пасхалка от Google Play консоли
Открыть пост в MAX - 113 просмотров, 2 реакций, 24 июн. 2026 г.
🤯 Новый One UI от Samsung За такое нужно увольнять без выходного пособия. И дизайнера, и разработчика. У меня уже дёргается глаз от этой анимации. Что думаете? #android #ux #samsung #oneui
Открыть пост в MAX - 107 просмотров, 3 реакций, 22 июн. 2026 г.
Один логин, разное поведение В Jazari Money при логине нельзя поменять код страны, в Jazari One — можно. Как это сделать? Вот несколько способов, как сделать фичи настраиваемыми под разные бренды 1️⃣ — общий интерфейс AppVariant . Каждое приложение биндит свою реализацию через DI, а feature-модуль просто спрашивает у него что нужно. interface AppVariant { val brand: Brand val supportEmail: String // ... } brand — универсальное поле, которое позволяет писать if'ы. Более правильным решением было бы завести отдельные поля: interface AppVariant { val canChangeCountry: Boolean val defaultCountry:…
Открыть пост в MAX - 99 просмотров, 5 реакций, 22 июн. 2026 г.
Один логин? Приложение собрано. Открываем первую же фичу — логин. Первый экран: ввод номера телефона. В Jazari Money страна одна — UK. Флаг захардкожен, поменять нельзя. В Jazari One пользователь может сменить код страны прямо в интерфейсе, аудитория глобальная. Уже здесь — дилемма. Экран ввода телефона в двух приложениях отличается, но не полностью. Различия постарались убрать по максимуму, но от них никуда не деться. Варианта два: — два отдельных экрана, каждый со своим поведением — один экран с if'ами Первый вариант чище концептуально: никаких if-ов, каждое приложение получает свой экран.…
Открыть пост в MAX - 160 просмотров, 17 июн. 2026 г.
Blueprint Compose Preview Библиотека от Gus Ward, позволяющая показать Blueprint экрана на Compose. Достаточно обернуть экран в composable BlueprintPreview и добавить идентификаторы к некоторым элементам. Удобно для проверки вёрстки и поиска проблем с отступами без запуска приложения. Есть режим showInternalItems , когда показываются все возможные элементы. Для превью экрана это чересчур (3й скрин), но может пригодиться для превью отдельных компонентов дизайн системы И удобно, когда дизайнер говорит "вроде тут не 32 пикселя, а 33" ⭐️ Github:…
Открыть пост в MAX - 141 просмотров, 17 июн. 2026 г.
🧹 Небольшая история из-под капота compose-bom.com Поймал любопытный кейс. Google выпустил Compose BOM 2026.05.01, но потом тихо убрал его из официального BOM-маппинга. Причина — рассогласование версий: runtime в этом BOM — 1.10.6, тогда как всё остальное…
Открыть пост в MAX - 168 просмотров, 6 реакций, 16 июн. 2026 г.
Новость: SpaceX покупает Cursor — Как рассчитали траекторию полёта? — На вайбе
Открыть пост в MAX - 162 просмотров, 4 реакций, 16 июн. 2026 г.
Модули готовы. Следующая цель — запустить второе приложение. Создали новый app-модуль. Нужно добавлять зависимости. DI-граф для нового приложения не возникает из воздуха — кто-то должен всё забиндить. И тут мы поступили максимально по-варварски: взяли AppModule.kt из Jazari Money на 400 строк, скопировали в Jazari Global и начали удалять лишнее. В итоге — 301 строка. Примерно 60% одинаковые. И AppModule — только самый наглядный пример. Копировалось всё, что живёт на уровне `app`-модуля: конфигурация, инициализаторы, навигация. Сценарий везде одинаковый: копируешь, удаляешь лишнее, добавляешь…
Открыть пост в MAX - 181 просмотров, 4 реакций, 12 июн. 2026 г.
🧹 Небольшая история из-под капота compose-bom.com Поймал любопытный кейс. Google выпустил Compose BOM 2026.05.01, но потом тихо убрал его из официального BOM-маппинга. Причина — рассогласование версий: runtime в этом BOM — 1.10.6, тогда как всё остальное уже 1.11.x. Хитрость в том, что артефакты в Maven неизменны — поэтому 2026.05.01 так и лежит там навсегда, хотя Google уже «отозвал» его и заменил исправленным 2026.06.00 (там runtime подняли до 1.11.2, чтобы всё совпадало). Получался релиз-призрак: в Maven есть, в официальном маппинге — нет 🤷 Теперь коллектор такие отозванные версии…
Открыть пост в MAX - 157 просмотров, 3 реакций, 11 июн. 2026 г.
Модуляризация закончена. Вынесли в отдельные модули ui kit, data, models, domain и другие общие части. В итоге получилось: 15 core-модулей, 6 feature-модулей и domain. Часть фич осталась в монолите — их можно выделить позже, если появится необходимость Модуляризация заняла 100+ коммитов. Отдельная часть работы — исправление нарушений слоёв, которые накопились в монолите Какие части помог сделать AI ? 🤖 AI для выбора архитектуры AI может проанализировать проект, учесть предпочтения по архитектуре, найти узкие места и предложить варианты. Если оставить его наедине с кодом — думаю, он даже…
Открыть пост в MAX - 160 просмотров, 2 реакций, 10 июн. 2026 г.
Нужно ли выносить внешние зависимости в отдельные модули? Многие архитектурные паттерны рекомендуют это делать. На практике — зависит. Если отгораживаться модулями от всех зависимостей, появляются дополнительные абстракции, маппинги и модели. Архитура усложняется, поэтому обычно для этого нужна веская причина. Например, Android SDK — тоже внешняя зависимость для нашего кода. Но мы же не изолируем всё подряд без необходимости. У нас таких случаев нашлось два: пуши и саппорт. Оба — внешние SDK, которые могут меняться или подключаться по-разному в разных приложениях. С саппортом получился…
Открыть пост в MAX - 174 просмотров, 4 реакций, 08 июн. 2026 г.
Convention Plugins Итак, будет больше одного фича модуля, а значит собираться они будут похожим образом. Нужно избежать бойлерплейта. И вот как сейчас выглядит build.gradle.kts любого feature-модуля в проекте: plugins { alias(libs.plugins.jazari.feature) } android { namespace = "money.jazari.feature.login" } В отдельных модулях бывают дополнительные зависимости. Но всё же — несколько строк, вместо ~50 с compileSdk , версией Java, Compose BOM, всеми зависимостями Hilt, KSP, desugaring и прочим. Это convention plugins . Бывают в виде kts скриптов или в виде kotlin/java файлов . Без них —…
Открыть пост в MAX
Качество и доверие
Эвристические сигналы качества по публичным метрикам (охват, реакции, динамика подписчиков). Это не доказанный фрод и не приговор — лишь поводы присмотреться к каналу.
Реклама и монетизация
Внешняя реклама, которую этот канал размещал в других лентах.
Рекламирует с 14.06.2026
- @Preview1 пост
Каналы, которые размещали рекламу этого канала у себя.
- @mobilefiction1 пост · 1.5K охват
Средние показатели последних публикаций. Тип определён по тексту поста — оценочно.
Цитирование
Сколько раз канал упомянут и репостнут в постах других каналов.
Публикации
Дополнительно
Из 17 пойманных постов в диапазоне ID сообщений отсутствует 3. Пропуски — это удалённые посты ИЛИ медиа-альбомы и служебные сообщения (один альбом = несколько ID). Точную причину по одним ID определить нельзя.