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

70 lines
3.2 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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 узла