CBMVC Titanium Framework 介绍
2012-07-06 00:02 w i n s o n 阅读(1842) 评论(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
相信用过 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')
}
}
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));
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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· .NET周刊【3月第1期 2025-03-02】
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器