【问题标题】:Xcode project files folders structure for Swift & MVVM Architecture [closed]用于 Swift 和 MVVM 架构的 Xcode 项目文件文件夹结构 [关闭]
【发布时间】:2018-09-28 08:00:51
【问题描述】:

我今天使用 Swift 和 MVVM 架构从头开始一个新项目。 我想设置文件和文件夹结构以获得最佳实践,以实现简单易懂的导航和使用。

大多数教程建议:

├─ Models
├─ Views
├─ ViewModels
├─ Stores
├─ Helpers

但我发现它非常缺乏,因为我真的不知道管理ViewModels 文件夹的最佳做法是什么。

对现实世界的超级可维护项目有什么好的建议吗?

非常感谢! :)

【问题讨论】:

  • 我通常不会这样划分它们。我将它们划分在 viewControllers 中。例如,文件夹 = 登录,它包含 LoginViewControllerLoginViewModel 并且可以说是 LoginTextFieldView,然后我将所有 modelsroutersnewworking 分别放在 1 个文件夹中
  • 你可以先看看github.com/balitax/MVVM-AC-Template这样的东西
  • 你可以访问这个medium.com/yay-its-erica/…,Model-ViewModel-ViewControls就够了

标签: swift xcode mvvm architecture


【解决方案1】:

根据uncle Bob's Clean Architecture pattern,你可以把你的代码分成3层:

  • 演示:所有代码都依赖于框架(此处为 Cocoa)。所以把你的 Views、ViewModels、Vierwcontrollers 等放进去。

  • 数据:与存储库交互的所有代码(如网络调用、数据库调用、用户默认值等)

  • 域:你所有的模型

【讨论】:

  • 模型视图展示器是一个很棒的架构,但这个问题专门询问了 MVVM
  • 我不明白你的意思@Maddocks。您可以使用 MVP、MVI、MVVM、MVC 或其他任何东西,清洁架构的标准仍然有用
【解决方案2】:

视图文件将创建数据绑定,这些数据绑定在视图模型中实现为转义/非转义闭包,以在更新视图模型变量时更新 ui 标签等。

我不确定如何组织视图文件夹,因为 Xcode 基本上会强制您制作视图控制器文件。

├─ Model
|-|Employee
|-|Customer
|
├─ View
├─ ViewModel
|-|EmployeeViewModel
|-|CustomerViewModel
|
├─ Utilities
|-|NetworkManagerSingleton

【讨论】:

    【解决方案3】:
    YourProject
    │
    │ Info.plist
    |
    ├─── Model
    │       UserModel.swift
    │       ProductModel.swift
    │       CartModel.swift
    │
    ├─── View
    │       Main.storyboard
    │       LaunchScreen.storyboard
    │       ProductCell.xib
    │
    ├─── Controller
    │       HomeVC.swift
    │       ProductsVC.swift
    │       CartVC.swift
    │
    ├─── Utilities
    │    │
    │    └─── Extensions
    │            UIViewController+Additions.swift
    │            String+Additions.swift
    │            Dictionary+Additions.swift
    │            UIView+Additions.swift
    │
    ├──── Helpers
    │    │ CommonMethods.swift
    │    │
    │    └─── Constants
    │            AppMessages.swift
    │            Keys.swift
    │            EndPoints.swift
    ├──── Services
    │       APIManager.swift
    │       Services.swift
    │
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-06-26
      • 2019-06-14
      • 2011-01-31
      • 2014-07-09
      • 2018-03-11
      • 2020-09-11
      • 1970-01-01
      相关资源
      最近更新 更多