写点什么

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

  • 2011-02-12
  • 本文字数:1478 字

    阅读完需:约 5 分钟

Mobl 是一种外部 DSL,它的目的是要把代码编译到 HTML5 中,从而为移动设备创建跨浏览器的应用程序。 Zef Hemel 已经在 WebDSL 项目的启发下把它开发出来了,作为模型驱动工程和领域特定语言博士论文的一部分。InfoQ 与 Hemel 进行了一次讨论,试图发现使用这种方法与编写移动应用更多相关的内容。

Mobl 使用一种与 JavaScript 非常类似的脚本语言实现了静态类型的推断语言。该语言拥有以下顶级结构: 实体(entities)、类型(types)、函数(functions)、控件(controls)、屏幕(screens)、样式(styles )和设备(services)。_ 实体 _ 是在本地存储中持久化的数据元素,而 _ 类型 _ 是一种供我们使用的不稳定的数据。函数 _ 与那些定义在 JavaScript 以及能够调用 JavaScript 代码的语言中的函数类似。UI 是由 _ 屏幕 _ 组成的,屏幕中包含各种组件以及容器 _ 控件,并且在控件上会有附加的事件处理器。“Hello World”示例类似于下面这样:

复制代码
screen root() {<br></br> header("Hello world")<br></br>}

这里是另一个使用自定义控件的示例:

复制代码
// Custom control:
control sayHello(name : String) {
label(name) // using the label control
}
screen root() { // Main module definition
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 趋势主题的服务示例:

复制代码
service Twitter {<br></br> resource trends() : JSON {<br></br> uri = "/_proxy/api.twitter.com/1/trends.json"<br></br> }<br></br>}

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

查看英文原文: Mobl – A New DSL for Creating HTML5 Mobile Applications

2011-02-12 18:442739
用户头像

发布了 340 篇内容, 共 130.2 次阅读, 收获喜欢 13 次。

关注

评论

发布
暂无评论
发现更多内容

荣誉拉满!国云向新,“算”出新未来!

天翼云开发者社区

云计算

云行|算赋山水涪州,天翼云中国行·重庆涪陵站活动成功举办!

天翼云开发者社区

人工智能 云计算

Vue低代码 -- 走进低代码

互联网工科生

Vue 低代码

火山引擎边缘云助力智能科技赋予生活更多新意

火山引擎边缘云

对象存储 视频 边缘云

浪潮云参编的《数字政府网络安全合规性指引》正式发布

云安全

Paimon+StarRocks 湖仓一体数据分析方案

StarRocks

数据库 大数据 数据湖 湖仓一体

2023年软件开发领域的发展趋势

树上有只程序猿

软件开发

“国云入闽 数耀鹭岛”,中国电信天翼云创新助力数字福建新征程!

天翼云开发者社区

人工智能 云计算

英特尔锐炫显卡助力玩家高帧率畅玩《重生边缘》,尽享超清画质

E科讯

释放开发人员生产力:“文档级”代码了解一下?

SoFlu软件机器人

代码质量 开发工具 开发人员

一文搞懂ThreadLocal原理

树上有只程序猿

多线程 ThreadLocal

低代码+AI:拖拉拽构建漂亮活动页面

码上跃见

AI 低代码 网页设计 AIGC 低代码前端

Presto 设计与实现(十四):SQL 查询过程总结

冰心的小屋

sql 数据湖 presto 设计与实现

适配器模式:如何让不兼容的接口变得兼容

越长大越悲伤

设计模式 适配器模式

中国移动云能力中心:基于鲲鹏DevKit开发移动云云数据库,让数据并行访问更高效

彭飞

引爆用户参与:消息重弹,让您的推送不再被忽略

MobTech袤博科技

前端 智能投放 Androdi 智能推送

HarmonyOS创新实训营深圳站收官,美图秀秀、邮储银行、中信银行等20余企业积极拥抱鸿蒙生态

最新动态

【原理篇】Supabase 权限模型 Part2

张文平

Serverless API sdk 权限控制 Supabase

Acrobat Pro DC 2023 for mac(专业PDF编辑软件)v2023.003.20244中文直装版

mac

windows Acrobat Pro DC 2023 苹果mac PDF编辑和管理软件

实信达:基于鲲鹏DevKit开发综合档案管理系统,档案管理更便捷

彭飞

华为Mate60负一屏升级快捷服务 同程旅行、猫眼等入驻

最新动态

Mobl——用于创建HTML移动应用程序的新DSL_编程语言_Abel Avram_InfoQ精选文章