Ptt-iOS 開發文件
維護人: Denken
位置: 主目錄/iOS/
[置頂] 專案文件
加入方式
由於開發階段的內部討論與變動較快,目前會需要你主動要求加入。可以分成以下階段:
- 在 g0v slack 找負責人「denkeni」,會協助你加入 Ptt-iOS 的 Telegram 群組。
- 協助你加入 Zeplin、TestFlight、GitHub 等相關文件程式碼。
- 協助你加入 Ptt 官方 app 籌備小組的 Telegram 主群組。
這之後就有足夠資訊,可以跟進專案近況。
參與功能開發
有兩種參與模式:
- 參與每週線上大會議,主動跟進並提出想做的功能
- 認領負責人不定期釋出的功能開發需求項目(會放在 未認領的 GitHub Issues 與公告在 Ptt-iOS 的 Telegram 群組)
參與流程:
- 建議在 Ptt-iOS 的 Telegram 群組先提出討論或舉手認領後,記錄在 GitHub Issues 以免重工。
- 負責人會再協助給予 GitHub 的 Write 權限,開發階段可以隨時 push 上自己的 branch。
- 完成時再發 pull request,由其他成員協助 review。
幾點提醒:
- 廣泛接受原生方式(layoutSubviews、Auto Layout、Storyboard、SwiftUI)來刻畫面。
- 採用 MVC + Coordinator 架構,但並不強制功能開發組學習或實作 coordinator;架構組負責 coordinator 與流程整合。
- 推薦遵循的 commit message guidelines,要求首行的首字大寫且行末無句點。
P.S. 預計在上架 App Store 後,將會對外公開專案程式碼以及 Ptt-iOS 的 Telegram 群組,並轉為一般開源專案的協作模式(Creating a pull request from a fork)。
專案初始化
- Clone or Download ZIP of the project on GitHub.
- Build with Xcode, and make sure you've installed SwiftGen and Swiftlint.
- If you encounter the error shown below when building, make sure there are no spaces in the path of the project folder.
Image Not Showing
Possible Reasons
- The image was uploaded to a note which you don't have access to
- The note which the image was originally uploaded to has been deleted
Learn More →
from: https://github.com/Ptt-official-app/Ptt-iOS/pull/92
專案討論文件
架構:MVC + C (Coordinator)
https://github.com/Ptt-official-app/Ptt-iOS/pull/12
DEVELOP 功能開發中
部分開發中功能、尚未排入初版的功能,已經用 #if DEVELOP
區隔出來:功能介面保留於 DEBUG 模式,但不會在 RELEASE 版本顯示出來。
如需預覽 RELEASE 版本,可以到 Xcode 專案設定 - Build Settings - Swift Compiler - Custom Flags/Active Compilation Conditions - Debug 暫時移除 DEVELOP。
2020-12-23 會議記錄
出席人員:Denken, Marcus, 又鋼, Anson, Jacqueline, Teemo.
議程
- 討論分享對 coordinator pattern 的想法或經驗
- 討論分享對於這個 coordinator 實作版本的意見
- 最後決策
決策選項
- 接受 merge 此 PR,這會使得後續功能開發也需實作此 coordinator 的規格。由各位夥伴提出的調整建議,則在 merge 之後再請實作者補上。
- 暫不 merge 此 PR。由於之後預期將會展開更多功能開發,這會使得實作者後續若希望繼續推動 coordinator pattern,可能要考慮另拆成小型 PR 來分別完善或逐步試行。
希望盡量以共識決方式。
會議經過
- Anson 與 Marcus 的 coordinator 使用經驗,也是有 base coordinator 來 subclass
- 多數人傾向決策 2 原因包含比較不影響開發 or 應該要小範圍試行
- 少數人支持決策 1 主要考量拖太久 merge 不易
最後決策:1
- 切割出架構組(請 Anson 加入協助)與功能開發組
- 功能開發組:可沿用既有 UIKit 的 push/present 來開發,未來亦不強制使用 coordinator(以便不影響開發)。
- 架構組:須負責未來後續整合功能開發組的頁面流程,以及補足 review 過程中提出的建議。