2016-11-21 91 views
1

我是新的iOS開發,所以請原諒我的情況,我的問題聽起來微不足道。iOS中的模型,視圖和演示者的不同框架?

我打算引進MVP或VIPER模式。我來自Web背景,並且在Web應用程序中,我們用於跟隨不同的圖層/ dll(用於模型,視圖,公共等)。在iOS中遵循相同的分層方法(這種情況下的框架)是否合理?或者它會過度殺傷?我還沒有遇到過任何樣本項目(基於MVP),它們爲模型,視圖和演示者創建了不同的框架?如果有人能夠分享我們可以用作啓動項目的樣本項目(基於MVP),那將是非常棒的。

在此先感謝

回答

2

在iOS中,我們一般使用MVC - Model/View/Controller。所以,如果你在iOS世界尋找模擬器,就是這樣。如果你說你真的挖成MVC這裏面的,你覺得不滿意深,因此要介紹不同的圖案的東西,那麼這是一個不同的問題。

所以,不,你在MVC等方法中看到的那種邏輯上分離的責任並不是過大。事實上,「視圖」和「控制器」類的劃分對我們所做的每件事都是相當重要的(例如,UIView子類,UIViewController子類等等),所以你唯一需要做的就是設計適當的「模型」類和你要參加比賽。

但是,在回答您的問題時,您通常不會爲模型,視圖和控制器使用單獨的框架目標。這可能會矯枉過正。通常,您可以通過在項目中正確使用Xcode組/文件夾來跟蹤所有內容。我們一般只拉東西到了更多的技術或後勤方面的原因框架(實時取景,附加應用,多個應用程序之間共享代碼,等等......看到WWDC 2015年Building Modern Frameworks爲當你一般採用框架的討論)。

但對MVC與MVP或VIPER(或MVVM或其他)的問題。我建議你只是涵蓋所有這些模式的共有精神(責任即分離),並將其應用到您的iOS MVC代碼。一旦你有了一些iOS體驗,你就可以重新評估這種模式問題。

+0

即使我選擇MVC,我應該保持模型和視圖/視圖控制器在同一個項目中。或者爲Model創建一個不同的項目(iOS中的框架)? – Pragmatic

+0

@Pragmatic - 不,你一般不會使用獨立的框架。看修改後的答案。 – Rob

1

如果您從iOS開發入手,並正在尋找一個好的架構,請與VIPER聯繫。只要它不是在所有的矯枉過正你:

1 - 自動VIPER文件代

2 - 自動VIPER模塊初始化

爲了實現上述兩方面的要求,使用Xcode的插件(https://github.com/natangr/ViperTemplate)生成並自動初始化VIPER文件。它的作用像魅力!

並閱讀此帖子https://www.ckl.io/blog/best-practices-viper-architecture以獲得有關如何使用VIPER時自動化的更多提示。

我使用它,即使是非常小的項目(開發160H)

相關問題