Game đo thời gian gập kín rồi mở phẳng iPhone Duo, xếp hạng toàn cầu. Spec: doc "Duo Fast — Product Spec" (Claude Docs).
| Thư mục | Nội dung |
|---|---|
protocol/ |
Giao thức trial, tham số, test vector dùng chung, hợp đồng API — nguồn sự thật cho cả app và server |
ios/ |
App SwiftUI (xcodegen project.yml) + package DuoFastCore (TrialEngine, TrialSession, API client) |
backend/ |
Cloudflare Workers + D1 |
cd ios/Packages/DuoFastCore && swift test # engine + session, chạy trên macOS
cd ios && xcodegen generate # tạo DuoFast.xcodeprojBản Debug dùng bản lề giả (SIMULATED_HINGE) để chạy trên simulator: thanh trượt góc + nút "Gập–mở nhanh".
Build bằng Xcode 27.1 beta (deployment target iOS 27.1):
DEVELOPER_DIR=/Applications/Xcode-27.1-beta.app/Contents/Developer xcodebuild ...
HingeInput dùng SwiftUI onHingeChange (iOS 27.1). Theo header SDK 27.2: angle là radian
(SwiftUI trả Angle), không có timestamp, tần suất cập nhật không được đảm bảo.
Còn thiếu:
- Simulator iPhone Duo: runtime iOS 27.2 beta (24B5089g) chưa hỗ trợ device type iPhone Duo; iOS 27.1 chưa tải được. Mốc 0 của góc chưa đo.
- Team ID ký app, App ID
uk.trinh.foldracevới Game Center + App Attest, 5 sản phẩm IAP trên App Store Connect. - Bản tiếng Anh (String Catalog); chuỗi hiện viết tiếng Việt.
- Âm báo GO.
- Ngưỡng trong
protocol/config.jsonlà giá trị tạm, đo lại trên máy thật.
MIT — xem LICENSE.