---
# System prepended metadata

title: 'NCU APP v2: 開發規範'

---

# NCU APP v2: 開發規範

> (To be Discussed and Confirmed)

本文件為 NCU APP v2 之開發者指南，包含該應用之開發方向、目標、計劃，以及規範。此文件供 NCU APP 程設組成員使用。



## Links
[GitHub](https://github.com/NCUAppTeam/NCU-APP-v2)
[Figma 設計總版](https://www.figma.com/design/pfKmGcETmMfTXXhW85Vj40/Wireframing?node-id=427392-2766)
[Notion](https://prism-bobolink-fc9.notion.site/NCU-APP-a483cc9d1b1942f3ad53da202c736460)



## 開發方向

- 儘量重用元件、函數、服務，不要在個別頁面中單獨刻
- 使用 Tailwind 進行設計，不要用 CSS styles
- 使用全域定義的顏色色系，不要硬刻顏色值
- 一切連接後端 (Firebase) 的部分，都統一透過單一服務呼叫（會加上 Middleware）



## 可重用元件：
* Text Button
* Icon Button
* Float Action Button (FAB)
* Text Input (with label)
* Search Bar
* Grid Layout
* List Layout
* Confirm Dialog
* Image Carousel
* DateTime Picker
* Floating Panel
* Filter Selection
* Slider
* Toggle Switch
* Sidebar



## 版本 Versioning

應用版本應分成 `Version Name` 與 `Version Code`。

`Version Name`：顯示給用戶看的，如 `v2.0.3`
`Version Code`：累加數字，目的是顯示先後關係，如 `45`、`46`

兩者應為一對一關係，如 `v2.0.3` 對應 `45`，`v2.0.4` 對應 `46`，如此類推。



## Git Commit 規範

格式：
```
<Commit類型>: <簡短標題>

<說明段落>

<列點所有變更/增刪>

<備註（如有）>

<版本>
```

`簡短標題` 應限制於 50 字以下，以最精簡的方式概況該 Commit 的內容。

`Commit 類型` 包含：
- `Feature`：新功能
- `Update`：更新邏輯/設計（但不是漏洞）
- `Fix`：修復漏洞/設計
- `Refactor`：整理程式碼（沒有邏輯變更）
- `Test`：程式測試
- `Docs`：文件相關

`說明段落` 為文字敘述，說明變更的目的、做法等。

`列點所有變更/增刪` 是為了方便快速掌握所有變動，請簡短、清楚地描述哪裡改了什麼。

`版本` 應標註該 Commit 屬於哪一個應用版本 (`Version Name` 與 `Version Code` 都應包含)。

Commit 範例：
```
Fix: 修復按鈕無法回應點擊事件的問題

# <說明段落>
這次修復解決了主畫面中的“提交”按鈕無法正確回應點擊的問題。
問題源頭是 Button 的 setOnClickListener 設置錯誤導致，這裡修復了錯誤處理邏輯。

# <列點所有變更/增刪>
- 修正了 OnClickListener 的綁定方式
- 加入了對空值的檢查，避免 null pointer exception
- 修改了按鈕按下後的 UI 更新邏輯

# <備註>
修復了 Issue #101

# <版本>
v2.0.3 (Code 45)
```