EasyIOS 是一个基于 Model-View-ViewModel
的新一代开发框架,让应用程序开发更快更容易,用极客的方式构建您的应用。
EasyIOS 官方qq群1群 :340906744(已满)
欢迎大家加入讨论
EasyRSS:基于 EasyIOS 2.2.2 的开源项目,EasyIOS 的官方 Demo
代码分离 -Model-View-ViewModel
- 分离 ViewController 中的大量逻辑代码,解决 ViewController 承担过多角色而导致的代码质量低下。增加视图与模型的绑定特性。
自动持久化 -Model to Db
– 我再也不想思考如何实现持久化了。在我的想法里,将模型对象直接扔到一个 bucket 里,然后它就能自动地对数据进行存储、缓存、合并以及唯一化。我应当关注于描述对象间的属性和联系,以及我希望它们分组的方式。其他的实现细节都应该是不可见的。
自动 RESTful API –Json to Model
- 一旦我给程序发出指令,将一个 API 响应对应到一个数据对象,网络和 JSON 转换应该被自动完成。我只想关注如何将 JSON 中那些项目展示给用户。
有表现力的触发器和响应 -ReactiveCocoa
– 我想用源于响应意图(Intent)的语法来描述事件的响应和触发器,我不关心它们间的联系是如何实现的,并且这些联系也不应该在重构时出错。
简洁明了的网络请求 -Action
and Request
- 对于简单的 GET、POST 请求,可以进行对象化操作,我只想告诉程序链接在哪里,有哪些参数,接下来就自动拉取到想要的数据,顺便把缓存也做齐了,也是极好的。
便捷的 UI 布局 – FLKAutolayout
- 更便捷地进行 autolayout 布局,不管你使用 springs & struts 或者 AutoLayout,每种方法都需要你明确相关视图如何排列。你需要花大量的时间编写和修正这些排列,特别是在现在有这么多设备需要适配的情况下。没有什么是自动写好的,UI 布局依赖于对细节的不断调整。推荐开发期间 Debug 工具 FLEX,pod 'FLEX', '~> 1.1.1'
需要手动集成,发布 release 版本时请删除。
GCDObjC
-全新基于 MVVM(Model-View-ViewModel)
编程模式架构,开启 EasyIOS 开发函数式编程新篇章。
EasyIOS 2.0 类似 AngularJs
,最核心的是:MVVM
、ORM
、模块化、自动化双向数据绑定、等等
喜欢 swift
的同学,同样有 swift
的 2.0 demo RACSwift for EasyIOS,供大家学习。
关于有疑问什么是 MVVM,以及为什么 IOS 开发需要 MVVM 思想编程的,请看文章 用 Model-View-ViewModel 构建 iOS App 有详细介绍。
EasyIOS 2.0 是基于 MVVM 编程思想进行构建的,封装了 Scene, SceneModel, Model,Action 四种模型来对 IOS 进行开发,4 种模型的定义解决了 IOS 开发中 ViewController 承担过多角色而导致的代码质量低下,使结构思路更加清晰。
Scene
就是 ViewController
的子类,仅仅负责界面的展示逻辑Model
数据模型,父类实现了 ORM,可以实现 json、object、sqlite 三者之间的一键转换SceneModel
视图-数据模型,主要负责 视图与模型的绑定工作,其中 binding 的工作交给了 ReactiveCocoa
。SceneModel
包含 Action
成员,Action
类主要负责网络数据的请求、数据缓存,数据解析工作如果你有看过 Github 的 Trending Objective-C 榜单,那你肯定是见过 ReactiveCocoa
了, ReactiveCocoa
简称 RAC,就是基于响应式编程思想的 Objective-C 实现,它是 Github 的一个开源项目,你可以在 这里 找到它。
二次封装 AFNetworking
,集成到 Action,增加了网络缓存功能,轻松控制是否启用缓存。
采用 ReactiveCocoa
框架,实现响应式编程,减少代码复杂度。
Model
类整合 JsonModel
的类库和 MojoDataBase
类库
整合了很多开源的优秀代码
常用类库:
Action
负责网络数据请求
Model
负责数据存储
SceneModel
负责 Scene
与 Model
的绑定,调用 action 进行数据请求
场景(Scene): 一个视图相当于UIViewController
,提供快速集成网络请求和实现下拉刷新及上拉加载的接口。
SceneTableView
: 一种TableView
,与Scene
协作实现下拉刷新和上拉加载的功能。
SceneCollectionView
: 一种CollectionView
,与Scene
协作实现下拉刷新和上拉加载的功能。
将以下内容添加到Podfile中,并运行pod install
platform :ios, "6.0"
pod 'EasyIOS', :git=>'https://github.com/zhuchaowe/EasyIOS.git',:tag=>'2.3'
pod 'EasyIOS-Extention', '~> 1.2'
如果您使用Swift,请点击这里
EZNavigationController
类,解决iOS7中快速push容易崩溃的问题UIAlertController
与iOS7的UIActionSheet
、UIAlertView
EasyIOS-Extention
分离可选的第三方类库RTLabel
、EzUILabel
MKNetWorkKit
,基于现有的API重新封装了AFNetworking
,并且加入了缓存控制。Action
类发起请求的小伙伴可以体验到无缝升级的快感。UIImageView+MKNetWorkKit
,替换为更熟悉的SDWebImage
,解决了图片闪烁问题。EUIGestureRecognizer
SHGestureRecognizerBlocks
GCDObjC
,告别CocoaTouch原生难以记忆的gcd调用方法RegExCategories
,可以轻松地编写正则表达式了TMCache
,方便手动操作数据缓存(MK的自动缓存没有采用TMCache)Easykit
、FLKAutoLayout
类SceneModel
从Scene
中剥离出来,并加入响应式编程框架ReactiveCocoa
ReactiveCocoa
中文使用说明教程 ReactiveCocoa2实战ReactiveCocoa
在GitHub上有开源项目ReactiveCocoa2swift
和easyios
的字体图片演示,可以用来作为图片字典查阅ttf
和json
文件即可轻松扩展特殊字体FontAwesome
、Zocial-Regular
、Ionicons
、Foundation
Objective-C Bridging Header
为${PODS_ROOT}/Headers/EasyIOS/swift-bridge.h
。model类整合了Jastor的类库和MojoDataBase类库。
因此,action.POST_MSG时现在至少需要3个参数。
3. 借鉴了beeframework的消息通知机制,默默给郭大点个赞。
4. 修复了一个下拉刷新的bug。
5. 提供了一键打开百度地图、苹果地图、google地图、高德地图发起调用的接口,再也不用担心看地图文档了。