Feature map
從取得內容到完成閱讀的完整流程
Shinsou X 不是單純的檔案檢視器;它把來源、書庫、統一內容基礎、Reader、離線與備份串成可恢復的本機優先流程。
書庫
分類、搜尋、篩選、排序、批次操作與閱讀進度。
活動
Updates、Upcoming、History、下載佇列與統計。
來源
Shinsou X Extension v2、來源瀏覽、跨來源搜尋、登入、Cookie 與偏好。
本機內容
TXT、圖片、ZIP、CBZ、EPUB 匯入與由 App 管理的本機 immutable blob store。
閱讀器
漫畫、小說與 EPUB 共用 portable locator 與內容權利邊界。
保護資料
可攜備份、Content Backup v2 與由 App 管理的本機自動備份。

Platforms
共用核心,保留平台應有的整合
| 平台 | 最低目標 | 平台整合 | 目前限制 |
|---|---|---|---|
| Android | Android 8.0 / API 26+ | Keystore、WorkManager、Biometric、WebView、文件選擇器 | 真實背景排程時間由系統決定 |
| iOS / iPadOS | iOS 16+ | Keychain、BGTask、WKWebView、Widget | 需要 Xcode、簽章與 entitlement |
| macOS | Compose Desktop | Menu Bar、⌘ 快捷鍵、文件選擇器、Keychain、獨立 WKWebView challenge 視窗 | 目前 DMG 主要目標 Apple Silicon;app lock/secure screen 不可用 |
| Windows | Windows 10 / 11 x64 | DPAPI、Ctrl 快捷鍵、原生文件選擇器、MSI/EXE | Web challenge 只開外部瀏覽器;必須在 Windows + WiX 3.x 建置安裝包 |

Reader
圖片、文字與 EPUB 的統一 Reader
| 內容 | 主要模式 | 定位 | 離線 |
|---|---|---|---|
| 圖片序列 | LTR、RTL、直向、Webtoon、縮放、濾鏡 | 邏輯頁與 Webtoon page 內 normalized offset | 下載 completion manifest 驗證頁面完整性 |
| 純文字 | 翻頁、連續捲動、LTR、RTL、垂直、TTS | 保留 UTF-16 offset,重新排版後恢復接近位置 | 本機出版物 immutable body |
| EPUB | spine 導覽、XHTML / CSS / font / image | portable locator | resource graph 按需讀取,不在開書時一次 hydration |
正文工具列預設隱藏,中央區域切換工具列、左右區域翻頁。共用操作包含拖曳;Desktop 支援滾輪與鍵盤,實體音量鍵翻頁只在 Android/iOS 提供,電腦版不顯示該設定。
Library & content
書庫 metadata 與內容 bytes 分開管理
書庫保存作品、章節、分類、進度與來源身分;實際內容則由本機 blob store、下載完成清單或合法重新取得路徑負責。這個分離使備份能明確遵守內容權利。
分類與批次操作
多分類、篩選、排序、顯示模式與批次調整。
統一內容基礎
metadata、ref 與 outbox 在 shared SQLite 中原子提交。
Local source
內建 source 0,處理直接圖片、TXT、ZIP、CBZ 與 EPUB。
全文索引與註記
純文字內容可建立本機全文索引,註記與內容權利一起受控。
Extension reference
Plugin 技術文件入口
官網的 Plugin 系統說明 適合安裝者與套件作者快速查閱;App repository 另提供以目前 production 原始碼為準的完整契約文件。
Privacy
Local-first 的意思,是先說清楚資料放哪裡
專案本身不提供廣告或分析服務。主要資料保存在使用者裝置;敏感 KV 使用各平台安全儲存保護。
| 資料 | 保存位置/保護 | 可攜備份 |
|---|---|---|
| 書庫、分類、閱讀進度 | 由 App 管理的本機 snapshot / SQLite | 是 |
| Cookie、密碼、OAuth token、API key | Keychain / Keystore / DPAPI 保護的敏感 KV | 否 |
| Plugin package | 本機 package store | 否 |
| 下載 cache / queue | 由 App 管理的本機 storage | 舊 snapshot 不含 bodies;queue 保持本機 |
| Local source 原始內容 | immutable blob store / 由 App 管理的本機 files | 僅 Content Backup v2 在權利與選項允許時附帶 |
Backup & restore
備份是本機復原點,還原只作用於這台裝置
Snapshot backup
可攜 snapshot 與由 App 管理的本機自動備份,提供選擇性還原與 deterministic conflict merge。
Content Backup v2
checksummed publication graph、body-free metadata、legacy aliases 與 migration ledgers。
本機自動備份
由 App 管理,存放在 App 自己的資料夾內;解除安裝或清除資料後會一併消失。
還原只作用於這台裝置
還原只會套用到目前這台裝置,不會影響其他裝置;已安裝的套件、發佈者信任、授權、Cookie 與密碼都不在備份內。
自動備份存放在 App 自己的資料夾,解除安裝或清除資料後便無法找回。更換裝置前,請先手動匯出一份可攜備份並保存到 App 以外的地方。
目前沒有雲端或跨裝置同步功能;新的可自行部署同步服務正在規劃中,尚未提供。
Build & release
從原始碼建置
需要 JDK 17 與 Android SDK Platform 36。macOS Desktop 的執行、測試與 DMG 會編譯原生 WKWebView helper,因此另需 Xcode Command Line Tools、macOS SDK 與 Swift compiler;iOS 還需完整 Xcode 與 XcodeGen。Windows 安裝包需 Windows + WiX Toolset 3.x。
git clone https://github.com/aluo96078/shinsoux.git cd shinsoux # Shared / Desktop deterministic tests ./gradlew :composeApp:desktopTest # Desktop ./gradlew :composeApp:run # Android debug APK ./gradlew :composeApp:assembleDebug # iOS Simulator framework ./gradlew :composeApp:linkDebugFrameworkIosSimulatorArm64
Project status
持續開發中,測試通過不等於所有外部服務已驗證
Shinsou X 是目前唯一持續開發的版本。舊 Swift/SwiftUI 的 Shinsou 已停止開發,只保留歷史參考。
Release workflow 定義了 APK、IPA、DMG、MSI/EXE 與 SHA256SUMS 的建置流程,但 workflow 設計不等於已發布版本。Releases 頁面沒有項目時,代表目前沒有公開安裝包,請依建置指南從原始碼建立。
deterministic tests 與 target compile 能證明本地契約與建置;真機按鍵、Apple entitlement、背景排程、真實 OAuth 與第三方來源網站仍需要各自的外部 smoke test。
使用責任
Shinsou X 只提供書庫、閱讀器與來源擴充機制,不營運或託管第三方漫畫、小說或其他內容。使用者應只安裝可信任套件、遵守所在地法律與來源條款,並自行確認其存取內容的權利。