Об этом проекте
看盘(Kanpan,название продукта Hkline)— это нативное iOS-приложение на Swift для просмотра котировок, избранного и разбора сделок. Интерфейс построен на SwiftUI, графики нарисованы вручную средствами UIKit/CoreGraphics; на стороне приложения нет сторонних зависимостей, функция торговли и размещения ордеров отсутствует. Рыночные данные поступают из публичного API бессрочных USDT-фьючерсов Binance; в настройках «Линия котировок» предлагает два варианта — прямое подключение (только через домен Binance) и шлюз (через два VPS для получения котировок OKX), пользователь выбирает вручную, автоматического переключения нет, источники не смешиваются.
Основные функции
- Скины: три набора — «Мох·холодный», «Глина·тёплый», «Классика», у каждого светлая и тёмная темы, можно следовать системе или задать вручную. Цвета K-линий едины, скин влияет только на область вне графика.
- Нижняя панель: постоянная панель вкладок из пяти равных по ширине ячеек «Рисование · График · Избранное · Категории секторов · Настройки»; «Рисование» — это действие, при нажатии открывается альбомная ориентация для рисования и автоматически возвращается обратно.
- Страница котировок: верхняя панель содержит значок инструмента, название инструмента, вход в разбор (со счётчиком задач) и вход в поиск; блок цены показывает последнюю цену, изменение и процент изменения, справа фиксированные шесть ячеек статистики (позиция/объём, капитализация/ставка, расчёт/амплитуда). Строка периодов: шесть равных по ширине ячеек в常用ной строке, все 14 периодов (от 1m до 1y) можно закрепить или открепить в «Ещё». Горизонтальный свайп в области цены позволяет последовательно переключать инструменты.
- Страница избранного: строки списка содержат значок инструмента, цену и «пилюлю» изменения, поддерживают папки категорий, сортировку (включая по проценту изменения и «ближайшие к линии напоминания»), долгое нажатие для карточки предпросмотра только для чтения, перетаскивание для сортировки, удаление свайпом или массово с отменой. При холодном старте, если есть избранное, открывается страница избранного, иначе — BTC.
- Категории секторов: четвёртая ячейка нижней панели, один уровень пузырьков секторов, при нажатии открывается список инструментов этого сектора, криптовалюты и акции США переключаются жёстко в верхней части.
- График: воспроизводит ощущение AICoin. Основной график поддерживает скользящие средние (10/30/120/256), индексные скользящие средние, полосы Боллинджера; дополнительные графики по умолчанию — объём, открытый интерес, сглаженное схождение/расхождение, максимум три одновременно, также доступны кандидаты: относительная сила, стохастический индикатор, истинный диапазон, соотношение лонг/шорт, соотношение активных покупок/продаж, базис и другие. Поддерживает лестницу стакана из десяти строк, масштабирование двумя пальцами, масштабирование с фокусом на истории, ручную ось Y, прижатие последнего бара к правому краю и демпфирование при выходе за границы. Включает 41 инструмент рисования (девять групп), рисование и график используют общие координаты.
- Напоминания: отдельный модуль. После рисования строка цены в заголовке превращается в карточку подтверждения, можно задать два условия срабатывания — «когда коснётся» или «когда закроется выше/ниже», поддерживается повторное напоминание. На переднем плане локальная оценка выполняется AlertEngine, в фоне серверная оценка выполняется сервисом kanpan-worker и записывается обратно для синхронизации, дедупликация по статусу active. Без ключа APNs функция остаётся работоспособной, только не показываются баннеры на экране блокировки.
- Разбор: запись одной сделки, список/задачи/статистика, детали, повторное прохождение по барам, поиск похожих по приватным OHLC, запись фиксирует принадлежность к источнику котировок.
- Аккаунт: регистрация и вход по имени пользователя и паролю, сессия в Keychain, управление устройствами, смена пароля, удаление аккаунта, личные данные изолированы по каталогам аккаунтов, облачная синхронизация основана на очереди отложенных операций, регистрация по email отсутствует.
Структура кода
- Kanpan/Kanpan/: страницы приложения, включая Main, Symbols, Sector, Panels, Settings, Drawing, Account, ReviewIntegration.
- Kanpan/Symbols, Kanpan/Settings: два локальных пакета KanpanSymbols и KanpanSettings с модульными тестами.
- Kanpan/KanpanUITests/: XCUITest, поиск элементов управления по accessibilityIdentifier.
- KanpanCore/: чистые алгоритмы на Swift — координаты, компоновка, индикаторы, рисование, палитры скинов.
- KanpanChart/: нарисованный вручную график и жесты UIKit.
- KanpanNetwork/: минимальные интерфейсы HTTP/WS, клиенты REST/WS Binance и ограничение частоты, линии котировок, гонка шлюзов и охлаждение.
- KanpanData/: поток котировок, каталог, исторический OI, снимки и кэш.
- KanpanAccount/, KanpanReview/: модули синхронизации аккаунта и разбора.
- Backend/kanpan-gateway: шлюз котировок на двух VPS (Python + aiohttp, только read-only-зондирование).
- Backend/kanpan-api: персональный бэкенд на Rust, отвечает за аккаунты, синхронизацию и индекс разбора.
- prototype/: HTML-прототип; docs/: индекс спецификаций, рабочий список и доказательства приёмки.
Сборка и проверка
Используется Swift 6, целевая версия развёртывания iOS 26.0 (iOS 27 также входит в поддерживаемый диапазон, версии ниже 26 больше не поддерживаются). Откройте Kanpan/Kanpan.xcodeproj или Kanpan.xcworkspace в корневом каталоге, выберите схему Kanpan. Можно отдельно тестировать KanpanCore, KanpanNetwork, KanpanData, Kanpan/Symbols командой swift test, также есть make strict и команда сборки в симуляторе через xcodebuild. Проверка выполняется преимущественно в симуляторе, затронутые UI-тесты запускаются с тайм-аутом и сохранением скриншотов. Репозиторий не содержит конфигураций входа на VPS, приватных ключей, паролей или токенов.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.