Android CI / Build and Test (push) Failing after 13m25s
iOS CI / Build and Test SwiftUI App (push) Canceled after 0s
Build Unsigned iOS and macOS Apps / Build Unsigned iOS IPA (push) Canceled after 0s
Build Unsigned iOS and macOS Apps / Build macOS ZIP (push) Canceled after 0s
5.6 KiB
5.6 KiB
Balance — все платформы
Balance — приложение для учёта личных финансов с нативными клиентами для iOS, macOS, watchOS, Android и встроенным web-интерфейсом, а также self-hosted сервер синхронизации на Go. В архиве находится монорепозиторий из трёх независимо собираемых проектов.
| Папка | Назначение | Стек |
|---|---|---|
Balance/ |
iOS 17+, macOS 14+ и watchOS 10+ | SwiftUI + SwiftData |
BalanceAndroid/ |
Android 8.0+ | Kotlin + Jetpack Compose + Room |
BalanceServer/ |
Go-сервер авторизации, синхронизации и встроенный web-клиент | Go + SQLite |
Все пять клиентов — iOS, macOS, watchOS, Android и web — используют одну модель данных и один протокол сервера: операции, пользовательские категории, бюджеты, удаления, регистрация, вход, refresh-токены и постраничная двусторонняя синхронизация. Web-интерфейс открывается по адресу запущенного сервера и не требует отдельной установки.
Быстрый старт
- Поднять сервер — см.
BalanceServer/README.md(Docker или локальная сборка Go-бинарника). - Открыть Apple-проект —
open Balance/Balance.xcodeproj, см.Balance/README.md. - Собрать Android-приложение —
cd BalanceAndroid && ./gradlew assembleDebug, см.BalanceAndroid/README.md. - В любом клиенте укажите адрес запущенного сервера в настройках аккаунта, чтобы включить синхронизацию между устройствами.
Документация
Документация организована на двух уровнях:
- Корневой уровень (
docs/) — то, что относится ко всем платформам сразу: как устроена система в целом, единый протокол синхронизации, сквозная модель данных и требования безопасности. - Уровень подпроекта (
Balance/docs/,BalanceAndroid/docs/,BalanceServer/docs/) — детали конкретной платформы: код, схемы, сборка, деплой.
| Документ | Описание |
|---|---|
AGENTS.md |
Правила для AI-агентов и разработчиков, работающих во всём репозитории |
docs/ARCHITECTURE.md |
Как связаны клиенты и сервер, общая схема системы |
docs/SYNC_PROTOCOL.md |
Единый протокол синхронизации между всеми клиентами и сервером |
docs/DATA_MODEL.md |
Сопоставление доменных сущностей между платформами |
docs/SECURITY.md |
Сквозные требования безопасности (токены, HTTPS, хранение секретов) |
docs/DEVELOPMENT.md |
Как собрать, запустить и протестировать все три проекта |
Документация по подпроектам
- Apple (
Balance/):AGENTS.md·docs/ARCHITECTURE.md·docs/DATA_MODEL.md·docs/SYNC.md·docs/DEVELOPMENT.md·docs/PRODUCT.md - Android (
BalanceAndroid/):AGENTS.md·docs/ARCHITECTURE.md·docs/DATA_MODEL.md·docs/SYNC.md·docs/DEVELOPMENT.md·docs/PRODUCT.md - Server (
BalanceServer/):AGENTS.md·docs/ARCHITECTURE.md·docs/API.md·docs/DATA_MODEL.md·docs/SYNC.md·docs/SECURITY.md·docs/DEVELOPMENT.md·docs/DEPLOYMENT.md·docs/PRODUCT.md
Структура репозитория
Balance/
├── AGENTS.md # общие правила для агентов по всему репо
├── README.md # этот файл
├── docs/ # сводная документация по всем платформам
├── Balance/ # Xcode-проект: iOS + macOS + watchOS
├── BalanceAndroid/ # Android (Gradle/Kotlin)
└── BalanceServer/ # Go-сервер + встроенный web-клиент