发布于 2014-11-10 05:53:15 | 728 次阅读 | 评论: 0 | 来源: 网友投递
EasyIOS 基于MVVM 的IOS开发框架
EasyIOS 是一个IOS开发框架,基于MVVM编程思想进行构建的,封装了Scene,SceneModel,Model,Action四种模型来对IOS进行开发,4种模型的定义解决了IOS开发中ViewController承担了过多角色而造成的代码质量低下,使得结构思路更加清晰。
随着苹果发布了swift语言,很多人拿OC与之对比,下面是苹果列出的Swift几项特性(它们不包含Objective-C已经有的特性,比如自动内存管理)
EasyIOS 是一个IOS开发框架,基于MVVM编程思想进行构建的,封装了Scene,SceneModel,Model,Action四种模型来对IOS进行开发,4种模型的定义解决了IOS开发中ViewController承担了过多角色而造成的代码质量低下,使得结构思路更加清晰。
类型推断(Inferred types) – 类型推断让代码更清晰以及更少的错误
模块(Modules) – 模块移除了头文件并提供命名空间
闭包和函数(Closures & Functions) – 闭包和函数指针相匹配
元组(Tuples) – 元组和多重返回值
泛型(Generics) – 泛型带来的好处是不言而喻的。
结构体(Structs) – 支持方法、扩展、接口的结构体。
函 数式编程模式(Functional Programming Patterns) – 比如map和filter。 这些都是在Objective-C基础上显而易见的改进。让我们将关于泛型的好处、类型推断、函数式编程等等的争论放到一边,干脆的同意Swift在许多 地方比Objective-C要优越。
但是Swift没有减少开发程序时我们在那些样板代码里花费的时间和精力。甚至 如果我们分解Swift的陡峭的学习曲线,我们会发现它仅仅只是将运行时 的调试转移到编译时,所以只是看上去入门简单了。它解决了Objective-C里的一些通常的实现错误,但并没有让程序更快的实现。
对于 Swift,从搜索引擎得到的结果将会是这样:Objective-C开发者将花费接下来的数年时间以过渡到Swift的语法和功能当中。不过,即使过渡 结束了,我们还是会和2014年一样,花费长时间编写关于持久化、网络、触发器和响应,以及布局的具体实现代码,这些代码也还是会和以前一样 无聊、容易出bug、并且无法重用。
阻碍IOS开发最大的问题不在于语言本身,我们需要的不是一个新的Objective-C,我们需要的是一种新的开发范式。
EasyIOS框架是以提升开发效率为目标的,基于MVVM架构的快速开发框架,在IOS开发的基础上解决了开发者的以下的痛点
代码分离 -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-
便捷的正则匹配
富文本的Label
and so on……
EasyIOS框架还在不断更新中,我们相信基于它可以极大的提升IOS开发效率,为IOS开发提供一种新的开发范式。