프로젝트 소개
간판(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 로그인 설정, 개인 키, 비밀번호, 토큰이 포함되지 않습니다.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.