#jetpack_compose — Public Fediverse posts
Live and recent posts from across the Fediverse tagged #jetpack_compose, aggregated by home.social.
-
Как мы считаем досрочное погашение кредита: что реально работает в коде
Когда я начал делать кредитный трекер, казалось, что финансовая математика — самая простая часть проекта. Формула аннуитета есть в любом учебнике, Excel справляется за пять минут. Я ошибался. Небольшой контекст: до этого я довольно долго не делал ничего для Android — работал в других областях, экосистема успела заметно измениться. Вернуться оказалось неожиданно приятно: Compose после нескольких лет XML-вёрстки ощущается как глоток свежего воздуха, KSP вместо KAPT работает заметно быстрее, а Room с Flow и корутинами — это уже совсем другой уровень удобства по сравнению с тем, что я помнил. Так что статья отчасти и про это: как выглядит возвращение в Android-разработку после перерыва. Под катом — технический разбор того, как на самом деле устроен кредитный калькулятор внутри Android-приложения. С реальным кодом, реальными компромиссами и честным признанием того, что мы намеренно упростили.
https://habr.com/ru/articles/1027196/
#финтех #мобильная_разработка #Android #личные_финансы #Kotlin #Jetpack_Compose #алгоритмы #опыт #personal_finance #money_management
-
Как мы считаем досрочное погашение кредита: что реально работает в коде
Когда я начал делать кредитный трекер, казалось, что финансовая математика — самая простая часть проекта. Формула аннуитета есть в любом учебнике, Excel справляется за пять минут. Я ошибался. Небольшой контекст: до этого я довольно долго не делал ничего для Android — работал в других областях, экосистема успела заметно измениться. Вернуться оказалось неожиданно приятно: Compose после нескольких лет XML-вёрстки ощущается как глоток свежего воздуха, KSP вместо KAPT работает заметно быстрее, а Room с Flow и корутинами — это уже совсем другой уровень удобства по сравнению с тем, что я помнил. Так что статья отчасти и про это: как выглядит возвращение в Android-разработку после перерыва. Под катом — технический разбор того, как на самом деле устроен кредитный калькулятор внутри Android-приложения. С реальным кодом, реальными компромиссами и честным признанием того, что мы намеренно упростили.
https://habr.com/ru/articles/1027196/
#финтех #мобильная_разработка #Android #личные_финансы #Kotlin #Jetpack_Compose #алгоритмы #опыт #personal_finance #money_management
-
Как мы считаем досрочное погашение кредита: что реально работает в коде
Когда я начал делать кредитный трекер, казалось, что финансовая математика — самая простая часть проекта. Формула аннуитета есть в любом учебнике, Excel справляется за пять минут. Я ошибался. Небольшой контекст: до этого я довольно долго не делал ничего для Android — работал в других областях, экосистема успела заметно измениться. Вернуться оказалось неожиданно приятно: Compose после нескольких лет XML-вёрстки ощущается как глоток свежего воздуха, KSP вместо KAPT работает заметно быстрее, а Room с Flow и корутинами — это уже совсем другой уровень удобства по сравнению с тем, что я помнил. Так что статья отчасти и про это: как выглядит возвращение в Android-разработку после перерыва. Под катом — технический разбор того, как на самом деле устроен кредитный калькулятор внутри Android-приложения. С реальным кодом, реальными компромиссами и честным признанием того, что мы намеренно упростили.
https://habr.com/ru/articles/1027196/
#финтех #мобильная_разработка #Android #личные_финансы #Kotlin #Jetpack_Compose #алгоритмы #опыт #personal_finance #money_management
-
Как мы считаем досрочное погашение кредита: что реально работает в коде
Когда я начал делать кредитный трекер, казалось, что финансовая математика — самая простая часть проекта. Формула аннуитета есть в любом учебнике, Excel справляется за пять минут. Я ошибался. Небольшой контекст: до этого я довольно долго не делал ничего для Android — работал в других областях, экосистема успела заметно измениться. Вернуться оказалось неожиданно приятно: Compose после нескольких лет XML-вёрстки ощущается как глоток свежего воздуха, KSP вместо KAPT работает заметно быстрее, а Room с Flow и корутинами — это уже совсем другой уровень удобства по сравнению с тем, что я помнил. Так что статья отчасти и про это: как выглядит возвращение в Android-разработку после перерыва. Под катом — технический разбор того, как на самом деле устроен кредитный калькулятор внутри Android-приложения. С реальным кодом, реальными компромиссами и честным признанием того, что мы намеренно упростили.
https://habr.com/ru/articles/1027196/
#финтех #мобильная_разработка #Android #личные_финансы #Kotlin #Jetpack_Compose #алгоритмы #опыт #personal_finance #money_management
-
Anubis: заморозка приложений по состоянию VPN
Приложения на вашем телефоне могут обнаружить VPN через SOCKS5 на localhost и слить IP-адрес сервера. Рабочий профиль (Island, Insular, Shelter) скрывает VPN от ConnectivityManager, но не от tun0, маршрутов и локальных портов. Так родился open-souce Anubis, решает проблему иначе - автоматически отключает приложения через pm disable-user при смене состояния VPN. Мёртвое приложение не может ничего детектить, потому что его не существует. Под капот Anubis
https://habr.com/ru/articles/1023352/
#Android #VPN #Shizuku #pm_disableuser #приватность #заморозка_приложений #Kotlin #Jetpack_Compose #reverse_engineering #open_source
-
Anubis: заморозка приложений по состоянию VPN
Приложения на вашем телефоне могут обнаружить VPN через SOCKS5 на localhost и слить IP-адрес сервера. Рабочий профиль (Island, Insular, Shelter) скрывает VPN от ConnectivityManager, но не от tun0, маршрутов и локальных портов. Так родился open-souce Anubis, решает проблему иначе - автоматически отключает приложения через pm disable-user при смене состояния VPN. Мёртвое приложение не может ничего детектить, потому что его не существует. Под капот Anubis
https://habr.com/ru/articles/1023352/
#Android #VPN #Shizuku #pm_disableuser #приватность #заморозка_приложений #Kotlin #Jetpack_Compose #reverse_engineering #open_source
-
Anubis: заморозка приложений по состоянию VPN
Приложения на вашем телефоне могут обнаружить VPN через SOCKS5 на localhost и слить IP-адрес сервера. Рабочий профиль (Island, Insular, Shelter) скрывает VPN от ConnectivityManager, но не от tun0, маршрутов и локальных портов. Так родился open-souce Anubis, решает проблему иначе - автоматически отключает приложения через pm disable-user при смене состояния VPN. Мёртвое приложение не может ничего детектить, потому что его не существует. Под капот Anubis
https://habr.com/ru/articles/1023352/
#Android #VPN #Shizuku #pm_disableuser #приватность #заморозка_приложений #Kotlin #Jetpack_Compose #reverse_engineering #open_source
-
Anubis: заморозка приложений по состоянию VPN
Приложения на вашем телефоне могут обнаружить VPN через SOCKS5 на localhost и слить IP-адрес сервера. Рабочий профиль (Island, Insular, Shelter) скрывает VPN от ConnectivityManager, но не от tun0, маршрутов и локальных портов. Так родился open-souce Anubis, решает проблему иначе - автоматически отключает приложения через pm disable-user при смене состояния VPN. Мёртвое приложение не может ничего детектить, потому что его не существует. Под капот Anubis
https://habr.com/ru/articles/1023352/
#Android #VPN #Shizuku #pm_disableuser #приватность #заморозка_приложений #Kotlin #Jetpack_Compose #reverse_engineering #open_source
-
Разбираем Remote Compose: как Google предлагает строить BDUI
Технологии Backend-Driven UI уже давно используются во многих компаниях, включая Альфа-Банк. Существует множество реализаций этого подхода, и недавно Google представил собственное решение — Remote Compose . Remote Compose выглядит очень перспективной технологией. Фреймворк активно развивается и поддерживается командой Google. Однако на момент написания статьи технология всё ещё находится в alpha-версии, поэтому использовать её на проде пока рано. Но я изучил этот фреймворк и хочу поделиться своим опытом,а когда Remote Compose выйдет в бета-версию вы будете знать, как с ним работать В статье разберём: — общую концепцию Remote Compose, — чем он отличается от классического BDUI, — какие интересные технические решения используются внутри, — несколько практических примеров использования.
https://habr.com/ru/companies/alfa/articles/1018986/
#android #compose #jetpack_compose #bdui #sdui #google #backenddriven_ui #remote_compose #compose_remote
-
Разбираем Remote Compose: как Google предлагает строить BDUI
Технологии Backend-Driven UI уже давно используются во многих компаниях, включая Альфа-Банк. Существует множество реализаций этого подхода, и недавно Google представил собственное решение — Remote Compose . Remote Compose выглядит очень перспективной технологией. Фреймворк активно развивается и поддерживается командой Google. Однако на момент написания статьи технология всё ещё находится в alpha-версии, поэтому использовать её на проде пока рано. Но я изучил этот фреймворк и хочу поделиться своим опытом,а когда Remote Compose выйдет в бета-версию вы будете знать, как с ним работать В статье разберём: — общую концепцию Remote Compose, — чем он отличается от классического BDUI, — какие интересные технические решения используются внутри, — несколько практических примеров использования.
https://habr.com/ru/companies/alfa/articles/1018986/
#android #compose #jetpack_compose #bdui #sdui #google #backenddriven_ui #remote_compose #compose_remote
-
Разбираем Remote Compose: как Google предлагает строить BDUI
Технологии Backend-Driven UI уже давно используются во многих компаниях, включая Альфа-Банк. Существует множество реализаций этого подхода, и недавно Google представил собственное решение — Remote Compose . Remote Compose выглядит очень перспективной технологией. Фреймворк активно развивается и поддерживается командой Google. Однако на момент написания статьи технология всё ещё находится в alpha-версии, поэтому использовать её на проде пока рано. Но я изучил этот фреймворк и хочу поделиться своим опытом,а когда Remote Compose выйдет в бета-версию вы будете знать, как с ним работать В статье разберём: — общую концепцию Remote Compose, — чем он отличается от классического BDUI, — какие интересные технические решения используются внутри, — несколько практических примеров использования.
https://habr.com/ru/companies/alfa/articles/1018986/
#android #compose #jetpack_compose #bdui #sdui #google #backenddriven_ui #remote_compose #compose_remote
-
Разбираем Remote Compose: как Google предлагает строить BDUI
Технологии Backend-Driven UI уже давно используются во многих компаниях, включая Альфа-Банк. Существует множество реализаций этого подхода, и недавно Google представил собственное решение — Remote Compose . Remote Compose выглядит очень перспективной технологией. Фреймворк активно развивается и поддерживается командой Google. Однако на момент написания статьи технология всё ещё находится в alpha-версии, поэтому использовать её на проде пока рано. Но я изучил этот фреймворк и хочу поделиться своим опытом,а когда Remote Compose выйдет в бета-версию вы будете знать, как с ним работать В статье разберём: — общую концепцию Remote Compose, — чем он отличается от классического BDUI, — какие интересные технические решения используются внутри, — несколько практических примеров использования.
https://habr.com/ru/companies/alfa/articles/1018986/
#android #compose #jetpack_compose #bdui #sdui #google #backenddriven_ui #remote_compose #compose_remote
-
Как автор книг по Kotlin проверял мой проект: разбор ошибок в Coroutines и архитектуре
Проведя аудит GitHub, я обнаружил, что полноценных реализаций Gemini-клиента с глубокой проработкой архитектуры практически нет. Я решил стать первым, кто выложит в открытый доступ не просто обертку над API, а готовую архитектурную базу с точным повторением UI оригинального Gemini.
https://habr.com/ru/articles/1018040/
#Android #Kotlin #Coroutines #Jetpack_Compose #AI #Gemini_AI #Structured_Concurrency #Проектирование_систем
-
Как автор книг по Kotlin проверял мой проект: разбор ошибок в Coroutines и архитектуре
Проведя аудит GitHub, я обнаружил, что полноценных реализаций Gemini-клиента с глубокой проработкой архитектуры практически нет. Я решил стать первым, кто выложит в открытый доступ не просто обертку над API, а готовую архитектурную базу с точным повторением UI оригинального Gemini.
https://habr.com/ru/articles/1018040/
#Android #Kotlin #Coroutines #Jetpack_Compose #AI #Gemini_AI #Structured_Concurrency #Проектирование_систем
-
Как автор книг по Kotlin проверял мой проект: разбор ошибок в Coroutines и архитектуре
Проведя аудит GitHub, я обнаружил, что полноценных реализаций Gemini-клиента с глубокой проработкой архитектуры практически нет. Я решил стать первым, кто выложит в открытый доступ не просто обертку над API, а готовую архитектурную базу с точным повторением UI оригинального Gemini.
https://habr.com/ru/articles/1018040/
#Android #Kotlin #Coroutines #Jetpack_Compose #AI #Gemini_AI #Structured_Concurrency #Проектирование_систем
-
Как автор книг по Kotlin проверял мой проект: разбор ошибок в Coroutines и архитектуре
Проведя аудит GitHub, я обнаружил, что полноценных реализаций Gemini-клиента с глубокой проработкой архитектуры практически нет. Я решил стать первым, кто выложит в открытый доступ не просто обертку над API, а готовую архитектурную базу с точным повторением UI оригинального Gemini.
https://habr.com/ru/articles/1018040/
#Android #Kotlin #Coroutines #Jetpack_Compose #AI #Gemini_AI #Structured_Concurrency #Проектирование_систем
-
Как я пытался чинить анимацию в LazyColumn
Привет, Хабр! Я Витя Стро е ску, последние пять лет в свободное от отдыха время занимаюсь разработкой под Android, три из которых — в команде мобильного оператора Т-Мобайл. Поделюсь с вами опытом попытки конфигурации анимаций для айтемов у Compose LazyColumn. Мы переписывали наш главный экран с XML+View на Jetpack Compose, который состоит из списка с различного рода сложности айтемами. В статье разберем, почему возникает рассинхрон, как устроен механизм анимаций внутри LazyColumn, почему кастомный animateItem обречен с самого начала и к какому решению мы пришли в итоге.
https://habr.com/ru/companies/tbank/articles/1009014/
#android #android_development #kotlin #compose #jetpack_compose #lazycolumn #animations #expand_collapse #issue #animate_item
-
Как я пытался чинить анимацию в LazyColumn
Привет, Хабр! Я Витя Стро е ску, последние пять лет в свободное от отдыха время занимаюсь разработкой под Android, три из которых — в команде мобильного оператора Т-Мобайл. Поделюсь с вами опытом попытки конфигурации анимаций для айтемов у Compose LazyColumn. Мы переписывали наш главный экран с XML+View на Jetpack Compose, который состоит из списка с различного рода сложности айтемами. В статье разберем, почему возникает рассинхрон, как устроен механизм анимаций внутри LazyColumn, почему кастомный animateItem обречен с самого начала и к какому решению мы пришли в итоге.
https://habr.com/ru/companies/tbank/articles/1009014/
#android #android_development #kotlin #compose #jetpack_compose #lazycolumn #animations #expand_collapse #issue #animate_item
-
Как я пытался чинить анимацию в LazyColumn
Привет, Хабр! Я Витя Стро е ску, последние пять лет в свободное от отдыха время занимаюсь разработкой под Android, три из которых — в команде мобильного оператора Т-Мобайл. Поделюсь с вами опытом попытки конфигурации анимаций для айтемов у Compose LazyColumn. Мы переписывали наш главный экран с XML+View на Jetpack Compose, который состоит из списка с различного рода сложности айтемами. В статье разберем, почему возникает рассинхрон, как устроен механизм анимаций внутри LazyColumn, почему кастомный animateItem обречен с самого начала и к какому решению мы пришли в итоге.
https://habr.com/ru/companies/tbank/articles/1009014/
#android #android_development #kotlin #compose #jetpack_compose #lazycolumn #animations #expand_collapse #issue #animate_item
-
Как я пытался чинить анимацию в LazyColumn
Привет, Хабр! Я Витя Стро е ску, последние пять лет в свободное от отдыха время занимаюсь разработкой под Android, три из которых — в команде мобильного оператора Т-Мобайл. Поделюсь с вами опытом попытки конфигурации анимаций для айтемов у Compose LazyColumn. Мы переписывали наш главный экран с XML+View на Jetpack Compose, который состоит из списка с различного рода сложности айтемами. В статье разберем, почему возникает рассинхрон, как устроен механизм анимаций внутри LazyColumn, почему кастомный animateItem обречен с самого начала и к какому решению мы пришли в итоге.
https://habr.com/ru/companies/tbank/articles/1009014/
#android #android_development #kotlin #compose #jetpack_compose #lazycolumn #animations #expand_collapse #issue #animate_item
-
Todo Budget v5.0: переписал весь UI с нуля на Jetpack Compose — и теперь ищу тех, кто его сломает
До пятой версии главный экран был функциональным, но визуально скучным. Типичный Material Design без характера. Я получил несколько честных отзывов — в том числе жёстких — и решил переделать всё.
https://habr.com/ru/articles/1007530/
#котлин #мобильная_разработка #приложения_для_android #андроид #kotlin #jetpack_compose #android
-
Todo Budget v5.0: переписал весь UI с нуля на Jetpack Compose — и теперь ищу тех, кто его сломает
До пятой версии главный экран был функциональным, но визуально скучным. Типичный Material Design без характера. Я получил несколько честных отзывов — в том числе жёстких — и решил переделать всё.
https://habr.com/ru/articles/1007530/
#котлин #мобильная_разработка #приложения_для_android #андроид #kotlin #jetpack_compose #android
-
Todo Budget v5.0: переписал весь UI с нуля на Jetpack Compose — и теперь ищу тех, кто его сломает
До пятой версии главный экран был функциональным, но визуально скучным. Типичный Material Design без характера. Я получил несколько честных отзывов — в том числе жёстких — и решил переделать всё.
https://habr.com/ru/articles/1007530/
#котлин #мобильная_разработка #приложения_для_android #андроид #kotlin #jetpack_compose #android
-
Todo Budget v5.0: переписал весь UI с нуля на Jetpack Compose — и теперь ищу тех, кто его сломает
До пятой версии главный экран был функциональным, но визуально скучным. Типичный Material Design без характера. Я получил несколько честных отзывов — в том числе жёстких — и решил переделать всё.
https://habr.com/ru/articles/1007530/
#котлин #мобильная_разработка #приложения_для_android #андроид #kotlin #jetpack_compose #android
-
Не Vibe-Coding, а инженерия с AI: как я за полгода сделал Android-приложение: социальный трекер привычек
Не Vibe-Coding, а инженерия с AI: Как за полгода я сделал Android-приложение "Трекер привычек" с социальными функциями, синхронизацией, офлайн-режимом и виджетом
https://habr.com/ru/articles/1005684/
#android #kotlin #jetpack_compose #room #firebase #offlinefirst #mobile_development #mobile_architecture #ai_in_development #vibecoding
-
Не Vibe-Coding, а инженерия с AI: как я за полгода сделал Android-приложение: социальный трекер привычек
Не Vibe-Coding, а инженерия с AI: Как за полгода я сделал Android-приложение "Трекер привычек" с социальными функциями, синхронизацией, офлайн-режимом и виджетом
https://habr.com/ru/articles/1005684/
#android #kotlin #jetpack_compose #room #firebase #offlinefirst #mobile_development #mobile_architecture #ai_in_development #vibecoding
-
Не Vibe-Coding, а инженерия с AI: как я за полгода сделал Android-приложение: социальный трекер привычек
Не Vibe-Coding, а инженерия с AI: Как за полгода я сделал Android-приложение "Трекер привычек" с социальными функциями, синхронизацией, офлайн-режимом и виджетом
https://habr.com/ru/articles/1005684/
#android #kotlin #jetpack_compose #room #firebase #offlinefirst #mobile_development #mobile_architecture #ai_in_development #vibecoding
-
Не Vibe-Coding, а инженерия с AI: как я за полгода сделал Android-приложение: социальный трекер привычек
Не Vibe-Coding, а инженерия с AI: Как за полгода я сделал Android-приложение "Трекер привычек" с социальными функциями, синхронизацией, офлайн-режимом и виджетом
https://habr.com/ru/articles/1005684/
#android #kotlin #jetpack_compose #room #firebase #offlinefirst #mobile_development #mobile_architecture #ai_in_development #vibecoding
-
Как я в одиночку написал полноценное финансовое Android-приложение на Jetpack Compose
Это не очередной TODO-лист и не очередной трекер расходов. Это комбайн, в котором живут задачи, заметки, бюджет, аналитика, помодоро-таймер и цели накоплений
https://habr.com/ru/articles/1003400/
#android #kotlin #jetpack_compose #room #material_3 #разработка_мобильных_приложений
-
Как я в одиночку написал полноценное финансовое Android-приложение на Jetpack Compose
Это не очередной TODO-лист и не очередной трекер расходов. Это комбайн, в котором живут задачи, заметки, бюджет, аналитика, помодоро-таймер и цели накоплений
https://habr.com/ru/articles/1003400/
#android #kotlin #jetpack_compose #room #material_3 #разработка_мобильных_приложений
-
Как я в одиночку написал полноценное финансовое Android-приложение на Jetpack Compose
Это не очередной TODO-лист и не очередной трекер расходов. Это комбайн, в котором живут задачи, заметки, бюджет, аналитика, помодоро-таймер и цели накоплений
https://habr.com/ru/articles/1003400/
#android #kotlin #jetpack_compose #room #material_3 #разработка_мобильных_приложений
-
Как я в одиночку написал полноценное финансовое Android-приложение на Jetpack Compose
Это не очередной TODO-лист и не очередной трекер расходов. Это комбайн, в котором живут задачи, заметки, бюджет, аналитика, помодоро-таймер и цели накоплений
https://habr.com/ru/articles/1003400/
#android #kotlin #jetpack_compose #room #material_3 #разработка_мобильных_приложений
-
Как я добавил 10 фич в Android-приложение за один заход: Todo Budget v4.0
Как я добавил 10 фич в Android-приложение за один заход: Todo Budget v4.0 Привет, Хабр! Продолжаю серию о разработке Todo Budget — Android-приложения, объединяющего задачи, бюджет, заметки и помодоро-таймер в одном месте.
-
Как я добавил 10 фич в Android-приложение за один заход: Todo Budget v4.0
Как я добавил 10 фич в Android-приложение за один заход: Todo Budget v4.0 Привет, Хабр! Продолжаю серию о разработке Todo Budget — Android-приложения, объединяющего задачи, бюджет, заметки и помодоро-таймер в одном месте.
-
Как я добавил 10 фич в Android-приложение за один заход: Todo Budget v4.0
Как я добавил 10 фич в Android-приложение за один заход: Todo Budget v4.0 Привет, Хабр! Продолжаю серию о разработке Todo Budget — Android-приложения, объединяющего задачи, бюджет, заметки и помодоро-таймер в одном месте.
-
Как я добавил 10 фич в Android-приложение за один заход: Todo Budget v4.0
Как я добавил 10 фич в Android-приложение за один заход: Todo Budget v4.0 Привет, Хабр! Продолжаю серию о разработке Todo Budget — Android-приложения, объединяющего задачи, бюджет, заметки и помодоро-таймер в одном месте.
-
Как я сделал полностью бесплатное Android-приложение для задач и финансов — и почему не взял ни копейки
Мне нужен был простой инструмент: список задач, учёт расходов и таймер для фокусировки. Казалось бы — чего проще? Но вот реальность...
https://habr.com/ru/articles/1002356/
#android #kotlin #jetpack_compose #room #бесплатно #задачи #бюджет #помодоро #rustore
-
Как я сделал полностью бесплатное Android-приложение для задач и финансов — и почему не взял ни копейки
Мне нужен был простой инструмент: список задач, учёт расходов и таймер для фокусировки. Казалось бы — чего проще? Но вот реальность...
https://habr.com/ru/articles/1002356/
#android #kotlin #jetpack_compose #room #бесплатно #задачи #бюджет #помодоро #rustore
-
Как я сделал полностью бесплатное Android-приложение для задач и финансов — и почему не взял ни копейки
Мне нужен был простой инструмент: список задач, учёт расходов и таймер для фокусировки. Казалось бы — чего проще? Но вот реальность...
https://habr.com/ru/articles/1002356/
#android #kotlin #jetpack_compose #room #бесплатно #задачи #бюджет #помодоро #rustore
-
Как я сделал полностью бесплатное Android-приложение для задач и финансов — и почему не взял ни копейки
Мне нужен был простой инструмент: список задач, учёт расходов и таймер для фокусировки. Казалось бы — чего проще? Но вот реальность...
https://habr.com/ru/articles/1002356/
#android #kotlin #jetpack_compose #room #бесплатно #задачи #бюджет #помодоро #rustore
-
250 тестов вручную? Нет, спасибо. Автоматизируем screenshot-тестирование через Compose Preview
Давайте представим типичную ситуацию для разработчика: вы делаете фичу, код проходит ревью, тесты «зеленые». На первый взгляд все хорошо, вы отправляете её в релиз. А потом на проде обнаруживается визуальный баг: текст наехал на текст, цвет оказался не тот, отступ съехал. Бывало такое? В чем проблема – ведь тесты были пройдены успешно? Дело в том, что юнит-тесты проверяют только логику. Им все равно на то, как выглядит экран. А screenshot-тесты нужно писать вручную в большом количестве. В классическом подходе мы прописываем каждый тест, но что если у вас 50 экранов по 5 состояний на каждый? Так как же быть, если не хочется писать 250 тестов вручную, а проверку сделать нужно? Узнать ответ на вопрос
https://habr.com/ru/companies/sovcombank_technologies/articles/993170/
#Android #Jetpack_Compose #screenshotтесты #Roborazzi #автоматизация_тестирования #Kotlin #UIтесты #Preview #визуальное_тестирование #cicd
-
250 тестов вручную? Нет, спасибо. Автоматизируем screenshot-тестирование через Compose Preview
Давайте представим типичную ситуацию для разработчика: вы делаете фичу, код проходит ревью, тесты «зеленые». На первый взгляд все хорошо, вы отправляете её в релиз. А потом на проде обнаруживается визуальный баг: текст наехал на текст, цвет оказался не тот, отступ съехал. Бывало такое? В чем проблема – ведь тесты были пройдены успешно? Дело в том, что юнит-тесты проверяют только логику. Им все равно на то, как выглядит экран. А screenshot-тесты нужно писать вручную в большом количестве. В классическом подходе мы прописываем каждый тест, но что если у вас 50 экранов по 5 состояний на каждый? Так как же быть, если не хочется писать 250 тестов вручную, а проверку сделать нужно? Узнать ответ на вопрос
https://habr.com/ru/companies/sovcombank_technologies/articles/993170/
#Android #Jetpack_Compose #screenshotтесты #Roborazzi #автоматизация_тестирования #Kotlin #UIтесты #Preview #визуальное_тестирование #cicd
-
250 тестов вручную? Нет, спасибо. Автоматизируем screenshot-тестирование через Compose Preview
Давайте представим типичную ситуацию для разработчика: вы делаете фичу, код проходит ревью, тесты «зеленые». На первый взгляд все хорошо, вы отправляете её в релиз. А потом на проде обнаруживается визуальный баг: текст наехал на текст, цвет оказался не тот, отступ съехал. Бывало такое? В чем проблема – ведь тесты были пройдены успешно? Дело в том, что юнит-тесты проверяют только логику. Им все равно на то, как выглядит экран. А screenshot-тесты нужно писать вручную в большом количестве. В классическом подходе мы прописываем каждый тест, но что если у вас 50 экранов по 5 состояний на каждый? Так как же быть, если не хочется писать 250 тестов вручную, а проверку сделать нужно? Узнать ответ на вопрос
https://habr.com/ru/companies/sovcombank_technologies/articles/993170/
#Android #Jetpack_Compose #screenshotтесты #Roborazzi #автоматизация_тестирования #Kotlin #UIтесты #Preview #визуальное_тестирование #cicd
-
250 тестов вручную? Нет, спасибо. Автоматизируем screenshot-тестирование через Compose Preview
Давайте представим типичную ситуацию для разработчика: вы делаете фичу, код проходит ревью, тесты «зеленые». На первый взгляд все хорошо, вы отправляете её в релиз. А потом на проде обнаруживается визуальный баг: текст наехал на текст, цвет оказался не тот, отступ съехал. Бывало такое? В чем проблема – ведь тесты были пройдены успешно? Дело в том, что юнит-тесты проверяют только логику. Им все равно на то, как выглядит экран. А screenshot-тесты нужно писать вручную в большом количестве. В классическом подходе мы прописываем каждый тест, но что если у вас 50 экранов по 5 состояний на каждый? Так как же быть, если не хочется писать 250 тестов вручную, а проверку сделать нужно? Узнать ответ на вопрос
https://habr.com/ru/companies/sovcombank_technologies/articles/993170/
#Android #Jetpack_Compose #screenshotтесты #Roborazzi #автоматизация_тестирования #Kotlin #UIтесты #Preview #визуальное_тестирование #cicd
-
Паттерн Memento в Android: полный разбор сохранения состояния
Если вы хоть раз теряли пользовательский ввод после поворота экрана или возвращались к приложению из фона и обнаруживали пустой экран вместо заполненной формы — вы знаете, о чем пойдет речь. Сохранение состояния в Android — одна из тех тем, которые кажутся простыми до первого бага в проде. Система может убить процесс в любой момент, конфигурация меняется, а пользователь ожидает, что все останется на своих местах. В статье о том, как паттерн Memento реализуется в Android через CustomView, SavedStateHandle, Compose и навигацию.
https://habr.com/ru/articles/990568/
#android #kotlin #паттерны #паттерны_проектирования #паттерны_программирования #паттерн #memento #desing_patterns #jetpack_compose #custom_view
-
Паттерн Memento в Android: полный разбор сохранения состояния
Если вы хоть раз теряли пользовательский ввод после поворота экрана или возвращались к приложению из фона и обнаруживали пустой экран вместо заполненной формы — вы знаете, о чем пойдет речь. Сохранение состояния в Android — одна из тех тем, которые кажутся простыми до первого бага в проде. Система может убить процесс в любой момент, конфигурация меняется, а пользователь ожидает, что все останется на своих местах. В статье о том, как паттерн Memento реализуется в Android через CustomView, SavedStateHandle, Compose и навигацию.
https://habr.com/ru/articles/990568/
#android #kotlin #паттерны #паттерны_проектирования #паттерны_программирования #паттерн #memento #desing_patterns #jetpack_compose #custom_view
-
Паттерн Memento в Android: полный разбор сохранения состояния
Если вы хоть раз теряли пользовательский ввод после поворота экрана или возвращались к приложению из фона и обнаруживали пустой экран вместо заполненной формы — вы знаете, о чем пойдет речь. Сохранение состояния в Android — одна из тех тем, которые кажутся простыми до первого бага в проде. Система может убить процесс в любой момент, конфигурация меняется, а пользователь ожидает, что все останется на своих местах. В статье о том, как паттерн Memento реализуется в Android через CustomView, SavedStateHandle, Compose и навигацию.
https://habr.com/ru/articles/990568/
#android #kotlin #паттерны #паттерны_проектирования #паттерны_программирования #паттерн #memento #desing_patterns #jetpack_compose #custom_view
-
Паттерн Memento в Android: полный разбор сохранения состояния
Если вы хоть раз теряли пользовательский ввод после поворота экрана или возвращались к приложению из фона и обнаруживали пустой экран вместо заполненной формы — вы знаете, о чем пойдет речь. Сохранение состояния в Android — одна из тех тем, которые кажутся простыми до первого бага в проде. Система может убить процесс в любой момент, конфигурация меняется, а пользователь ожидает, что все останется на своих местах. В статье о том, как паттерн Memento реализуется в Android через CustomView, SavedStateHandle, Compose и навигацию.
https://habr.com/ru/articles/990568/
#android #kotlin #паттерны #паттерны_проектирования #паттерны_программирования #паттерн #memento #desing_patterns #jetpack_compose #custom_view
-
Создаём iOS-style Wheel Picker в Jetpack Compose. Часть 1
Представьте классический сценарий в мобильном приложении: пользователю нужно выбрать год рождения, час будильника или количество товаров в корзине. На iOS для таких случаев давно существует элегантное и интуитивное решение - Wheel Picker (или UIPickerView ). Этот компонент стал неотъемлемой частью языка дизайна Apple. В этой статье я расскажу вам, как реализовать такой же компонент в Android. Приготовьтесь, будет много математики!
-
Создаём iOS-style Wheel Picker в Jetpack Compose. Часть 1
Представьте классический сценарий в мобильном приложении: пользователю нужно выбрать год рождения, час будильника или количество товаров в корзине. На iOS для таких случаев давно существует элегантное и интуитивное решение - Wheel Picker (или UIPickerView ). Этот компонент стал неотъемлемой частью языка дизайна Apple. В этой статье я расскажу вам, как реализовать такой же компонент в Android. Приготовьтесь, будет много математики!