3.2 KiB
3.2 KiB
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из workspaceefir369999/Montana(byte-exact conformance с протоколом, тот же ML-DSA-65 / ML-KEM-768 / SHA-256 что и узел) - Project структура через XcodeGen (
project.yml) — детерминированная сборка.xcodeproj
Сборка
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
- 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 — спецификация протокола + Rust reference implementation узла