Sobre el proyecto

Kanpan (nombre de producto Hkline) es una aplicación nativa en Swift para iOS de cotizaciones, favoritos y revisión. La interfaz usa SwiftUI y los gráficos están dibujados a medida con UIKit/CoreGraphics. La app no tiene dependencias de terceros y no ofrece funciones de órdenes de trading. Los datos de mercado provienen de la interfaz pública de Binance USDT perpetual; la "línea de mercado" en ajustes ofrece dos opciones: conexión directa (solo dominios de Binance) y puerta de enlace (dos VPS que obtienen cotizaciones de OKX), seleccionadas manualmente por el usuario, sin conmutación automática ni mezcla de fuentes. Funciones principales - Temas: ofrece "Musgo frío", "Arcilla cálida" y "Clásico", cada uno con modo claro y oscuro, puede seguir el sistema o especificarse manualmente. Los colores de las velas usan un único conjunto; el tema solo afecta las áreas fuera del gráfico. - Barra inferior: barra de pestañas fija de cinco secciones de igual ancho: "Dibujo · Gráfico · Favoritos · Sectores · Ajustes". "Dibujo" es una acción; al tocarla se dibuja en horizontal y vuelve automáticamente. - Página de cotización: la barra superior incluye insignia del símbolo, nombre del símbolo, entrada a revisión (con insignia de pendientes) y entrada de búsqueda. El bloque de precio muestra último precio, cambio y porcentaje de cambio; a la derecha hay seis celdas fijas de estadísticas (posición/volumen, capitalización/tasa de financiación, liquidación/amplitud). La fila de periodos tiene seis niveles comunes de igual ancho; los 14 niveles completos (1m a 1y) pueden fijarse o quitarse en "Más". Deslizar horizontalmente en la zona de precio permite cambiar de símbolo de forma continua. - Página de favoritos: las filas de la lista incluyen insignia del símbolo, precio y píldora de cambio; admite carpetas de clasificación, ordenación (incluida por porcentaje de cambio y "más cercano a la línea de alerta"), vista previa de solo lectura con pulsación larga, reordenación por arrastre, eliminación por deslizamiento o en lote con deshacer. En arranque en frío, si hay favoritos entra en la página de favoritos; de lo contrario entra en BTC. - Sectores: cuarta pestaña de la barra inferior, burbujas de sectores en un nivel; al entrar se muestra la lista de símbolos del sector. Cripto y acciones de EE. UU. tienen un conmutador superior fijo. - Gráfico: replica la sensación de AICoin. El gráfico principal admite medias móviles (10/30/120/256), medias exponenciales y bandas de Bollinger. Los subgráficos predeterminados son volumen, interés abierto y MACD, con un máximo de tres simultáneos; también hay candidatos como RSI, estocástico, rango verdadero promedio, ratio largo/corto, ratio de compra/venta activa y base. Admite escalera de diez niveles del libro de órdenes, zoom con dos dedos, zoom de foco histórico, eje Y manual, última vela pegada al borde derecho y amortiguación al exceder límites. Incluye 41 herramientas de dibujo (nueve grupos); dibujo y gráfico comparten coordenadas. - Alertas: módulo independiente. Tras dibujar, la fila de precio en la cabecera se convierte en una tarjeta de confirmación; se puede configurar "esperar a que toque" o "esperar a que cierre atravesando", con soporte para repetir alertas. En primer plano las evalúa localmente AlertEngine; en segundo plano las evalúa el servidor kanpan-worker y escribe de vuelta la sincronización, con deduplicación por estado activo. Sin clave APNs la función sigue disponible, solo que no aparecen banners en pantalla de bloqueo. - Revisión: registrar una operación, lista/pendientes/estadísticas, detalle, repaso vela a vela, búsqueda de similitudes con OHLC privado; los registros mantienen fija la fuente de mercado de origen. - Cuenta: registro e inicio de sesión con nombre de usuario y contraseña, sesión en Keychain, gestión de dispositivos, cambio de contraseña, cierre de sesión; los datos personales se aíslan por directorio de cuenta; la sincronización en la nube se basa en la cola de envío pendiente; no hay registro por correo electrónico. Estructura del código - Kanpan/Kanpan/: páginas de la app, incluye Main, Symbols, Sector, Panels, Settings, Drawing, Account, ReviewIntegration. - Kanpan/Symbols, Kanpan/Settings: dos paquetes locales KanpanSymbols y KanpanSettings, con pruebas unitarias. - Kanpan/KanpanUITests/: XCUITest, localiza controles mediante accessibilityIdentifier. - KanpanCore/: algoritmos puros en Swift para coordenadas, diseño, indicadores, dibujo y paletas de temas. - KanpanChart/: gráficos dibujados a medida y gestos UIKit. - KanpanNetwork/: interfaz mínima HTTP/WS, cliente REST/WS de Binance con limitación de velocidad, línea de mercado, competencia entre puertas de enlace y enfriamiento. - KanpanData/: feed de mercado, catálogo, interés abierto histórico, instantáneas y caché. - KanpanAccount/, KanpanReview/: módulos de sincronización de cuenta y revisión. - Backend/kanpan-gateway: puerta de enlace de mercado en dos VPS (Python + aiohttp, solo sondeo de solo lectura). - Backend/kanpan-api: backend personal en Rust, responsable de cuentas, sincronización e índice de revisión. - prototype/: prototipo HTML; docs/: índice de especificaciones, lista de trabajo y evidencia de aceptación. Compilación y verificación Usa Swift 6, objetivo de despliegue iOS 26.0 (iOS 27 también está dentro del rango admitido; versiones anteriores a 26 ya no se mantienen). Abre Kanpan/Kanpan.xcodeproj o Kanpan.xcworkspace en la raíz y selecciona el esquema Kanpan. Se puede usar swift test para probar por separado KanpanCore, KanpanNetwork, KanpanData y Kanpan/Symbols; también hay comandos make strict y compilación con xcodebuild en simulador. La verificación se centra en el simulador; los casos de UI afectados se ejecutan con tiempo de espera y se guardan capturas de pantalla. El repositorio no incluye configuración de acceso a VPS, claves privadas, contraseñas ni tokens.