Mobl用于创建HTML移动应用程序的新DSL

开发 开发工具
mobl 是一个新的开源的编程语言,主要用于加速手机应用的开发,mobl 可方便构建手机 web 应用程序,包括 iOS、Android 和其他支持 HTML5 技术的手机。mobl还是一种很年轻的语言。第一次公开发布是在2011年1月。它的编译器、工具和文档还在逐步完善中。一起来看本文。

Mobl是一种外部DSL,它的目的是要把代码编译到HTML5中,从而为移动设备创建跨浏览器的应用程序。Zef Hemel已经在WebDSL项目的启发下把它开发出来了,作为模型驱动工程和领域特定语言博士论文的一部分。

Mobl使用一种与JavaScript非常类似的脚本语言实现了静态类型的推断语言。该语言拥有以下***结构: 实体(entities)、类型(types)、函数(functions)、控件(controls)、屏幕(screens)、样式(styles )和设备(services)。实体是在本地存储中持久化的数据元素,而类型是一种供我们使用的不稳定的数据。

函数与那些定义在JavaScript以及能够调用JavaScript代码的语言中的函数类似。UI是由屏幕组成的,屏幕中包含各种组件以及容器控件,并且在控件上会有附加的事件处理器。

“Hello World”示例类似于下面这样: 

  1. screen root()  
  2. { header("Hello world")}这里是另一个使用自定义控件的示例:  
  3. // Custom control:  
  4. control sayHello(name : String) {  
  5. label(name) // using the label control  
  6. }  
  7. screen root() { // Main module definition  
  8. sayHello("Hello World"// using my custom control  

我们会发现,UI并没有遵循MVC模式,控件可以包含本地的状态和逻辑。尽管我们可以这么做,但是Hemel还是建议“把所有复杂的逻辑放到函数 中,并且不要把那些函数放在用户界面代码中。” The UI’s look and feel is created with styles similar to CSS.

Mobl拥有创建面向Web服务接口的内建语法。以下是用于获取Twitter趋势主题的服务示例:

  1. service Twitter   
  2. { resource trends() : JSON { uri = "/_proxy/api.twitter.com/1/trends.json" }  

数据是以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许可发布了。

查看英文原文: http://www.infoq.com/news/2011/02/Mobl

 【编辑推荐】

  1. mobl 针对移动Web开发的DSL
  2. 移动开发者更倾向于iOS和Android平台
  3. 移动开发经验分享:推送通知特性的***实践
  4. 移动开发基础教程:Android是什么
责任编辑:于铁 来源: 开源中国社区
相关推荐

2011-05-06 15:31:28

moblweb开发DSL

2011-05-11 09:47:14

mobl移动web开发

2020-05-12 10:06:52

JavaScript开发框架

2011-07-08 15:27:03

jQuery Mobi

2011-07-21 15:37:40

jQuery MobiJQMJSON

2024-02-29 08:32:03

HTTP协议Web服务消息队列

2014-04-02 14:00:41

移动应用程序工具

2009-06-14 18:06:06

ibmdwWebSphere

2013-01-05 10:28:18

虚拟化移动应用

2013-09-24 09:52:33

移动应用虚拟化

2011-02-22 10:23:43

2011-12-06 10:10:59

云计算移动应用

2010-10-15 09:39:22

MeeGoQt

2024-09-06 10:46:04

2010-08-11 09:45:03

2012-05-14 17:35:28

移动Web

2016-10-18 10:53:05

移动程序

2012-05-24 15:49:35

HTML5

2013-11-01 10:26:02

SAP

2010-08-18 09:23:19

Flash Lite移动应用程序开发
点赞
收藏

51CTO技术栈公众号