Try   HackMD

Ptt-iOS 開發文件

維護人: Denken
tags: Ptt App
位置: 主目錄/iOS/

[置頂] 專案文件

加入方式

由於開發階段的內部討論與變動較快,目前會需要你主動要求加入。可以分成以下階段:

  1. g0v slack 找負責人「denkeni」,會協助你加入 Ptt-iOS 的 Telegram 群組。
  2. 協助你加入 Zeplin、TestFlight、GitHub 等相關文件程式碼。
  3. 協助你加入 Ptt 官方 app 籌備小組的 Telegram 主群組。

這之後就有足夠資訊,可以跟進專案近況。

參與功能開發

有兩種參與模式:

  • 參與每週線上大會議,主動跟進並提出想做的功能
  • 認領負責人不定期釋出的功能開發需求項目(會放在 未認領的 GitHub Issues 與公告在 Ptt-iOS 的 Telegram 群組)

參與流程:

  1. 建議在 Ptt-iOS 的 Telegram 群組先提出討論或舉手認領後,記錄在 GitHub Issues 以免重工。
  2. 負責人會再協助給予 GitHub 的 Write 權限,開發階段可以隨時 push 上自己的 branch。
  3. 完成時再發 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 實作版本的意見
  • 最後決策

決策選項

  1. 接受 merge 此 PR,這會使得後續功能開發也需實作此 coordinator 的規格。由各位夥伴提出的調整建議,則在 merge 之後再請實作者補上。
  2. 暫不 merge 此 PR。由於之後預期將會展開更多功能開發,這會使得實作者後續若希望繼續推動 coordinator pattern,可能要考慮另拆成小型 PR 來分別完善或逐步試行。

希望盡量以共識決方式。

會議經過

  • Anson 與 Marcus 的 coordinator 使用經驗,也是有 base coordinator 來 subclass
  • 多數人傾向決策 2 原因包含比較不影響開發 or 應該要小範圍試行
  • 少數人支持決策 1 主要考量拖太久 merge 不易

最後決策:1

  • 切割出架構組(請 Anson 加入協助)與功能開發組
  • 功能開發組:可沿用既有 UIKit 的 push/present 來開發,未來亦不強制使用 coordinator(以便不影響開發)。
  • 架構組:須負責未來後續整合功能開發組的頁面流程,以及補足 review 過程中提出的建議。