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
86 lines
5.6 KiB
Markdown
86 lines
5.6 KiB
Markdown
# Balance — все платформы
|
|
|
|
Balance — приложение для учёта личных финансов с нативными клиентами
|
|
для iOS, macOS, watchOS, Android и встроенным web-интерфейсом, а также
|
|
self-hosted сервер синхронизации на Go. В архиве находится
|
|
монорепозиторий из трёх независимо собираемых проектов.
|
|
|
|
| Папка | Назначение | Стек |
|
|
| --- | --- | --- |
|
|
| [`Balance/`](Balance/README.md) | iOS 17+, macOS 14+ и watchOS 10+ | SwiftUI + SwiftData |
|
|
| [`BalanceAndroid/`](BalanceAndroid/README.md) | Android 8.0+ | Kotlin + Jetpack Compose + Room |
|
|
| [`BalanceServer/`](BalanceServer/README.md) | Go-сервер авторизации, синхронизации и встроенный web-клиент | Go + SQLite |
|
|
|
|
Все пять клиентов — iOS, macOS, watchOS, Android и web — используют
|
|
одну модель данных и один протокол сервера: операции, пользовательские
|
|
категории, бюджеты, удаления, регистрация, вход, refresh-токены и
|
|
постраничная двусторонняя синхронизация. Web-интерфейс открывается по
|
|
адресу запущенного сервера и не требует отдельной установки.
|
|
|
|
## Быстрый старт
|
|
|
|
1. **Поднять сервер** — см. [`BalanceServer/README.md`](BalanceServer/README.md#quick-start-with-docker)
|
|
(Docker или локальная сборка Go-бинарника).
|
|
2. **Открыть Apple-проект** — `open Balance/Balance.xcodeproj`, см.
|
|
[`Balance/README.md`](Balance/README.md).
|
|
3. **Собрать Android-приложение** — `cd BalanceAndroid && ./gradlew assembleDebug`,
|
|
см. [`BalanceAndroid/README.md`](BalanceAndroid/README.md).
|
|
4. В любом клиенте укажите адрес запущенного сервера в настройках
|
|
аккаунта, чтобы включить синхронизацию между устройствами.
|
|
|
|
## Документация
|
|
|
|
Документация организована на двух уровнях:
|
|
|
|
- **Корневой уровень** (`docs/`) — то, что относится ко всем платформам
|
|
сразу: как устроена система в целом, единый протокол синхронизации,
|
|
сквозная модель данных и требования безопасности.
|
|
- **Уровень подпроекта** (`Balance/docs/`, `BalanceAndroid/docs/`,
|
|
`BalanceServer/docs/`) — детали конкретной платформы: код, схемы,
|
|
сборка, деплой.
|
|
|
|
| Документ | Описание |
|
|
| --- | --- |
|
|
| [`AGENTS.md`](AGENTS.md) | Правила для AI-агентов и разработчиков, работающих во всём репозитории |
|
|
| [`docs/ARCHITECTURE.md`](docs/ARCHITECTURE.md) | Как связаны клиенты и сервер, общая схема системы |
|
|
| [`docs/SYNC_PROTOCOL.md`](docs/SYNC_PROTOCOL.md) | Единый протокол синхронизации между всеми клиентами и сервером |
|
|
| [`docs/DATA_MODEL.md`](docs/DATA_MODEL.md) | Сопоставление доменных сущностей между платформами |
|
|
| [`docs/SECURITY.md`](docs/SECURITY.md) | Сквозные требования безопасности (токены, HTTPS, хранение секретов) |
|
|
| [`docs/DEVELOPMENT.md`](docs/DEVELOPMENT.md) | Как собрать, запустить и протестировать все три проекта |
|
|
|
|
### Документация по подпроектам
|
|
|
|
- **Apple (`Balance/`):** [`AGENTS.md`](Balance/AGENTS.md) ·
|
|
[`docs/ARCHITECTURE.md`](Balance/docs/ARCHITECTURE.md) ·
|
|
[`docs/DATA_MODEL.md`](Balance/docs/DATA_MODEL.md) ·
|
|
[`docs/SYNC.md`](Balance/docs/SYNC.md) ·
|
|
[`docs/DEVELOPMENT.md`](Balance/docs/DEVELOPMENT.md) ·
|
|
[`docs/PRODUCT.md`](Balance/docs/PRODUCT.md)
|
|
- **Android (`BalanceAndroid/`):** [`AGENTS.md`](BalanceAndroid/AGENTS.md) ·
|
|
[`docs/ARCHITECTURE.md`](BalanceAndroid/docs/ARCHITECTURE.md) ·
|
|
[`docs/DATA_MODEL.md`](BalanceAndroid/docs/DATA_MODEL.md) ·
|
|
[`docs/SYNC.md`](BalanceAndroid/docs/SYNC.md) ·
|
|
[`docs/DEVELOPMENT.md`](BalanceAndroid/docs/DEVELOPMENT.md) ·
|
|
[`docs/PRODUCT.md`](BalanceAndroid/docs/PRODUCT.md)
|
|
- **Server (`BalanceServer/`):** [`AGENTS.md`](BalanceServer/AGENTS.md) ·
|
|
[`docs/ARCHITECTURE.md`](BalanceServer/docs/ARCHITECTURE.md) ·
|
|
[`docs/API.md`](BalanceServer/docs/API.md) ·
|
|
[`docs/DATA_MODEL.md`](BalanceServer/docs/DATA_MODEL.md) ·
|
|
[`docs/SYNC.md`](BalanceServer/docs/SYNC.md) ·
|
|
[`docs/SECURITY.md`](BalanceServer/docs/SECURITY.md) ·
|
|
[`docs/DEVELOPMENT.md`](BalanceServer/docs/DEVELOPMENT.md) ·
|
|
[`docs/DEPLOYMENT.md`](BalanceServer/docs/DEPLOYMENT.md) ·
|
|
[`docs/PRODUCT.md`](BalanceServer/docs/PRODUCT.md)
|
|
|
|
## Структура репозитория
|
|
|
|
```text
|
|
Balance/
|
|
├── AGENTS.md # общие правила для агентов по всему репо
|
|
├── README.md # этот файл
|
|
├── docs/ # сводная документация по всем платформам
|
|
├── Balance/ # Xcode-проект: iOS + macOS + watchOS
|
|
├── BalanceAndroid/ # Android (Gradle/Kotlin)
|
|
└── BalanceServer/ # Go-сервер + встроенный web-клиент
|
|
```
|