自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Mobl用于創(chuàng)建HTML移動應(yīng)用程序的新DSL

開發(fā) 開發(fā)工具
mobl 是一個新的開源的編程語言,主要用于加速手機(jī)應(yīng)用的開發(fā),mobl 可方便構(gòu)建手機(jī) web 應(yīng)用程序,包括 iOS、Android 和其他支持 HTML5 技術(shù)的手機(jī)。mobl還是一種很年輕的語言。第一次公開發(fā)布是在2011年1月。它的編譯器、工具和文檔還在逐步完善中。一起來看本文。

Mobl是一種外部DSL,它的目的是要把代碼編譯到HTML5中,從而為移動設(shè)備創(chuàng)建跨瀏覽器的應(yīng)用程序。Zef Hemel已經(jīng)在WebDSL項目的啟發(fā)下把它開發(fā)出來了,作為模型驅(qū)動工程和領(lǐng)域特定語言博士論文的一部分。

Mobl使用一種與JavaScript非常類似的腳本語言實現(xiàn)了靜態(tài)類型的推斷語言。該語言擁有以下***結(jié)構(gòu): 實體(entities)、類型(types)、函數(shù)(functions)、控件(controls)、屏幕(screens)、樣式(styles )和設(shè)備(services)。實體是在本地存儲中持久化的數(shù)據(jù)元素,而類型是一種供我們使用的不穩(wěn)定的數(shù)據(jù)。

函數(shù)與那些定義在JavaScript以及能夠調(diào)用JavaScript代碼的語言中的函數(shù)類似。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  

我們會發(fā)現(xiàn),UI并沒有遵循MVC模式,控件可以包含本地的狀態(tài)和邏輯。盡管我們可以這么做,但是Hemel還是建議“把所有復(fù)雜的邏輯放到函數(shù) 中,并且不要把那些函數(shù)放在用戶界面代碼中。” The UI’s look and feel is created with styles similar to CSS.

Mobl擁有創(chuàng)建面向Web服務(wù)接口的內(nèi)建語法。以下是用于獲取Twitter趨勢主題的服務(wù)示例:

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

數(shù)據(jù)是以JSON格式在應(yīng)用程序和服務(wù)之間傳遞的,JSON是“Mobl的動態(tài)類型的子類型,是一種特殊的類型,能夠讓你程序的各個部分使用動態(tài)類型定義,”這是文檔(PDF)中所說的。

所有使用Mobl編寫的代碼在保存每個文件的時候會自動編譯到HTML5的元素之中。應(yīng)用程序能夠在支持HTML5的瀏覽器上運(yùn)行,瀏覽器需要支持以下HTML5特性:

本地緩存

地理位置(mobl::location),這樣你可以請求用戶當(dāng)前的GPS位置

畫板(mobl::canvas),用于基本的2D繪畫

通知(mobl::notify): 屏幕上的通知。(盡管沒有太多瀏覽器支持)

加速計(mobl::accelerometer): 讀取移動設(shè)備的加速計數(shù)據(jù)(當(dāng)前只在iPhone和iPad上有效,其它平臺暫時還不支持這個API)

WebSockets(mobl::socket): 使用socket.io與服務(wù)器進(jìn)行數(shù)據(jù)流形式的通信。

Hemel說,它當(dāng)前專注于讓Mobl能夠在基于WebKit的瀏覽器工作,因為那些瀏覽器在移動設(shè)備上實現(xiàn)了最多的HTML5特性,但是對于讓它 在Firefox和Opera上工作也做了一些努力,并且,當(dāng)windows Phone7支持HTML5的時候,也會擴(kuò)展到那上面。Mobl應(yīng)用程序可以直接部署或者通過PhoneGap部署:

我們可以使用PhoneGap部署Mobl應(yīng)用程序。PhoneGap讓你可以使用web技術(shù)為各種平臺——包括iOS、Android、 Windows Mobile和BlackBerry等——構(gòu)建本地應(yīng)用程序。我正在做的一件工作就是要封裝專門針對PhoneGap的API,從而以Mobl庫的形式訪 問電話功能,像訪問照相機(jī)以及電話的聯(lián)系人列表等等。這項工作進(jìn)展良好。

Mobl還帶有Eclipse插件,讓我們可以在Windows、Linux以及Max OS上開發(fā)應(yīng)用程序,并且已經(jīng)基于MIT許可發(fā)布了。

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

 【編輯推薦】

  1. mobl 針對移動Web開發(fā)的DSL
  2. 移動開發(fā)者更傾向于iOS和Android平臺
  3. 移動開發(fā)經(jīng)驗分享:推送通知特性的***實踐
  4. 移動開發(fā)基礎(chǔ)教程:Android是什么
責(zé)任編輯:于鐵 來源: 開源中國社區(qū)
相關(guān)推薦

2011-05-06 15:31:28

moblweb開發(fā)DSL

2011-05-11 09:47:14

mobl移動web開發(fā)

2020-05-12 10:06:52

JavaScript開發(fā)框架

2011-07-08 15:27:03

jQuery Mobi

2011-07-21 15:37:40

jQuery MobiJQMJSON

2024-02-29 08:32:03

HTTP協(xié)議Web服務(wù)消息隊列

2009-06-14 18:06:06

ibmdwWebSphere

2014-04-02 14:00:41

移動應(yīng)用程序工具

2013-09-24 09:52:33

移動應(yīng)用虛擬化

2013-01-05 10:28:18

虛擬化移動應(yīng)用

2010-10-15 09:39:22

MeeGoQt

2011-02-22 10:23:43

2011-12-06 10:10:59

云計算移動應(yīng)用

2024-09-06 10:46:04

2012-05-14 17:35:28

移動Web

2010-08-11 09:45:03

2012-05-24 15:49:35

HTML5

2016-10-18 10:53:05

移動程序

2013-11-01 10:26:02

SAP

2010-08-18 09:23:19

Flash Lite移動應(yīng)用程序開發(fā)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號