All Projects → jimple → JCiOSProjectSampleWithRAC

jimple / JCiOSProjectSampleWithRAC

Licence: other
一个iOS项目框架,使用ReactiveCocoa,尽量修改成MVVM方式。主要是把最近做的一个项目的业务流程剥离,只剩下可公用的项目框架,以便以后类似项目使用。

Programming Languages

objective c
16641 projects - #2 most used programming language
Objective-C++
1391 projects
c
50402 projects - #5 most used programming language
C++
36643 projects - #6 most used programming language
shell
77523 projects
DTrace
51 projects

JCiOSProjectSampleWithRAC

把最近做的一个项目的业务流程剥离,只剩下可公用的项目框架,以便以后类似项目使用。

  • 这是我第一个使用RAC的正式项目,原来计划完全用MVVM方式,但实际开发时并没有一步到位。现在利用这个机会顺便改造一下,使用MVVM实现列表的功能。 这次正式使用RAC开发,最大的收获就是把思路扭向了响应式设计,没有之前那样容易陷入过程式的开发思路。 RAC要完全弄熟还真的不是一时半会儿的事。

  • 借助GitHub上的很多开源代码,凑成了这个工程。

========================= 具体内容:

1、工程目录结构参考: http://limboy.me/ios/2013/09/23/build-ios-application.html

2、用CocoaPods加入一些常用、成熟的第三方库。

3、Vendors下放一些体量小,且自己可能会直接修改源码的第三方类。

4、实现一个从服务端获取内容到UI显示的过程,做成基类供不同业务继承使用。

5、实现一些常用的UI效果或者控件。(未完善...)

6、多Stroyboard和独立视图XIB混用。

6、通过重新设置AppDelegate.window的RootViewController,实现app内多种入口的切换(侧边栏抽屉与TabBarController切换)。

========================= 几个类的说明:

  • BaseServerDataListViewModel

所有下拉刷新,拉到底部则加载更多的视图的ViewModel基类。定义一些公用的操作和属性。

例如工程中的EventListViewModel就是继承自此类。

  • EventListViewController

由于多个地方可能用到同样的列表视图,所以将这个列表视图独立出来,由其它需使用的视图包含此视图,达到重用的目的。

例如工程中的FirstFlowRootViewController包含了这个列表。

========================= 列表视图的MVVM说明:

1、EventListViewController对应EventListViewModel,除界面外的所有具体流程都在ViewModel中执行,并反馈给ViewController进行界面显示。

2、EventListViewController内的tableView需显示Cell的内容,所以每个Cell对应一个Cell的ViewModel,这些Cell的ViewModel由视图的ViewMode提供。

========================= 一些备忘:

  • 使用Mantle进行JSon数据转Model。
  • 使用GVUserDefaults统一管理[NSUserDefaults standardUserDefaults]的值。
  • 使用UIScrollView+UzysCircularProgressPullToRefresh使TableView实现下来刷新。
  • 使用UIScrollView+JCLoadMoreIndicator是TableView实现底部加载更多。
  • 一些常用的方法写在UtilityFunc类中。
  • BuildPhases中添加RunScirpt使编译时BuildNumber自动+1。

========================= MIT License

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].