프로젝트 소개

간판(Kanpan, 제품명 Hkline)은 Swift 네이티브 iOS 시세, 관심종목, 복기 앱입니다. 인터페이스는 SwiftUI, 차트는 UIKit/CoreGraphics로 직접 그리며, 앱 단에는 서드파티 의존성이 없고 거래 주문 기능을 제공하지 않습니다. 시세 데이터는 바이낸스 USDT 무기한 공개 API에서 가져옵니다. 설정의 「시세 회선」은 직결(바이낸스 도메인만 사용)과 게이트웨이(두 대의 VPS를 거쳐 OKX 시세를 가져옴) 두 단계를 제공하며, 사용자가 수동으로 선택하고 자동 전환하지 않으며 소스를 혼합하지도 않습니다. 주요 기능 - 스킨: 「이끼·차가움」「도기·따뜻함」「클래식」 세 세트를 제공하며, 각각 라이트와 다크가 있고 시스템을 따르거나 수동으로 지정할 수 있습니다. K선 색상은 하나로 통일되며 스킨은 차트 외 영역에만 영향을 줍니다. - 하단 바: 상시 「그리기 · 차트 · 관심종목 · 섹터 분류 · 설정」 다섯 칸 등폭 탭 바. 「그리기」는 동작으로, 클릭하면 가로 화면에서 그린 뒤 자동으로 되돌아옵니다. - 시세 페이지: 상단 바에는 종목 배지, 종목명, 복기 진입(대기 작업 배지 포함), 검색 진입이 있습니다. 가격 블록은 최신가, 등락액, 등락률을 표시하고 오른쪽에 고정 6칸 통계(포지션/금액, 시가총액/펀딩비, 결제/진폭)가 있습니다. 주기 바는 자주 쓰는 행 6단 등폭이며, 전체 14단(1m~1y)은 「더보기」에서 고정하거나 해제할 수 있습니다. 가격 영역을 좌우로 밀면 종목이 연속 전환됩니다. - 관심종목 페이지: 목록 행에는 종목 배지, 가격, 등락 알약이 있고, 분류 폴더, 정렬(등락률 기준과 「알림선에 가장 가까운」 포함), 길게 눌러 읽기 전용 미리보기 카드, 드래그 정렬, 스와이프 또는 일괄 삭제 후 실행 취소를 지원합니다. 콜드 스타트 시 즐겨찾기가 있으면 관심종목 페이지로, 없으면 BTC로 진입합니다. - 섹터 분류: 하단 바 네 번째 칸으로, 1층 섹터 버블이며 클릭하면 해당 섹터 종목 목록으로 들어가고, 암호화폐와 미국 주식은 상단에서 강제 전환됩니다. - 차트: AICoin의 조작감을 재현했습니다. 메인 차트는 이동평균선(10/30/120/256), 지수 이동평균선, 볼린저 밴드를 지원합니다. 서브 차트는 기본이 거래량, 미결제약정, MACD이며 최대 동시 3개, 그 외 RSI, 스토캐스틱, ATR, 롱숏 비율, 주동 매수매도 비율, 베이시스 등의 후보가 있습니다. 호가 10행 사다리, 두 손가락 확대/축소, 역사적 초점 확대/축소, 수동 Y축, 마지막 봉 우측 끝 붙임과 경계 초과 감쇠를 지원합니다. 41개의 그리기 도구(9개 그룹)를 포함하며 그리기와 차트는 좌표를 공유합니다. - 알림: 독립 모듈입니다. 그리기 후 헤더 가격 행이 확인 카드로 바뀌며 「닿기를 기다림」 또는 「종가가 관통하기를 기다림」 두 가지 판정을 설정할 수 있고 재알림을 지원합니다. 포그라운드는 AlertEngine이 로컬에서 평가하고, 백그라운드는 kanpan-worker 서버가 평가해 동기화로 기록하며 active 상태로 중복 제거합니다. APNs 키가 없어도 기능은 사용 가능하며 잠금 화면 배너만 뜨지 않습니다. - 복기: 한 건 기록, 목록/대기 작업/통계, 상세, 봉별 재관람, 비공개 OHLC 유사 찾기, 기록은 고정된 소속 시세 소스를 가집니다. - 계정: 사용자 이름과 비밀번호로 가입/로그인, Keychain 세션, 기기 관리, 비밀번호 변경, 로그아웃, 개인 데이터는 계정 디렉터리별로 격리, 클라우드 동기화는 대기 큐를 기준으로 하며 이메일 가입은 없습니다. 코드 구조 - 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 클라이언트와 속도 제한, 시세 회선, 게이트웨이 경쟁과 쿨다운. - KanpanData/: 시세 feed, 디렉터리, 과거 OI, 스냅샷과 캐시. - KanpanAccount/, KanpanReview/: 계정 동기화와 복기 모듈. - Backend/kanpan-gateway: 두 대의 VPS 시세 게이트웨이(Python + aiohttp, 읽기 전용 탐지만 수행). - Backend/kanpan-api: Rust 개인 백엔드로 계정, 동기화, 복기 인덱스를 담당합니다. - prototype/: HTML 프로토타입. docs/: 사양 색인, 작업 목록과 검수 증거. 빌드와 검증 Swift 6을 사용하며 배포 대상은 iOS 26.0입니다(iOS 27도 지원 범위이며 26 이하는 더 이상 유지보수하지 않습니다). Kanpan/Kanpan.xcodeproj 또는 루트의 Kanpan.xcworkspace를 열고 Kanpan scheme을 선택합니다. swift test로 KanpanCore, KanpanNetwork, KanpanData, Kanpan/Symbols를 각각 테스트할 수 있으며, make strict와 xcodebuild 시뮬레이터 빌드 명령도 있습니다. 검증은 시뮬레이터 위주로 하며 영향을 받은 UI 케이스는 타임아웃을 두고 실행하고 스크린샷을 남깁니다. 저장소에는 VPS 로그인 설정, 개인 키, 비밀번호, 토큰이 포함되지 않습니다.