代码改变世界

CBMVC Titanium Framework 介绍

2012-07-06 00:02  w i n s o n  阅读(1837)  评论(4编辑  收藏  举报
这段时间除了要照顾一下BB外,其余时间都在研究Titanium了,因为项目需要,所以还是觉得应该有一套自己的框架才比较好啊!经过一番努力后(对官方文档看了又看 ^^ ),终于慢慢形成了一套比较完整的MVC框架了,这套框架其实也是基于另一个开源的项目(silver)的基础上进行修改的,不过除了一些核心代码外,基本上已被我改得“面目全非”了,呵呵~

相信用过 Titanium(以下简称Ti) 做项目的朋友都知道,对于页面之间的切换效果好像还并没有什么太好的解决,在ios下可以使用NavigationGroup控件,但如果在 android下就只能直接open了,基本上没有任何动画效果,而且就算是直接使用 NavigationGroup ,最多也只能左右移动进行切换,不能从上到下或者从下到上的切换。

就是为了这个页面切换效果,我也寻找了不少开源项目,好不容易才在偶然的机会下发现了silver,其可非常好地支持ios & android,可以达到 NavigationGroup 的效果,但也只是左右移动而已。一番研究后,发现其实其原理也很简单,只是将2个view的左右边框位置的变换,因此我就再加以修改,现在已可支持上下移 动的效果了,同时在不断完善修改中,就产生了CBMVC这个框架!^_^

CB,其实就是我的博客站 Coder Blog 的缩写,至于MVC嘛,就不需多解释啦 。这个框架现在有以下的功能和特点:

1. 使用 MVC + commonJS 架构,MVC 使得在代码结构上更清晰,整个框架甚至整个app都将基于一个namespace下,有效防止内存泄露和代码冲突,而 commonJS 可让代码模块化,提高重用性和执行效率

2. 支持全方位(上下左右)的界面切换动画效果,同时支持ios & android

3. 更加灵活高效的样式分离。在CBMVC里,已不需要使用 jss or rjss 样式,因为无论是 jss 还是 rjss,其目的都是为了更好地进行界面与代码的分离,现在CBMVC是将所有样式代码都放到一个 CB.Styles 的命名空间下,其对应每个 view 会有自己的一套style,如view名称是 'home',则其样式将是 :

CB.Styles.home = {
        logo : {
            width : 'auto',
            top: '15%',
            textAlign : 'center',
            color : 'blue',
            font : {
                fontSize : '18dp',
                fontWeight : 'bold'
            },
            text: CB.Util.L('logo')
        }
}

 在view里就可以这样直接调用:

//此为开始时设置加载的controller名,这里直接调用即可
view.name = __exports.viewName; 

//直接就可以创建元素,这样在view里的代码就非常简洁了
view.add(Ti.UI.createLabel(CB.Styles[view.name].logo));   

 4. 支持直接刷新当前页面,不需重新启动程序即可直接在模拟器看到修改界面代码后的效果,方便调试

5. 支持多语言的设置。直接使用xml文件进行多语言的控制,转换语言后马上生效,不需依靠修改手机里的语言环境

6. 方便灵活的Debug功能,可以直接输入整个对象,指定行数和输出的文件。同时可直接为页面添加刷新按钮以便调试,包含在样式里也可以控制开启debug功能,为页面上的元素添加上边框方便查看定位(但要手式添加需要添加边框的元素)

7. 可直接设置API地址以供Ajax方法调用

8. 数据模型集成了 joli 类库,这是一个非常不错的ORM库,很喜欢其灵活的语法

OK,主要的功能就是以上几项,当然还有其他细小的辅助功能,以后再慢慢说明啦!最后再说一下的是,CBMVC是一个开源项目,感兴趣的朋友可以直接到以下地址下载,已有一些基本的用法介绍:

https://github.com/CBMVC/CBMVC-Framework-with-Titanium