# Функциональная документация ## Обзор Balance Android — локально-first приложение личных финансов. Основные функции: - доходы; - расходы; - категории; - бюджеты; - аналитика; - корректировка баланса; - server sync; - тёмная/светлая тема; - несколько валют. ## Обзор Показывает: - общий баланс; - доходы текущего месяца; - расходы текущего месяца; - расходы по категориям; - последние операции. ## Операции Поддерживаются: - добавление; - редактирование; - удаление; - поиск; - фильтрация по income/expense; - дата; - сумма; - категория; - заметка. ## Корректировка Пользователь задаёт целевой фактический баланс. Приложение вычисляет: ```text difference = target - current ``` и создаёт специальную transaction с `isBalanceAdjustment=true`. Корректировка меняет общий баланс, но не включается в периодическую аналитику. ## Аналитика Периоды: - месяц; - 3 месяца; - 12 месяцев. Показываются: - доходы; - расходы; - результат; - savings rate; - структура расходов по категориям. ## Бюджеты Можно задать месячный лимит для категории. Бюджет хранится отдельно и синхронизируется с сервером. ## Категории Можно создавать и редактировать пользовательские категории. Поддерживаются: - имя; - тип; - иконка; - emoji; - цвет. Есть 50 вариантов иконок, 30 готовых emoji и палитра из 24 цветов согласно текущему UI. ## Настройки - RUB; - EUR; - USD; - SEK; - system/light/dark; - server URL; - регистрация/login/logout; - ручная sync; - reset sync. ## Offline-first Все основные операции выполняются локально через Room. Сервер нужен только для авторизации и межустройственной синхронизации. ## Background sync При наличии аккаунта и server URL WorkManager пытается синхронизировать данные примерно каждые 15 минут при наличии сети. Точное время зависит от Android WorkManager и системных ограничений батареи/фоновой работы.