Не рекламы ради, а рекомендация каналов моих бывших коллег.
@fewideas раньше мы вместе в Ökko работали и Степа был разработчиком, который перешел из разработки в менеджмент. Сейчас он продакт в Авиасейлс
@mazurov_channel мы вместе работали в аутсорсе над мобильными приложениями. Сейчас Марк в Стокгольме и рассказывает как живется разработчику в Швеции
Это уютные авторские каналы, которые я и сам читаю. Рекомендую!
@fewideas раньше мы вместе в Ökko работали и Степа был разработчиком, который перешел из разработки в менеджмент. Сейчас он продакт в Авиасейлс
@mazurov_channel мы вместе работали в аутсорсе над мобильными приложениями. Сейчас Марк в Стокгольме и рассказывает как живется разработчику в Швеции
Это уютные авторские каналы, которые я и сам читаю. Рекомендую!
4❤7👍3🔥3❤🔥1
Как запустить свой мини-продукт
Главная ошибка, которую допускают почти все разработчики, начинающие делать свой продукт – застревать в бесконечных доработках и доведении его до идеала вместо того, чтобы побыстрее выходить на рынок.
Ребята из сообщества "Короче, Капитан" учат другому подходу – зафиксировать ровно 1 месяц на разработку и запуск, вложить на продвижение небольшую сумму денег, и потом внимательно изучить результат, и понять, что вышло, а что нет. И так – в течение 12 месяцев, за которые вы запустите 12 собственных проектов!
Если вы давно подумывали разнообразить свою рутину созданием своих продуктов, и хотите сделать их действительно кому-то нужными, подписывайтесь на сообщество @its_capitan.
Реклама. ИП Зуев, ИНН 360408359441, erid:2VtzqvBd835
Главная ошибка, которую допускают почти все разработчики, начинающие делать свой продукт – застревать в бесконечных доработках и доведении его до идеала вместо того, чтобы побыстрее выходить на рынок.
Ребята из сообщества "Короче, Капитан" учат другому подходу – зафиксировать ровно 1 месяц на разработку и запуск, вложить на продвижение небольшую сумму денег, и потом внимательно изучить результат, и понять, что вышло, а что нет. И так – в течение 12 месяцев, за которые вы запустите 12 собственных проектов!
Если вы давно подумывали разнообразить свою рутину созданием своих продуктов, и хотите сделать их действительно кому-то нужными, подписывайтесь на сообщество @its_capitan.
Реклама. ИП Зуев, ИНН 360408359441, erid:2VtzqvBd835
🤣7👍4❤2🔥2
Серия статей про Model View State Machine. "Новый" подход к разработке. Полезно посмотреть как бывает.
👉 Intro
👉 Создавая state машину
👉 Делаем side эффекты (Скоро)
👉 Создаем вложенный state (Скоро)
👉 Используем и переиспользуем state машину (Скоро)
Я предпочитаю брать готовые решения, потому что, помимо написания своего большого архитектурного паттерна, его нужно развивать и продавать внутри компании. Иначе трудозатраты на создание и обслуживание не соответсвуют результату
👉 Intro
👉 Создавая state машину
👉 Делаем side эффекты (Скоро)
👉 Создаем вложенный state (Скоро)
👉 Используем и переиспользуем state машину (Скоро)
Я предпочитаю брать готовые решения, потому что, помимо написания своего большого архитектурного паттерна, его нужно развивать и продавать внутри компании. Иначе трудозатраты на создание и обслуживание не соответсвуют результату
Medium
Model View State Machine: MVS
When Google gave us the Jetpack ViewModel library, it was a blessing. Now it is time for something better: Model View State Machine.
👍3
Архитектурые паттерны
Final Results
13%
Писать свое
17%
Взять готовое
38%
Взять готовое и дописать своего
19%
Забить, туда-сюда и в продакшн
13%
Посмотреть результаты
😁5
Сделал апку 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 поправили баг с пропавшими ивентами смены состояния
❤6👍6🔥5
Android Good Reads
Visiblity API в Compose 1.9 Представили новые модификторы для отслеживания видимости элементов: onVisibilityChanged, onFirstVisible Пример использования: // onVisibilityChanged LazyColumn { items(feedData) { video -> VideoRow( video, …
Еще представили новую работу с тенями.
Если вы знаете как сделать все примеры с картинок, то вам не нужно читать эту статью. Внутри бонус - анимированная тень
dropShadow
, innerShadow
Если вы знаете как сделать все примеры с картинок, то вам не нужно читать эту статью. Внутри бонус - анимированная тень
🔥6🤣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.
❤4
😁3
This media is not supported in your browser
VIEW IN TELEGRAM
Glitch effect в Compose
Делаем красивый глич эффект нативными компонентами. Воспринимайте как туториал к тому как делать сложно-красивую анимацию
Делаем красивый глич эффект нативными компонентами. Воспринимайте как туториал к тому как делать сложно-красивую анимацию
🔥21❤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, которое делает ровно сказанное выше и достаточно неплохо.
👍8🔥3