Полное техническое задание и детальные спецификации находятся в директории docs.
Главный документ — TECHNICAL_SPEC.md.
Клиент (Swift) Бэкэнд (FastAPI)
┌─────────────────┐ HTTPS ┌─────────────────────────┐
│ iOS‑приложение │────────►│ /rates │
│ │◄───────│ /stats │
│ • UI/UX │ │ /iap/verify │
│ • расчёты │ │ /push/register │
│ • CoreData │ └─────────────────────────┘
└─────────────────┘ PostgreSQL
- Запуск: читаем курсы из CoreData → мгновенно рендерим список → в фоне запрашиваем
/rates‐API. - Pull‑to‑refresh: ручное обновление курсов тем же эндпоинтом.
- Конвертация: все вычисления выполняются локально.
- Статистика: события буферизуются локально и отправляются батчем на
/stats, когда есть сеть. - Подписка: StoreKit →
/iap/verify→ сохраняем статус Premium и скрываем рекламу.
| Сущность | Технология | Назначение |
|---|---|---|
Курсы валют updated_at |
CoreData | Оф‑лайн работа |
| Выбор пользователя | UserDefaults | Последний список валют |
| Буфер событий | JSON‑файл | Очередь для /stats |
frontend/
├── ios/ # Swift‑код приложения
│ ├ Convertik/ # Исходный код
│ ├ project.yml # Конфигурация xcodegen
│ ├ Info.plist # Настройки приложения
│ └ Convertik.xcodeproj/ # Сгенерированный проект
└── convertik/ # Веб‑лендинг
├ index.html # Главная страница
├ privacy.html # Политика конфиденциальности
├ terms.html # Условия использования
├ en/ # Английская версия
└ assets/ # CSS, изображения, иконки
backend/ # FastAPI‑сервер
├ app/
│ ├ routes/rates.py
│ ├ routes/stats.py
│ └ …
└ requirements.txt
git clone https://github.com/yourname/convertik.git
cd convertik/frontend/ios
# Установка зависимостей
brew install xcodegen
xcodebuild -downloadPlatform iOS
# Генерация проекта
xcodegen generate
# Сборка и установка на симулятор
xcodebuild -project Convertik.xcodeproj -scheme Convertik -destination "platform=iOS Simulator,name=iPhone 16 Pro" -derivedDataPath ./build install
# Запуск
xcrun simctl launch <SIMULATOR_UDID> com.azg.Convertik
open -a Simulator📱 Текущая версия: 1.4
🌐 Production API: https://convertik.ponravilos.ru
- Стандартный iOS drag handle для перемещения валют
- Автоматическое сохранение порядка валют в UserDefaults
- Чистый интерфейс без красных значков удаления
- Защита рубля - RUB остается в первой позиции
cd convertik/backend
python3 -m venv venv && source venv/bin/activate
pip install -r requirements.txt
export DATABASE_URL=postgresql://user:pass@localhost/currency_db
uvicorn app.main:app --reloadДоступные эндпоинты: /rates, /stats, /iap/verify.
🌐 Live API: https://convertik.ponravilos.ru
📖 Документация: https://convertik.ponravilos.ru/docs
🌍 Веб-лендинг: https://convertik.ponravilos.ru/
Для деплоя на сервер см. backend/README_DEPLOY.md
Для веб-лендинга см. frontend/convertik/README.md
- AppMetrica / Firebase — сбор DAU/MAU, конверсий, крашей.
- APNs (+ FCM при Android) — доставка push‑уведомлений.
- Пуш‑кампании можно создавать через AppMetrica Push или Firebase Messaging.
Фронтенд и бэкэнд общаются только через REST, поэтому могут разрабатываться независимо. Swagger‑документация FastAPI облегчает согласование контрактов.