大家也需對windows 8上可以用javascript開發Metro 界面的netive app有所了解。其實osx上也提供了類似的功能, OS X v10.4 Tiger發布時提供了一個Dashboard應用程序,用戶可以自定義添加widget應用小程序。用戶可以通過f4熱鍵,方便的啟用Dashboard。不得不說一下,Dashboard也是大名鼎鼎的canvas技術的發源地。
運行在Dashboard中的小程序,完全使用HTML,DOM,CSS,javaScript技術,因此可以說這些對前端工程師完全沒有難度。APPLE也提供了開發IDE,Dashcode。
Part1 IDE簡介
1.訪問https://developer.apple.com/ 如果有apple ID登錄 后訪問https://developer.apple.com/downloads/index.action
可以看到有很多開發者工具,搜索Dashcode下載。新版本的Dashcode只能運行於Lion系統上,這點需要注意,下載安裝之。
Dashcode秉承了Apple軟件的風格,簡潔易用。
2.創建一個項目選取Dashboard自定義。默認會生成以下默認文件
左側面板
第一欄:為本widget的名稱,front是在Dashbord中該widget的默認面板,back則對應點擊front面板右下角的i圖標翻轉后的面板。兩個面板可以不同樣大小。
第二欄:
widget屬性:可以配置weigth的元信息,數據和訪問網絡等能力。
默認圖像: 對應背景圖片,可以使用外部工具編輯,或者導入圖片。
widget圖標:圖標則對應在Dashbord widget管理中的圖標。
運行與共享: 可以設置對系統的要求等。
第三欄:為軟件生成的文件和SDK文件。開發者可以自己創建css,js文件。main.html則類似web站點中的index.html
3.工具欄中的按鈕
運行:可以及時調試widget
顯示:可以控制顯示項目。
檢查器:選中試圖中的元素后可以用這個面板配置元素的id class css屬性和事件函數(onclick)不過建議開發者用dom綁定事件。
資源庫:提供一些UI空間,和js快捷代碼。
工作區
上半部分為試圖;下半部分為編輯區域不過會隨選中文件變化。
part2
下面讓我們看看如何開發一個Dashboard應用萬年歷。腳本代碼使用前幾天的帖子使用的代碼
[javascript]簡單 方便 易折騰的日歷控件,純javascript支持鏈式語法,核心代碼只有5行
環境和我們開發web中的項目完全是一樣的,沒有任何學習成本。console API也提供了支持,alert的信息會在日志中顯示。
1.創建一個自定義widget項目,別忘了實時保存否則后悔莫及。軟件會生成一個擴展名為.dcproj為擴展名的文件。 刪除軟件生成的結構代碼添加結構。
代碼如下
<body onload="load();" apple-part="com.apple.Dashcode.part.StackLayout"> <div id="front"> <div class="apple-no-children" id="info" apple-part="com.apple.Dashcode.part.infobutton" apple-default-image-visibility="hidden"></div> <div id="cal"><h1></h1></div> </div> <div id="back"> <img id="backImg" src="Parts/Images/back.png" alt="" apple-locked="true" apple-part="com.apple.Dashcode.part.backimage" apple-style=" image-radius: 12,12,12,12; image-border: 1; image-border-color: 0.1500,0.1500,0.1500; image-border-width: 3; shadow-include-shadow: 1; shadow-blur: 9.00; shadow-offset: -1.00,-6.00; shadow-color: 0.0000,0.0000,0.0000,0.3333;"> <img src="Images/DevelopedWith.png" alt="Created with Dashcode" id="backDevelopedWith"> <div id="done" class="apple-no-children" apple-part="com.apple.Dashcode.part.glassbutton"></div> </div> </body>
2.修改樣式表main.css,試試使用運行檢查修改效果。值得一提的是,該軟件會自動把使用的圖片拷貝至項目中的Image文件夾中太貼心了。
樣式表沒有什么好說的。
3.添加行為代碼。
使用DOM偵聽器為元素綁定事件,啰嗦一下行為,結構,表現分離。
首先把開發好的Cal類拷貝進來,接下來開發邏輯代碼。
a.默認main.js是在head標簽中引入的,所以我們為domready注冊事件,以便能用dom訪問元素。
document.addEventListener('DOMContentLoaded',function(){ }.bind(document),false);
b.接下來聲明變量,應該沒有什么好說的,大家都能看的懂。
var d=new Date,Y=d.getFullYear(),h1=this.querySelector('h1'),p=this.querySelector('#cal'),i=12;
c.生成12個日歷實例,添加到相應節點中。依然沒啥好說的
h1.innerHTML=Y+'年'; for (; i--;) { //console.log(12-i); Cal(p, {Y:Y, M:12 - i, hasTitle:'false', hasFoot:'true'}); }
使用運行發現運行良好,現在到了把項目部署到實際環境Dashbord中了,激動人心的時間到了。
文件》部署 或者 alt +command +s;第一次部署的話,軟件會為你導出一個iCals.wdgt的文件。想全新安裝widget一樣,系統會提醒你安裝,確定之后自動進入Dashboard,看看成果。
上面為系統提供的iCal,下面的為自己開發的iCals。
下面進入收尾工作,為iCals添加一個圖標
看看圖標在Dashboard管理界面中的表現。
怎么樣,還不錯吧。
apple developer網站還提供了更多的模板,大家可以下載導入使用。
總結:
可以看的出,開發Dashbord widget完全沒有任何成本,只是使用Dashcode把文件打包而已。只要自己願意完全可以開發出很多很有意義的widget。使用Dashcode還可以開發safari插件,ios應用。如果有好的模式相信也可以變現。