Сделал апку offline-first. Какие архитектурные решения применил
👉 API-First → Local-First. Теперь БД это единый источник правды
👉 Синхронизая базы с бекендом. До:
После:
👉 Разрешение конфликтов. Комбинация из алгоритмов
👉 Не забудьте поменять UI, чтобы не запутать пользователя
Автор решает сложную задачку, большинству приложений она не нужна, но архитектурно подход интересный. Версия без пейвола
👉 API-First → Local-First. Теперь БД это единый источник правды
👉 Синхронизая базы с бекендом. До:
UI -> Вызов API -> Показать результаты
После:
UI -> Сохранить в БД -> Очередь на синхронизацию -> Пуш на сервер (при появление сети)
👉 Разрешение конфликтов. Комбинация из алгоритмов
Last Write Wins, Timestamps and Merge, CRDTs. Основная сложность об которую ломаются все offline first приложения👉 Не забудьте поменять UI, чтобы не запутать пользователя
Автор решает сложную задачку, большинству приложений она не нужна, но архитектурно подход интересный. Версия без пейвола
Medium
I Forced My App To Work Offline Only. Here’s the Architecture Shift That Happened.
I unplugged the internet, and my app broke. Making it work offline changed everything.”
👍6🗿6🔥3
Android Good Reads
Продолжаем искать полезности в эре AI для Android: 👉 Сгенерированная вики для любого репозитория. Пример для compose-mp репы и для retrofit. 👉 Junie, интегрированная в IDE, получила необходимый набор инструментов для современного AI-coding плагина, а так…
Kotzilla update
Если вы используете Koin, то вам доступен и плагин и веб портал, где можно глянуть всякую-разную аналитику. Но одна фича меня наиболее заинтересовала сегодня: Они упаковывают контекст ошибки и проекта в единый промт, содержащий в себе зависимости, информацию о сессии и важных компонентах...
Доступно как из веб, так и из плагина
Если вы используете Koin, то вам доступен и плагин и веб портал, где можно глянуть всякую-разную аналитику. Но одна фича меня наиболее заинтересовала сегодня: Они упаковывают контекст ошибки и проекта в единый промт, содержащий в себе зависимости, информацию о сессии и важных компонентах...
Доступно как из веб, так и из плагина
🤷8❤6🔥3
Вчера завозил в проект dependabot. Для тех кто не в курсе:
Автоматическое обновление зависимостей с прогоном ваших CI actions в гихабе. Позволяет снять головную боль и забыть про регулярное обновление зависимостей, слежкой за минорными версиями. Поддерживает gradle version catalog
Пару лет назад даже писал статью в linkedin об этом
Автоматическое обновление зависимостей с прогоном ваших CI actions в гихабе. Позволяет снять головную боль и забыть про регулярное обновление зависимостей, слежкой за минорными версиями. Поддерживает gradle version catalog
Пару лет назад даже писал статью в linkedin об этом
GitHub Docs
About Dependabot version updates - GitHub Docs
You can use Dependabot to keep the packages you use updated to the latest versions.
❤5🔥5👍4
Android Good Reads
Kotzilla update Если вы используете Koin, то вам доступен и плагин и веб портал, где можно глянуть всякую-разную аналитику. Но одна фича меня наиболее заинтересовала сегодня: Они упаковывают контекст ошибки и проекта в единый промт, содержащий в себе зависимости…
This media is not supported in your browser
VIEW IN TELEGRAM
Немножко годноты с последней Preview для Android Studio
Отдельный функционал для:
- Генерации экрана со скриншота
- Возможности доработки изменений на скриншоте
- Фиксов ошибок
- Превью и фиксов превью ошибок
Кстати, теперь можно использовать локальные модели, если Gemini недоступен или не хочется за него платить
По клику на гифку открывается нормальная ее версия
Отдельный функционал для:
- Генерации экрана со скриншота
- Возможности доработки изменений на скриншоте
- Фиксов ошибок
- Превью и фиксов превью ошибок
Кстати, теперь можно использовать локальные модели, если Gemini недоступен или не хочется за него платить
По клику на гифку открывается нормальная ее версия
❤6👍3🤣2
Visiblity API в Compose 1.9
Представили новые модификторы для отслеживания видимости элементов:
Пример использования:
До нового апи мы парсили стейт для получения того же функционала:
Оффициальный анонс: https://android-developers.googleblog.com/2025/08/whats-new-in-jetpack-compose-august-25-release.html
В версии 1.9.2 поправили баг с пропавшими ивентами смены состояния
Представили новые модификторы для отслеживания видимости элементов:
onVisibilityChanged, onFirstVisibleПример использования:
// onVisibilityChanged
LazyColumn {
items(feedData) { video ->
VideoRow(
video,
Modifier.onVisibilityChanged(minDurationMs = 500, minFractionVisible = 1f) {
visible ->
if (visible) video.play() else video.pause()
},
)
}
}
// onFirstVisible
LazyColumn {
items(100) {
Box(
Modifier
// Log impressions when item has been visible for 500ms
.onFirstVisible(minDurationMs = 500) { /* log impression */ }
.clip(RoundedCornerShape(16.dp))
.drawBehind { drawRect(backgroundColor) }
.fillMaxWidth()
.height(100.dp)
)
}
}
До нового апи мы парсили стейт для получения того же функционала:
LaunchedEffect(listState) {
snapshotFlow { listState.layoutInfo.visibleItemsInfo.map { it.key }.toSet() }
.collect { visibleIds ->
// Сравнение с предыдущим состоянием и получение колбека
}
}Оффициальный анонс: https://android-developers.googleblog.com/2025/08/whats-new-in-jetpack-compose-august-25-release.html
В версии 1.9.2 поправили баг с пропавшими ивентами смены состояния
👍7❤6🔥5
Android Good Reads
Visiblity API в Compose 1.9 Представили новые модификторы для отслеживания видимости элементов: onVisibilityChanged, onFirstVisible Пример использования: // onVisibilityChanged LazyColumn { items(feedData) { video -> VideoRow( video, …
Еще представили новую работу с тенями.
Если вы знаете как сделать все примеры с картинок, то вам не нужно читать эту статью. Внутри бонус - анимированная тень
dropShadow, innerShadowЕсли вы знаете как сделать все примеры с картинок, то вам не нужно читать эту статью. Внутри бонус - анимированная тень
🔥7🤣3❤2👍2
Ваш лучший мобильный разработчик - медленный
Формат, конечно, больше подходит каналу про тимлидов, но давайте взглянем с их стороны на мобильную разработку:
👉 Рассматривают 2 типа разработчиков. Первый быстро решает задачи, продакты им довольный, не задает лишних вопросов. Растит продукт с точки зрения бизнеса. Второй работает медлено, постоянно все уточняет, рисует диаграммы и пишет "никому не нужные" тесты.
👉 Учитывают экономику скрытых дефектов, и покрытие тестами для предотвращения потерь. Вложение в архитектуру, как снижение стоимости изменений. Менторинг как вложение в команду. Коммуникация, как предотвращение переписывания кода.
👉 Предлагают измерять не количество закрытых тикетов, а количество багов в продакшене, длину цикла разрабо, время внесение изменений и crashrate
👉 Предлагают мерять продуктивность разработки через SPACE и DORA
К какой стороне вы себя относите?
Формат, конечно, больше подходит каналу про тимлидов, но давайте взглянем с их стороны на мобильную разработку:
👉 Рассматривают 2 типа разработчиков. Первый быстро решает задачи, продакты им довольный, не задает лишних вопросов. Растит продукт с точки зрения бизнеса. Второй работает медлено, постоянно все уточняет, рисует диаграммы и пишет "никому не нужные" тесты.
👉 Учитывают экономику скрытых дефектов, и покрытие тестами для предотвращения потерь. Вложение в архитектуру, как снижение стоимости изменений. Менторинг как вложение в команду. Коммуникация, как предотвращение переписывания кода.
👉 Предлагают измерять не количество закрытых тикетов, а количество багов в продакшене, длину цикла разрабо, время внесение изменений и crashrate
👉 Предлагают мерять продуктивность разработки через SPACE и DORA
К какой стороне вы себя относите?
Medium
Your Best Mobile Developer Is the “Slow” One
The paradox: the developers who look slow are often the ones who protect your velocity.
❤5
😁4
This media is not supported in your browser
VIEW IN TELEGRAM
Glitch effect в Compose
Делаем красивый глич эффект нативными компонентами. Воспринимайте как туториал к тому как делать сложно-красивую анимацию
Делаем красивый глич эффект нативными компонентами. Воспринимайте как туториал к тому как делать сложно-красивую анимацию
🔥25❤11👍3🤯1
Я тут ковыряюсь со своим проектиком простеньким. Осваиваю чудеса делегирования своей работы AI.
И первый раз наткнулся на это API в Android. Как-будто оно +- бесполезное, но и в то же время всегда до этого решал через бекенд или Places такую проблему.
https://t.me/androidraft
И первый раз наткнулся на это API в Android. Как-будто оно +- бесполезное, но и в то же время всегда до этого решал через бекенд или Places такую проблему.
https://t.me/androidraft
🤔2
Forwarded from Антоха Разраб
Задумался, как мне из координат указанных пользователем вытащить ближайший город. Думал, может Places API или что еще - а нет, все проще. В Android есть Geocoder API, которое делает ровно сказанное выше и достаточно неплохо.
👍11🔥3
Немного флешбеков прошедшего года. Иногда тут появлялись анонимные опросы касательно разработки. Не претендует на репрезентативность Если вам интересно:
👉 Про Server Driven UI
👉 Про DI
👉 Статические анализаторы
👉 Паззлер с remember
👉 val immutable?
👉 Про gRPC
👉 SOLID на собеседованиях
👉 Использование Compose
👉 Использование KMP
👉 Архитектурные паттерны
👉 Про подход к разработке
Пишите в комментах о чем вы бы хотели опрос аудитории канала!
👉 Про Server Driven UI
👉 Про DI
👉 Статические анализаторы
👉 Паззлер с remember
👉 val immutable?
👉 Про gRPC
👉 SOLID на собеседованиях
👉 Использование Compose
👉 Использование KMP
👉 Архитектурные паттерны
👉 Про подход к разработке
Пишите в комментах о чем вы бы хотели опрос аудитории канала!
❤3🔥2
Вышел The State of Developer Ecosystem 2025. Из интересного:
👉 85% разработчиков регулярно используют ИИ-инструменты для написания кода и разработки, а 62% полагаются как минимум на одного ИИ-ассистента, агента или редактор кода. Тем не менее, 15% разработчиков всё ещё не внедрили ИИ-инструменты в свою повседневную работу.
👉 Большинство разработчиков рады позволить ИИ выполнять повторяющиеся задачи, такие как генерация шаблонного кода (boilerplate), написание документации или обобщение изменений, но предпочитают оставлять за собой творческие и сложные задачи, например, отладку или проектирование логики приложений.
👉 Сами разработчики выделяют как технические (51%), так и нетехнические (62%) факторы в качестве критически важных для своей производительности. Внутреннее взаимодействие, коммуникация и ясность теперь так же важны, как и более быстрые конвейеры CI (непрерывной интеграции) или лучшие IDE (интегрированные среды разработки).
👉 Kotlin чутка подрос в популярности
👉 85% разработчиков регулярно используют ИИ-инструменты для написания кода и разработки, а 62% полагаются как минимум на одного ИИ-ассистента, агента или редактор кода. Тем не менее, 15% разработчиков всё ещё не внедрили ИИ-инструменты в свою повседневную работу.
👉 Большинство разработчиков рады позволить ИИ выполнять повторяющиеся задачи, такие как генерация шаблонного кода (boilerplate), написание документации или обобщение изменений, но предпочитают оставлять за собой творческие и сложные задачи, например, отладку или проектирование логики приложений.
👉 Сами разработчики выделяют как технические (51%), так и нетехнические (62%) факторы в качестве критически важных для своей производительности. Внутреннее взаимодействие, коммуникация и ясность теперь так же важны, как и более быстрые конвейеры CI (непрерывной интеграции) или лучшие IDE (интегрированные среды разработки).
👉 Kotlin чутка подрос в популярности
❤2👍2🔥2🥱1