Об этом проекте

看盘(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, приватных ключей, паролей или токенов.