montana/Монтана-iOS/README.md

70 lines
3.2 KiB
Markdown
Raw Normal View History

# Montana iOS App
iOS реализация Montana App — персональный интернет в одном приложении (кошелёк, мессенджер, каналы, контакты, профиль, ИИ-агент Юнона, браузер).
**Версия спеки:** Montana App v3.11.0 (2026-05-01).
**Версия приложения:** v0.1.0 (Foundation MVP).
## Архитектура
- **Swift 5.9+ + SwiftUI**, iOS 16.0+, iPhone-only (TARGETED_DEVICE_FAMILY=1)
- **Криптография через FFI к Rust** — `mt-mnemonic` + `mt-crypto` из workspace `efir369999/Montana` (byte-exact conformance с протоколом, тот же ML-DSA-65 / ML-KEM-768 / SHA-256 что и узел)
- **Project структура через XcodeGen** (`project.yml`) — детерминированная сборка `.xcodeproj`
## Сборка
```bash
brew install xcodegen
cd MontanaApp
xcodegen generate
open MontanaApp.xcodeproj
```
Затем в Xcode выбрать iOS Simulator → Run.
## Структура
```
MontanaApp/
├── project.yml — XcodeGen project definition
├── README.md
├── LICENSE
├── Sources/MontanaApp/
│ ├── App/ — entry point (SwiftUI App)
│ ├── Identity/ — мнемоника + master_seed + derived keys
│ ├── Crypto/ — Swift wrapper над RustBridge
│ ├── Wallet/ — Transfer + balance + history
│ ├── Messenger/ — Double Ratchet PQ
│ ├── Contacts/ — QR + petname-ы
│ ├── Profile/ — ProfileBlob
│ └── UI/
│ ├── Onboarding/ — welcome + mnemonic generation
│ └── Components/ — переиспользуемые view-компоненты
├── Tests/MontanaAppTests/
├── Resources/ — Info.plist, Assets.xcassets
├── RustBridge/ — FFI к mt-mnemonic / mt-crypto
└── docs/ — заметки реализации
```
## Roadmap
- [x] **Phase 0** — Project structure + XcodeGen
- [ ] **Phase 1** — Rust→iOS bridge (xcframework build для mt-mnemonic + mt-crypto)
- [ ] **Phase 2** — Identity module (mnemonic + derive keys)
- [ ] **Phase 3** — Onboarding UI (welcome → mnemonic create/import → identity)
- [ ] **Phase 4** — Wallet (Transfer + balance)
- [ ] **Phase 5** — Messenger (Double Ratchet PQ)
- [ ] **Phase 6** — Channels (Content Layer reader)
- [ ] **Phase 7** — Contacts (QR + petnames)
- [ ] **Phase 8** — Profile (ProfileBlob)
- [ ] **Phase 9** — Junona (ИИ-агент + sandbox + permissions)
- [ ] **Phase 10** — Browser (траффик-маскировка)
## Лицензия
Apache-2.0 OR MIT (то же что и Rust workspace efir369999/Montana).
## Связанные репозитории
- [efir369999/Montana](https://github.com/efir369999/Montana) — спецификация протокола + Rust reference implementation узла