Разработка мобильного приложения для инвестиций (Stock Trading)
Торговое приложение — одна из самых технически насыщенных категорий в мобильной разработке. Здесь пересекаются realtime data streaming, регуляторные требования (KYC/AML), высоконагруженные операции с финансовыми данными и UX, где секунда задержки может стоить денег клиенту в буквальном смысле. Собрать «быстро» не получится.
Realtime котировки: WebSocket и не только
REST-запрос каждые 5 секунд — не вариант. Для котировок нужен WebSocket или Server-Sent Events. Популярные провайдеры: Alpaca Markets, Polygon.io, Finnhub, Interactive Brokers TWS API.
На iOS подключение через URLSessionWebSocketTask (нативно, iOS 13+) или через Starscream. Управление переподключением при потере сети — обязательно: экспоненциальный backoff, максимум 5 попыток, потом уведомление пользователю. Network.framework и NWPathMonitor для мониторинга состояния сети.
На Android — OkHttp WebSocket. Особенность: при переводе в фон Android агрессивно убивает сетевые соединения. ForegroundService с Notification для трейдинговых приложений — необходимость, не опция. Пользователь должен получать алерты по ценовым уровням даже когда телефон в кармане.
Свечные графики и технический анализ
Кастомный candlestick chart — нельзя взять любую готовую библиотеку и считать задачу решённой. Требования: рендеринг 1000+ свечей без джанка, горизонтальный scroll + pinch-to-zoom, overlay индикаторов (MA, EMA, Bollinger Bands, RSI).
На Flutter: fl_chart не осилит такой объём данных без сильной кастомизации — лучше CustomPainter с явным управлением перерисовкой. На iOS — либо нативный CAShapeLayer рендеринг, либо Metal/CoreGraphics для максимальной производительности. Данные для графика агрегируем на клиенте: минутные свечи → дневные через OHLC-агрегацию с хранением в in-memory кеше + SQLite для истории.
Order management и брокерская интеграция
Если приложение делает реальные ордера, а не только отображает данные:
Market order / limit order / stop-loss — это OrderRequest с параметрами, который уходит в брокерский API. Alpaca REST API — относительно простой вход для US stocks. Interactive Brokers TWS API — мощный, но требует IB Gateway как прослойку, что усложняет архитектуру мобильного приложения. Fix Protocol — используется в профессиональных системах, в мобильных приложениях редко.
Подтверждение ордера — обязательно 2FA или biometric auth перед отправкой. Это не только UX-паттерн, это де-факто требование регуляторов.
Регуляторные требования
Финансовое приложение с реальными операциями требует лицензирования в большинстве юрисдикций. KYC: интеграция с Onfido, Jumio или Sumsub для верификации документов (OCR + liveness check). AML: мониторинг подозрительных транзакций. GDPR / local data protection — шифрование, right to deletion.
App Store и Google Play могут потребовать подтверждения брокерской лицензии перед публикацией приложений категории Finance с реальными торговыми операциями.
Portfolio и аналитика
Портфель — список позиций с текущей стоимостью, P&L в абсолюте и процентах, XIRR для корректного расчёта доходности с учётом времени взносов/выводов. XIRR не реализован в стандартных мобильных библиотеках — портируй алгоритм Ньютона-Рафсона или используй готовую финансовую lib.
Watchlist с алертами по цене: PriceAlert с instrumentId, targetPrice, direction (above/below). При получении котировки через WebSocket — локальный check против активных алертов. Уведомление — через UNUserNotificationCenter / NotificationManager.
Процесс работы
Начинаем с определения бизнес-модели: paper trading (виртуальные деньги), real trading через брокерский API, или только информационное приложение (котировки, портфель без ордеров). Это кардинально меняет объём работы. Выбираем провайдеров данных и брокерский API, проектируем архитектуру с учётом latency-требований.
Ориентиры по срокам
Информационное приложение с котировками, графиками, watchlist и портфелем (без реальных ордеров): 10–16 недель. Полноценное торговое приложение с ордерами, алертами, KYC и аналитикой: 20–36 недель. Стоимость рассчитывается индивидуально после анализа требований.
Брокерская интеграция удваивает сроки — закладывай это в roadmap заранее.







