一個iOS應用內購買模塊的開發

模塊設計

或許以爲功能不難,給個人需求就簡單幾句話。在編碼以前我想弄清楚本身開發的模塊是怎麼樣的,該怎麼與外界交互。我要找到個工具將這點弄明白,因而想到畫UML圖。html

UML活動圖

UML建模之活動圖介紹(Activity Diagram)瞭解了一下,畫活動圖比較好,感受這個大概能達到個人目的。因而畫了以下兩個圖,分別表示IAP兩個階段發生的事:git

  • 請求商品信息

請求商品信息

  • 購買商品

購買商品

簡單介紹

當時瞭解到的需求是隻用提供Web調用的接口,參照Android的設計,我覺得本模塊只用負責邏輯處理部分,不涉及UI展現,因此設計了以上活動圖,個人工做主要是App部分。後來需求改了。github

需求改變

  • 本模塊負責IAP全部事項,包括UI展現
  • 本模塊須要能被原生App調用
  • 考慮到虛擬幣商品的固定性,簡化購買過程
    • 虛擬幣商品比較固定,展現商品時能夠拿本地商品信息展現,而不用等到App Store返回商品信息
    • 將請求商品信息與購買商品合併到「肯定支付」過程當中

UML時序圖

需求更改後活動圖有變化,可初版代碼編寫後,模塊與外界的交互已經比較好理解,我就沒再上新圖了。我用另一種圖肯定了模塊內的設計。順便學習一下時序圖工具

IAP時序圖

簡單介紹

  • 調用者
    • ViewController:這裏是App原生調用代碼。考慮到易嵌入性,我此次放棄使用代理方式,而選擇了Block做爲反饋處理。希望代碼中沒有出現Cycle Retain
  • IAP模塊
    • IAPViewController:模塊的主要處理類,負責與用戶交互,及調用IAPManagerIAPObserver 與App Store進行交互;
    • IAPManager:負責處理請求商品信息;
    • IAPObserver:負責處理購買商品。

IAPManagerIAPObserver只將過程信息打成log,錯誤信息提示等與用戶交互相關的處理經過Block交給IAPViewController學習

Demo

iapTest編碼

後續

  • UML圖是利用在線工具processon畫的,保存什麼的仍是很方便,不過功能不及EA等;
  • 設計與代碼都在學習中,歡迎一塊兒交流。
相關文章
相關標籤/搜索