delete CloudKit and added BalanceFlutter
Android CI / Build and Test (push) Failing after 21m18s
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

This commit is contained in:
wt committed 2026-10-28 15:37:32 +07:00
1 parent a715eca947
commit 2c278044bb
214 files changed
+13411 -2290

No files matched your search

+8 -81
View File
@@ -1,85 +1,12 @@
# Balance — все платформы
# Balance
Balance — приложение для учёта личных финансов с нативными клиентами
для iOS, macOS, watchOS, Android и встроенным web-интерфейсом, а также
self-hosted сервер синхронизации на Go. В архиве находится
монорепозиторий из трёх независимо собираемых проектов.
Основной новый клиент — **[BalanceFlutter](BalanceFlutter/README.md)**: Flutter с Material 3 для Android, iPhone/iPad, macOS, Windows, Linux и Web. Для Apple Watch сохранён полноценный независимый SwiftUI-клиент. Синхронизация выполняется только через существующий Go-сервер; CloudKit удалён.
| Папка | Назначение | Стек |
| --- | --- | --- |
| [`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) | Как собрать, запустить и протестировать все три проекта |
| `BalanceFlutter` | Новый единый Flutter-клиент, платформенные runners, тесты и сборочные скрипты |
| `Balance` | Исходные Apple-клиенты и активный нативный target `BalanceWatch` |
| `BalanceAndroid` | Исходный Android-клиент для переноса данных и сравнения поведения |
| `BalanceServer` | Существующий Go-сервер авторизации и синхронизации, без изменений |
### Документация по подпроектам
- **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-клиент
```
Начало работы, сборки и перенос данных: [BalanceFlutter/README.md](BalanceFlutter/README.md). Выполненные проверки: [VALIDATION.md](BalanceFlutter/VALIDATION.md). Аудит функций: [FEATURE_PARITY.md](BalanceFlutter/FEATURE_PARITY.md).