montana/iOS/Apps/MontanaApp/README.md

3.2 KiB
Raw Permalink Blame 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 к Rustmt-mnemonic + mt-crypto из workspace efir369999/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 узла