Mobl——用于创建HTML移动应用程序的新DSL
来源:互联网 发布:linux下解压war包 编辑:程序博客网 时间:2024/05/29 02:24
Mobl是一种外部DSL,它的目的是要把代码编译到HTML5中,从而为移动设备创建跨浏览器的应用程序。Zef Hemel已经在WebDSL项目的启发下把它开发出来了,作为模型驱动工程和领域特定语言博士论文的一部分。InfoQ与Hemel进行了一次讨论,试图发现使用这种方法与编写移动应用更多相关的内容。 Mobl使用一种与JavaScript非常类似的脚本语言实现了静态类型的推断语言。该语言拥有以下顶级结构: 实体(entities)、类型(types)、函数(functions)、控件(controls)、屏幕(screens)、样式(styles )和设备(services)。实体是在本地存储中持久化的数据元素,而类型是一种供我们使用的不稳定的数据。函数与那些定义在JavaScript以及能够调用JavaScript代码的语言中的函数类似。UI是由屏幕组成的,屏幕中包含各种组件以及容器控件,并且在控件上会有附加的事件处理器。“Hello World”示例类似于下面这样: 这里是另一个使用自定义控件的示例: 我们会发现,UI并没有遵循MVC模式,控件可以包含本地的状态和逻辑。尽管我们可以这么做,但是Hemel还是建议“把所有复杂的逻辑放到函数中,并且不要把那些函数放在用户界面代码中。” The UI’s look and feel is created with styles similar to CSS. Mobl拥有创建面向Web服务接口的内建语法。以下是用于获取Twitter趋势主题的服务示例: 数据是以JSON格式在应用程序和服务之间传递的,JSON是“Mobl的动态类型的子类型,是一种特殊的类型,能够让你程序的各个部分使用动态类型定义,”这是文档(PDF)中所说的。 所有使用Mobl编写的代码在保存每个文件的时候会自动编译到HTML5的元素之中。应用程序能够在支持HTML5的浏览器上运行,浏览器需要支持以下HTML5特性: 本地缓存 地理位置(mobl::location),这样你可以请求用户当前的GPS位置 画板(mobl::canvas),用于基本的2D绘画 通知(mobl::notify): 屏幕上的通知。(尽管没有太多浏览器支持) 加速计(mobl::accelerometer): 读取移动设备的加速计数据(当前只在iPhone和iPad上有效,其它平台暂时还不支持这个API) WebSockets(mobl::socket): 使用socket.io与服务器进行数据流形式的通信。 Hemel说,它当前专注于让Mobl能够在基于WebKit的浏览器工作,因为那些浏览器在移动设备上实现了最多的HTML5特性,但是对于让它在Firefox和Opera上工作也做了一些努力,并且,当windows Phone7支持HTML5的时候,也会扩展到那上面。Mobl应用程序可以直接部署或者通过PhoneGap部署: 我们可以使用PhoneGap部署Mobl应用程序。PhoneGap让你可以使用web技术为各种平台——包括iOS、Android、Windows Mobile和BlackBerry等——构建本地应用程序。我正在做的一件工作就是要封装专门针对PhoneGap的API,从而以Mobl库的形式访问电话功能,像访问照相机以及电话的联系人列表等等。这项工作进展良好。 Mobl还带有Eclipse插件,让我们可以在Windows、Linux以及Max OS上开发应用程序,并且已经基于MIT许可发布了。screen root() {
header("Hello world")
}// Custom control:control sayHello(name : String) { label(name) // using the label control}screen root() { // Main module definition sayHello("Hello World") // using my custom control}
service Twitter {
resource trends() : JSON {
uri = "/_proxy/api.twitter.com/1/trends.json"
}
}
- Mobl——用于创建HTML移动应用程序的新DSL
- Mobl——用于创建HTML移动应用程序的新DSL
- mobl 针对移动Web开发的DSL(2)
- mobl:针对移动Web开发的DSL【很详细】
- 创建用于 iPad 的 iOS 幻灯片应用程序
- Groovy高效编程——创建DSL
- Ruby 用于DSL 开发的相关技术
- 试用 dot :用于画示意图的 DSL
- Spring4新特性——Groovy Bean定义DSL
- 创建您的第一个移动Flex应用程序——Twitter Trends
- 创建用于 RCP 应用程序的声明性安全模型
- 用于创建 Internet 客户端应用程序的 MFC 类
- 创建用于移动设备的 Macromedia Flash 个人信息
- VS中创建用于移动设备的安装程序
- 用于移动设备的新型输入法——XNav
- 《深入BREW开发》——第七章 创建新的BREW应用程序
- 《深入BREW开发》——第七章 创建新的BREW应用程序
- pixhawk学习笔记---创建新的应用程序
- 我的梦想是什么
- Ubuntu下不能make menuconfig
- Linux 下 eclipse 的安装
- 让自己的Android应用支持appwidget
- ConditionVariable的用法
- Mobl——用于创建HTML移动应用程序的新DSL
- iPhone开发:通过NSURLRequest获得服务器返回的http header和http status
- WPhone7 随笔 (一)
- 推荐的两本书
- linux 打包命令大集合(转)
- atoi atol gcvt strtonl的使用方法(转)
- 新公司,新学习
- 项目笔记1
- 娃娃鸭学Ruby-4、关键字