Skip to content

cellgit/SWArchitecture

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

30 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SWArchitecture

Swift Architecture for Application via MVP and MVVM

Dark Mode:

Light Mode:

一. 使用:

  • 网络请求前初始化 Presenter
/// 初始化 presenter
self.presenter = SWPresenter.init(model: HotkeyModel(), containerView: self)

/// 发起网络请求
func request() {
        let dict = ["":""]
        let url = APIManager.baseUrl + API.SKETCH
        print("url === \(url)")
        let params = NetworkParamsStruct.init(url: url, dict: dict, method: .post)
        self.presenter.request(params)
}
    
/// 实现协议
extension SWMvpViewController: ViewProtocol {
    func display(data: SucceedParamsStruct<Any>) {
        print("req succeed === \(data.json)")
        self.datalist = data.array as! [HotkeyModel]
        DispatchQueue.main.async {
            self.tableView.reloadData()
        }
    }
    func failure(failure: FailureStruct) {
        print("req failure ==== \(String(describing: failure.error))")
    }
}

二. 介绍:

  • SWArchitecture 是通过 MVP 架构实现一个Sketch快捷键的列表项目
  • 实现 Alamofire 的封装

三. MVP组成:

  • M: Model
  • V: View 或ViewController
  • P: Presenter

四. MVP技术点:

  • V 进行网络请求,然后通过两个协议(请求成功和请求失败)返回请求数据,进行展示数据
  • P 通过使用泛型,实现整个项目调用同一类方法,这样我们就可以把更多时间用到数据解析和UI绘制上
  • M 数据模型,负责解析数据,将请求json数据转化成模型数据
  • VM 负责解析数据,将请求json数据转化成模型数据

五. 协议: 项目中主要有两类协议:

  • 视图层协议 ViewProtocol
  • 模型层协议 ModelProtocal

MVVM: MVVM设计模式(未使用Rxswift)


本项目旨在以最简单的方式实现MVP架构,并可以在实际生产中快速运用

About

Swift Architecture for Application

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages