我是iOS开发的新手,所以请原谅我,以防我的问题听起来微不足道。
我打算介绍MVP或VIPER模式。我来自Web背景和Web应用程序,我们曾经遵循不同的层/ dll(模型,视图,常见等)。在iOS中遵循相同的分层方法(在这种情况下是框架)是否有意义,或者它是否有点过分?我没有遇到任何为模型,视图和演示者创建不同框架的示例项目(基于MVP)?如果有人可以共享我们可以用作启动项目的任何示例项目(基于MVP),那将是很棒的。
提前致谢
答案 0 :(得分:2)
在iOS中,我们通常使用MVC - Model/View/Controller。所以,如果您正在寻找iOS世界中的模拟,那就是它。如果你说你已经真正挖掘了MVC并且你发现了一些非常不满意的东西,因此想要引入一种不同的模式,那么这就是另一个问题。
所以,不,你在MVC这样的方法中看到的那种逻辑分离责任并不过分。事实上," view"和"控制器"类对于我们所做的每件事都是相当重要的(例如UIView
子类,UIViewController
子类等等),所以你真正要做的就是设计合适的模型"课程和你一起参加比赛。
但是,在回答您的问题时,您通常不会为模型,视图和控制器使用单独的框架目标。这可能是矫枉过正的。通常,您可以通过明智地使用项目中的Xcode组/文件夹来跟踪所有内容。我们通常只会出于技术或后勤原因(实时视图,应用扩展程序,多个应用之间的代码共享等)将内容添加到框架中...有关您何时使用的讨论,请参阅WWDC 2015 Building Modern Frameworks构架)。
但是对于MVC与MVP或VIPER(或MVVM或其他)的问题。我建议您只是接受所有这些模式的共享精神(即职责分离)并将其应用于您的iOS MVC代码。一旦你掌握了一些iOS经验,你就可以重新评估这个模式问题。
答案 1 :(得分:1)
如果你是从iOS开发开始并且正在寻找一个好的架构,请选择VIPER。只要你这一点,这根本不是一种矫枉过正:
1 - 自动生成VIPER文件
2 - 自动化VIPER模块初始化
要完成上述两个要求,请使用此Xcode插件(https://github.com/natangr/ViperTemplate)自动生成和初始化VIPER文件。它就像魅力一样!
请阅读此帖https://www.ckl.io/blog/best-practices-viper-architecture以获取有关如何在使用VIPER时实现自动化的更多提示。
我确实使用它,即使是非常小的项目(开发160小时)