A.S*_*A.S 6 ios swift rx-swift
我想用干净的架构设计我的swift应用程序.
我已经阅读了下面关于swift的干净架构的链接
我使用这些模板来创建应用程序.
我想问一下这是否是最好的架构,因为我想使用Rx-Swift进行编码.
如果有人可以指出一些干净的架构和反应迅速的工作示例,我将不胜感激.
使用Uncle Bob的Clean Architecture for swift(http://clean-swift.com/blog/)是RxSwift的最佳实践,还是应该使用MVVM架构
任何帮助将不胜感激.谢谢.
嗨我最近使用rxswift和干净的架构项目
就我而言,我在Profile场景中使用它们,特别是看起来像instagram
配置文件场景的用例
问题是,用户可以迅速改变帖子的类别
上次提取的帖子应该与所选类别不同:(
所有事件导致事件asyncronousely
所以我使用rxswift
在Interactor中有profileWorker(用于获取个人资料和类别的帖子数),postWorke(用于获取帖子)
并创建三个rxswift,PublishSubject如 - rxCategory - rxProfile - rxPosts
步骤如下
Interactor 订阅 rxCategory
ViewController 请求类别更改为 Interactor
Interactor 引起事件 rxCategory.on(Event<Category>.next(category))
Interactor 使用rxswift的flatMapLatest请求帖子和postWorker选择的类别
rxCategory.asObservable().flatMapLatest{ (category) -> Observable<[Posts]> in
return self.postsWorker.rxFetchPosts(requestModel, category: category)
}.subscribe { (event) in
if let posts = event.element {
self.updatePosts(posts)
}
}
}
Run Code Online (Sandbox Code Playgroud)
PostsWorker请求Observable<[Posts]>PostService(使用Alamofire和请求服务器SwiftyJSON)
然后PostService返回Observable<Posts>然后工人返回到交互者
Interactor订阅PostsWorker的Observable和更新帖子,这会导致rxPosts事件发生
Interactor订阅rxProfile并rxPosts使用combineLatest
并要求提出综合回应 Presentor
Observable.combineLatest(rxProfile, rxPosts) { (e1, e2) -> ProfileResponse in
return ProfileResponse(profile: e1, posts: e2)
}.subscribe { (event: Event<ProfileResponse>) in
self.output.presentProfile(event.element!)
}
}
Run Code Online (Sandbox Code Playgroud)
这是我使用rxswift + clean swift架构的例子
在这种情况下,如果用户点击FOOD类别和工作人员获取许多帖子
然后用户点按PLACE类别并获取小帖子
虽然用户点击人类.在人们的帖子之后获取食物帖子
所以我使用rxswift使用flatMapLatest ReativeX - FlatMapLatest正确匹配所选类别
这可以获取并呈现给Presentor最新类别的帖子
rxswift在MVVM架构中有用.
但我认为由你决定如何使用它们
谢谢你阅读:)
| 归档时间: |
|
| 查看次数: |
3421 次 |
| 最近记录: |