路線App HKTranApp

路線App / HKTranApp

用戶需求規格 · User Requirement Specification · 用户需求规格

繁體中文 简体中文 English

1. 簡介

「路線App」(HKTranApp)是一款 iOS 應用程式,為香港市民及訪港旅客提供公共交通工具的即時到站資訊,涵蓋巴士、港鐵及渡輪。

2. 目標用戶

3. 功能需求

3.1 即時到站資訊(ETA)

編號需求優先級
FR-001顯示九巴(KMB)即時到站時間必須
FR-002顯示城巴(Citybus)即時到站時間必須
FR-003顯示港鐵(MTR)即時班次及月台資訊必須
FR-004顯示渡輪航班時間表應該
FR-005每 30 秒自動刷新 ETA必須
FR-006顯示特別班次路線(如加班車、特別線)可選

3.2 路線搜尋

編號需求優先級
FR-010按路線號碼搜尋(如「87D」)必須
FR-011按車站名稱或目的地搜尋必須
FR-012支援繁體中文、簡體中文及英文搜尋必須
FR-013顯示最近搜尋記錄應該
FR-014離線状态下可搜尋已下載的路線索引必須

3.3 收藏與個人化

編號需求優先級
FR-020用戶可收藏路線及車站組合必須
FR-021支援多個收藏清單分組(最多 5 個,如「上班」「放假」)必須
FR-022每個分組最多儲存 10 個路線卡片必須
FR-023可重新命名、刪除及重新排序分組應該
FR-024重複收藏時提示用戶必須

3.4 站點瀏覽

編號需求優先級
FR-030顯示所選路線的全部站點列表必須
FR-031支援切換去程/回程方向必須
FR-032僅顯示有站點數據的方向應該
FR-033每個站點顯示即時 ETA 預覽應該

3.5 離線與網絡

編號需求優先級
FR-040首次啟動需網絡下載路線索引必須
FR-041離線時顯示最近快取的 ETA 資料必須
FR-042離線時顯示離線模式提示必須
FR-043網絡恢復後自動恢復即時更新必須

3.6 使用者介面

編號需求優先級
FR-049首次啟動顯示歡迎頁面應該
FR-050支援淺色及深色模式必須
FR-051支援直向及橫向螢幕應該
FR-052提供三語介面(繁中、簡中、英文)必須

4. ETA 狀態顯示

每張路線卡片根據資料新鮮度及網絡狀態,顯示不同視覺狀態:

狀態條件顯示
正常快取 < 90 秒正常透明度
稍舊快取 90 秒 – 5 分鐘80% 透明度,琥珀色時鐘
離線快取 5–30 分鐘或無網絡60% 透明度,離線圖示
錯誤快取 > 30 分鐘或 API 失敗紅色三角圖示
暫停服務API 回傳空陣列「暫停服務」+ 月亮圖示
受限ETA > 120 分鐘「點擊查看站名」
載入中首次載入,無快取載入動畫

5. 非功能需求

編號需求優先級
NFR-001支援 iOS 16.0 或以上必須
NFR-002無需註冊或登入即可使用必須
NFR-003不收集用戶個人資料必須
NFR-004不包含廣告必須
NFR-005無第三方追蹤 SDK必須
NFR-006ETA API 請求超時設定為 10 秒必須
NFR-007KMB API 請求間隔不少於 500ms(速率限制)必須
NFR-008所有資料儲存在裝置本地,不上傳伺服器必須

6. 數據來源

交通工具API 來源
九巴 KMBdata.etabus.gov.hk
城巴 Citybusrt.data.gov.hk(CTB ETA API)
港鐵 MTRrt.data.gov.hk(Next Train API)
渡輪 Ferry運輸署公開資料(靜態時間表)

1. 简介

「路线App」(HKTranApp)是一款 iOS 应用程序,为香港市民及访港旅客提供公共交通工具的实时到站信息,涵盖巴士、港铁及渡轮。

2. 目标用户

3. 功能需求

3.1 实时到站信息(ETA)

编号需求优先级
FR-001显示九巴(KMB)实时到站时间必须
FR-002显示城巴(Citybus)实时到站时间必须
FR-003显示港铁(MTR)实时班次及月台信息必须
FR-004显示渡轮航班时间表应该
FR-005每 30 秒自动刷新 ETA必须
FR-006显示特别班次路线(如加班车、特别线)可选

3.2 路线搜索

编号需求优先级
FR-010按路线号码搜索(如「87D」)必须
FR-011按车站名称或目的地搜索必须
FR-012支持繁体中文、简体中文及英文搜索必须
FR-013显示最近搜索记录应该
FR-014离线状态下可搜索已下载的路线索引必须

3.3 收藏与个性化

编号需求优先级
FR-020用户可收藏路线及车站组合必须
FR-021支持多个收藏清单分组(最多 5 个,如「上班」「放假」)必须
FR-022每个分组最多储存 10 个路线卡片必须
FR-023可重命名、删除及重新排序分组应该
FR-024重复收藏时提示用户必须

3.4 站点浏览

编号需求优先级
FR-030显示所选路线的全部站点列表必须
FR-031支持切换去程/回程方向必须
FR-032仅显示有站点数据的方向应该
FR-033每个站点显示实时 ETA 预览应该

3.5 离线与网络

编号需求优先级
FR-040首次启动需网络下载路线索引必须
FR-041离线时显示最近缓存的 ETA 资料必须
FR-042离线时显示离线模式提示必须
FR-043网络恢复后自动恢复实时更新必须

3.6 用户界面

编号需求优先级
FR-049首次启动显示欢迎页面应该
FR-050支持浅色及深色模式必须
FR-051支持直向及横向屏幕应该
FR-052提供三语界面(繁中、简中、英文)必须

4. ETA 状态显示

每张路线卡片根据数据新鲜度及网络状态,显示不同视觉状态:

状态条件显示
正常缓存 < 90 秒正常透明度
稍旧缓存 90 秒 – 5 分钟80% 透明度,琥珀色时钟
离线缓存 5–30 分钟或无网络60% 透明度,离线图标
错误缓存 > 30 分钟或 API 失败红色三角图标
暂停服务API 回传空数组「暂停服务」+ 月亮图标
受限ETA > 120 分钟「点击查看站名」
加载中首次加载,无缓存加载动画

5. 非功能需求

编号需求优先级
NFR-001支持 iOS 16.0 或以上必须
NFR-002无需注册或登录即可使用必须
NFR-003不收集用户个人数据必须
NFR-004不包含广告必须
NFR-005无第三方追踪 SDK必须
NFR-006ETA API 请求超时设定为 10 秒必须
NFR-007KMB API 请求间隔不少于 500ms(速率限制)必须
NFR-008所有数据储存在装置本地,不上传服务器必须

6. 数据来源

交通工具API 来源
九巴 KMBdata.etabus.gov.hk
城巴 Citybusrt.data.gov.hk(CTB ETA API)
港铁 MTRrt.data.gov.hk(Next Train API)
渡轮 Ferry运输署公开资料(静态时间表)

1. Introduction

HKTranApp is an iOS application that provides real-time public transport arrival information for Hong Kong residents and visitors, covering buses, MTR, and ferries.

2. Target Users

3. Functional Requirements

3.1 Real-time ETA

IDRequirementPriority
FR-001Display KMB real-time arrival timesMust
FR-002Display Citybus real-time arrival timesMust
FR-003Display MTR real-time schedules and platform infoMust
FR-004Display ferry schedulesShould
FR-005Auto-refresh ETA every 30 secondsMust
FR-006Display special service routes (e.g. additional departures)Nice

3.2 Route Search

IDRequirementPriority
FR-010Search by route number (e.g. "87D")Must
FR-011Search by stop name or destinationMust
FR-012Support Traditional Chinese, Simplified Chinese, and English searchMust
FR-013Show recent search historyShould
FR-014Offline search using downloaded route indexMust

3.3 Favorites & Personalization

IDRequirementPriority
FR-020Users can save route + stop combinationsMust
FR-021Support multiple watch list groups (max 5, e.g. "Work", "Weekend")Must
FR-022Each group holds max 10 route cardsMust
FR-023Rename, delete, and reorder groupsShould
FR-024Prompt on duplicate savesMust

3.4 Stop Browser

IDRequirementPriority
FR-030Display full stop list for selected routeMust
FR-031Support outbound/inbound direction switchingMust
FR-032Only show directions that have stop dataShould
FR-033Show real-time ETA preview per stopShould

3.5 Offline & Network

IDRequirementPriority
FR-040First launch requires network to download route indexMust
FR-041Show cached ETA data when offlineMust
FR-042Display offline mode indicatorMust
FR-043Auto-resume live updates when network restoresMust

3.6 User Interface

IDRequirementPriority
FR-049Show welcome screen on first launchShould
FR-050Support light and dark modeMust
FR-051Support portrait and landscape orientationShould
FR-052Provide trilingual UI (Traditional Chinese, Simplified Chinese, English)Must

4. ETA State Display

Each route card displays a visual state based on data freshness and network conditions:

StateConditionDisplay
FreshCache < 90sFull opacity
StaleCache 90s – 5min80% opacity, amber clock
OfflineCache 5–30min or no network60% opacity, offline icon
ErrorCache > 30min or API failureRed triangle icon
No ServiceAPI returns empty array"No Service" + moon icon
DegradedETA > 120min"Tap to view stop name"
LoadingFirst load, no cacheSpinner

5. Non-Functional Requirements

IDRequirementPriority
NFR-001Support iOS 16.0 or laterMust
NFR-002No registration or login requiredMust
NFR-003No collection of user personal dataMust
NFR-004No advertisementsMust
NFR-005No third-party tracking SDKsMust
NFR-006ETA API request timeout of 10 secondsMust
NFR-007KMB API request interval ≥ 500ms (rate limiting)Must
NFR-008All data stored locally on device, no server uploadMust

6. Data Sources

TransportAPI Source
KMBdata.etabus.gov.hk
Citybusrt.data.gov.hk (CTB ETA API)
MTRrt.data.gov.hk (Next Train API)
FerryTransport Department Open Data (static timetables)