120 lines
3.9 KiB
Markdown
120 lines
3.9 KiB
Markdown
# Montana iOS App
|
||
|
||
Нативное iOS приложение для Montana Protocol.
|
||
|
||
## Функции
|
||
|
||
- **Чаты** — P2P мессенджер между контактами
|
||
- **Кошелёк Ɉ** — баланс и присутствие (1 сек = 1 Ɉ)
|
||
- **Контакты** — полный импорт из iOS телефонной книги
|
||
- **Переводы** — отправка Ɉ по номеру телефона
|
||
- **Юнона AI** — чат с AI ассистентом
|
||
- **Авторизация** — через Telegram бот @junomontanaagibot
|
||
|
||
## Структура
|
||
|
||
```
|
||
MontanaApp/
|
||
├── Montana/
|
||
│ ├── Sources/
|
||
│ │ ├── App.swift # Точка входа + AppState
|
||
│ │ ├── Models.swift # Модели данных (User, Contact, P2PMessage)
|
||
│ │ ├── API.swift # API клиент
|
||
│ │ ├── ContentView.swift # Главный view + TabView
|
||
│ │ └── Views/
|
||
│ │ ├── LoginView.swift # Экран входа через Telegram
|
||
│ │ ├── ChatsView.swift # Список чатов (P2P мессенджер)
|
||
│ │ ├── WalletView.swift # Кошелёк + присутствие
|
||
│ │ ├── ContactsView.swift # Контакты + импорт
|
||
│ │ ├── ChatView.swift # Чат с Юноной AI
|
||
│ │ └── SettingsView.swift # Настройки
|
||
│ ├── Assets.xcassets/ # Цвета и иконки
|
||
│ └── Info.plist # Конфигурация (com.montana.app)
|
||
├── server_p2p_api.py # API endpoints для P2P (добавить на сервер)
|
||
└── README.md
|
||
```
|
||
|
||
## Создание Xcode проекта
|
||
|
||
### 1. Создать проект в Xcode
|
||
|
||
```
|
||
File → New → Project → iOS → App
|
||
- Product Name: Montana
|
||
- Team: [Ваш аккаунт]
|
||
- Organization Identifier: com.montana
|
||
- Interface: SwiftUI
|
||
- Language: Swift
|
||
- Storage: None
|
||
- Убрать все галочки (Tests, Core Data)
|
||
```
|
||
|
||
### 2. Заменить файлы
|
||
|
||
1. Удалить автосгенерированные файлы (`ContentView.swift`, `MontanaApp.swift`)
|
||
2. Скопировать содержимое `Sources/` в проект
|
||
3. Заменить `Assets.xcassets`
|
||
4. Заменить `Info.plist`
|
||
|
||
### 3. Добавить Contacts Framework
|
||
|
||
```
|
||
Project → Target → Build Phases → Link Binary With Libraries
|
||
→ + → Contacts.framework
|
||
```
|
||
|
||
### 4. Настроить Signing
|
||
|
||
```
|
||
Project → Target → Signing & Capabilities
|
||
- Team: [Выбрать]
|
||
- Bundle Identifier: com.montana.app
|
||
```
|
||
|
||
### 5. Запуск
|
||
|
||
```
|
||
⌘ + R — Simulator
|
||
⌘ + R с подключённым iPhone — на устройстве
|
||
```
|
||
|
||
## API
|
||
|
||
Приложение использует API на `http://72.56.102.240`:
|
||
|
||
### Пользователь
|
||
- `GET /api/user` — данные пользователя
|
||
- `GET /api/login-status` — статус входа
|
||
|
||
### Контакты
|
||
- `GET /api/contacts` — список контактов
|
||
- `POST /api/contacts` — сохранить контакт
|
||
|
||
### P2P Мессенджер
|
||
- `GET /api/conversations` — список чатов с последним сообщением
|
||
- `GET /api/messages?with={phone}` — сообщения с контактом
|
||
- `POST /api/messages` — отправить сообщение (body: `{to_phone, content}`)
|
||
|
||
### Кошелёк
|
||
- `POST /api/presence` — синхронизация присутствия
|
||
- `POST /api/transfer` — перевод Ɉ
|
||
|
||
### Юнона AI
|
||
- `POST /api/chat` — сообщение Юноне
|
||
|
||
## App Store
|
||
|
||
### Требования
|
||
- Apple Developer Account ($99/год)
|
||
- Иконка 1024x1024
|
||
- Скриншоты всех размеров
|
||
|
||
### Публикация
|
||
```
|
||
Product → Archive → Distribute App → App Store Connect
|
||
```
|
||
|
||
## Лицензия
|
||
|
||
Montana Protocol © 2026
|