国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于Vaadin的Web App開發(fā)

2015-09-09 12:01馬雪山
電腦知識與技術 2015年16期

馬雪山

摘要:移動互聯(lián)網(wǎng)的發(fā)展和HTML5標準的出現(xiàn),為App的開發(fā)提供了一種新的解決方案,基于移動設備上的瀏覽器運行的Web App。Vaadin是一個結合HTML5的Java web應用程序開發(fā)框架。Vaadin框架提供一組專門為移動設備優(yōu)化的TouchKit組件,可以創(chuàng)建移動用戶界面。該文介紹通過使用TouchKit開發(fā)移動Web App。

關鍵詞:WebApp;Vaadin;Touchkit

中圖分類號:TP393 文獻標識碼:A 文章編號:1009-3044(2015)03-0045-02

Mobile Web App Development Based on HTML5

MA Xue-shan

(Karamay Vocational and Technical College,Karamay 834000, China)

Abstract: With the development of mobile Internet and the emergence of HTML 5, there is a new solution for App development, which is running the Web App on the mobile Web browser. Vaadin is a Java web application development framework. Vaadin provides a set of TouchKit components that specially optimized for mobile devices, which can create mobile user interface. This paper introduces a way to develop mobile Web App with the TouchKit.

Key words: WebApp; Vaadin; Touchkit

App(Application),是指智能手機的第三方應用程序,在智能手機、平板電腦等其他移動設備上運行的應用程序,作為移動設備功能上的擴展。當前,在智能手機系統(tǒng)中有兩種應用程序:一種是基于本地(操作系統(tǒng))運行的Native App(原生應用);一種是基于移動設備上的瀏覽器運行的Web App。

App的產(chǎn)生與發(fā)展是依賴于移動設備的,隨著智能手機的普及,尤其是自iOS和Android這兩個手機操作系統(tǒng)的快速發(fā)展,App的發(fā)展進入了一個新的階段,基于本地(操作系統(tǒng))運行的Native App(原生應用)開始流行,Native App能夠充分智能手機的功能,帶來良好的人機互動的體驗,支持本地資源訪問,速度快。但是Native App不能跨平臺使用,開發(fā)難度大、成本高。

移動互聯(lián)網(wǎng)的發(fā)展和HTML5標準的出現(xiàn),為App的開發(fā)提供了一種新的解決方案,開發(fā)基于移動設備上的瀏覽器運行的Web App。Web App綜合了App和Web的特點,使用HTML、CSS以及JavaScript技術開發(fā)移動應用,可以輕松的實現(xiàn)跨平臺,開發(fā)者無需在考慮復雜的設備兼容和跨平臺開發(fā)語言的問題。結合HTML5,Web App可以實現(xiàn)很多原本Native App才可以實現(xiàn)的功能。從而使得開發(fā)難度和成本都大大降低。

本文將介紹一種Java web應用程序開發(fā)框架Vaadin,研究通過使用本框架來開發(fā)移動Web App。

1 Vaadin的介紹

Vaadin是一個結合HTML5的RIA(Rich Internet Applications 富互聯(lián)網(wǎng)應用)的Java web應用程序開發(fā)框架,由位于芬蘭的 IT Mill 公司開發(fā),用來構建滿足大型企業(yè)需求的Web應用程序。通過使用Vaadin框架,開發(fā)者可以很容易的創(chuàng)建和維護高質(zhì)量的web用戶界面,減少開發(fā)時間,提高用戶體驗,增加開發(fā)的效率。類似于開發(fā)Java傳統(tǒng)桌面應用程序中的工具包如AWT、Swing或SWT,Vaadin在編寫用戶界面時使用純Java語言開發(fā),并且更加容易,使開發(fā)人員可以忘記這是在開發(fā)Web應用。Vaadin充分使用了AJAX技術,用其開發(fā)的瀏覽器應用界面可以和桌面應用程序一樣響應和互動。

圖1 “Vaadin應用程序架構”

它是一個純Java開發(fā)環(huán)境,除了服務器端使用Java開發(fā)應用程序,在客戶端開發(fā)者也使用Java語言開發(fā)。Vaadin客戶端框架包括Google Web Toolkit(GWT),它提供了從Java語言編譯成在瀏覽器中運行的JavaScript程序,以及一個全功能的用戶界面框架。相比傳統(tǒng)的web開發(fā),開發(fā)人員更專注于業(yè)務邏輯的開發(fā),盡管Vaadin 底層采用了HTML,JavaScript,AJAX等Web技術,Vaadin應用程序框架很好的隱藏了這些細節(jié),開發(fā)人員一般無需了解上述Web技術。

圖1是“Vaadin應用程序架構”,Vaadin包含一個服務器端框架和客戶端引擎,服務器端作為一個運行在Java Web服務器上的Serverlet,主要的應用邏輯都在服務器端運行??蛻舳艘尕撠熢跒g覽器運行JavaScript代碼,渲染應用程序的用戶界面,將用戶的交互行為傳遞到服務器端。Vaadin框架負責管理的瀏覽器中的用戶界面和瀏覽器和服務器之間的AJAX通信。

Vaadin具有良好的可擴展性,相比基于Flash,Java applet或其他插件的Web框架,因為Vaadin客戶端引擎在瀏覽器是以JavaScript程序運行,Vaadin框架不需要在瀏覽器上安裝任何插件。Vaadin依賴的Google Web Toolkit支持多種瀏覽器,不需要擔心瀏覽器支持的問題。Vaadin框架提供了超過400種組件,開發(fā)者可以直接通過拖動方式添加到開發(fā)項目中,除此之外還可以很方便的使用Vaadin中的一套現(xiàn)成的第三方用戶界面組件庫——add-ons組件。

2 TouchKit

2.1 TouchKit介紹

隨著用戶越來越多使用移動設備瀏覽網(wǎng)頁,如手機和平板電腦,因此需要開發(fā)基于移動設備的網(wǎng)絡應用。移動瀏覽器可以像普通瀏覽器一樣顯示網(wǎng)頁,但在開發(fā)應用時,開發(fā)人員需要考慮如何讓用戶的體驗更好,更適合于移動設備的特性,如屏幕尺寸,手指操作的精度,瀏覽器的功能等。Vaadin框架提供一個 TouchKit組件,可以為Web應用程序創(chuàng)建移動用戶界面。就像Vaadin框架的目的是使Web應用程序像桌面一樣,TouchKit的目的是允許創(chuàng)建的Web app的使用起來類似于本地移動應用程序。

與創(chuàng)建普通web用戶界面的方法一樣,使用TouchKit開發(fā)創(chuàng)建一個移動用戶界面,可以使用Vaadin所有的常規(guī)組件和插件,但最重要的是,Vaadin提供一組專門為移動設備優(yōu)化的TouchKit的小組件。TouchKit支持多種特殊的瀏覽器功能,比如地理位置、特定上下文的輸入字段和主屏幕啟動。對ios系統(tǒng)還支持閃屏。除了開發(fā)常規(guī)的基于服務端的UI組件,TouchKit還支持一個特殊的離線模式,這是一個存儲在瀏覽器緩存中的客戶端UI組件,當網(wǎng)絡連接斷開,自動開啟。

2.2 開發(fā)移動WebApp考慮的問題

在開發(fā)支持移動瀏覽器的WebApp時,根據(jù)移動瀏覽器的特點,開發(fā)者需要考慮許多以下與非移動端不同的問題。TouchKit就是設計來幫助解決這些問題的組件。

1)人機界面

移動設備上使用的人機界面,與普通電腦不同。例如,手機屏幕可以很容易地旋轉,在縱向和橫向視圖之間切換。這不只是改變顯示的尺寸,而且還影響如何排列布置組件,達到最佳的用戶體驗。

用于用手指代替鼠標的操作,所以沒有如“右鍵”的功能。當使用鼠標時,用戶可以單擊雙擊或右鍵單擊,但觸摸屏設備上,使用的是諸如“點擊”和“長按”交互。手指手勢也發(fā)揮了很大的作用,例如使用垂直下滑代表滾動,而不是一個滾動條。有些瀏覽器還允許使用兩個或多個手指的手勢。

移動設備通常沒有物理鍵盤,而是一個可以根據(jù)上下文變化屏幕上的虛擬鍵盤。因此需要確保當用戶在輸入數(shù)據(jù)時彈出來的虛擬鍵盤不會擋住輸入?yún)^(qū)域。

2)帶寬和性能

移動互聯(lián)網(wǎng)的連接速度往往比固定線路慢很多,其中延遲是一個重要影響因素,尤其是在高度交互的富應用程序中,通常少于100毫秒的延遲幾乎不不被用戶察覺,而移動網(wǎng)絡連接通常延遲在500毫秒左右,有時更高,這就需要限制一些需要實時后臺響應事件的使用。在一些組件中,如正在等待服務器返回結果時,還可以使用動畫的方式來補償延遲的時間。在低速的移動網(wǎng)絡連接下,僅僅是加載Vaadin的客戶端引擎可能就需要幾秒鐘,這可以通過僅編譯使用的組件來解決這個問題。組件的選擇也會影響性能。在TouchKit中的組件被設計成輕量級的。

3)支持移動設備的功能

在瀏覽器中可以使用智能手機和平板的功能接口。如位置感知和撥打電話等。

4)兼容性

目前在移動瀏覽器領域的 web標準發(fā)展速度很快,一些由頂級瀏覽器制造商推出的特殊約定,在未來幾年內(nèi),可能逐步形成新的web標準,而其他的瀏覽器在標準化上會跟隨這些主要瀏覽器平臺的引導。WebKit 是一個開源的瀏覽器引擎,已經(jīng)成為領先的移動瀏覽器核心,例如 Google 的Android、 Apple 的iPhone等所使用的移動瀏覽器引擎,都是基于WebKit。TouchKit的的瀏覽器主要支持WebKit。TouchKit4 還支持Windows Phone的Internet Explorer。

2.3 TouchKit的使用

1)TouchKit的安裝和創(chuàng)建項目

TouchKit的開發(fā)平臺主要是Eclipse,首先需要安裝好Vaadin插件(Vaadin Plugin for Eclipse)。然后在vaadin官網(wǎng)上的vaadin.com/addon/vaadin-touchkit目錄下載安裝一個TouchKit的Eclipse插件。此外,也可以通過Maven或Ivy的方式安裝。

創(chuàng)建TouncKit項目的方式有兩種,一種是使用Maven的Archetype快速生成,或者是使用Vaadin插件創(chuàng)建一個普通的Vaadin項目,然后把它調(diào)整為一個TouchKit項目。

2)TouchKit 的UI組件

TouchKit項目需要定義一個繼承TouchKitServlet.的servlet類,在這個類的servletInitialized()方法中進行TouchKit的專門配置,如定制書簽、主屏幕圖標和啟動畫面等,除此之外還需要定義UI類和主題等。

為了適應移動設備的特點并提供更好的用戶交互,TouchKit包括許多特殊的UI組件。如可以向前或向后導航的的導航欄視圖;放置按鈕的水平工具欄;在不同組件之間進行滑動切換的導航管理器;在導航管理器中的特殊導航按鈕;浮動彈出框;類似ios開關按鈕的選擇開關;垂直組件分組和水平按鈕分組;包含頂部內(nèi)容區(qū)域和底部導航欄的分頁視圖;輸入Email、數(shù)字和URL的特殊文本輸入框和對應的特殊虛擬鍵盤;上傳組件。

TouchKit支持地理定位功能,允許從移動設備接收的地理位置。瀏覽器會要求用戶確認允許網(wǎng)站獲得的位置信息。在移動設備上允許共享位置的權限。瀏覽器會根據(jù)全球定位系統(tǒng)GPS、蜂窩定位或Wi-Fi定位獲取位置信息。 地理位置可以在地圖上可視化顯示出來。

本地存儲UI組件允許從應用服務端在HTML5本地存儲中存儲數(shù)據(jù),這個本地存儲是單例模式,可以通過LocalStorage.get()方法獲取。存儲數(shù)據(jù)時,用put()方法存儲鍵值對,鍵值都是字符串類型,通過get()方法取值。

3 結論

針對移動瀏覽器的特點,Vaadin框架中的TouchKit組件針提供許多特殊的優(yōu)化過的UI組件。使用TouchKit,可以快速創(chuàng)建高質(zhì)量的WebApp,開發(fā)人員只需要專注于業(yè)務邏輯,從而減少開發(fā)時間,增加開發(fā)的效率。

參考文獻:

[1] 黃悅深. 基于HTML5的移動Web App開發(fā)[J]. 圖書館雜志, 2014(7).

[2] 黃晟. 基于用戶體驗的APP設計研究[D]. 西安: 陜西科技大學, 2012(5).

[3] 于洋. 淺析HTML5的特點及其在移動Web App中的應用[J]. 計算機光盤軟件與應用, 2014(12).

[4] Marko Gr?nroos,Book of Vaadin[M].2014.

桦甸市| 饶河县| 浪卡子县| 津市市| 澄江县| 宽甸| 图木舒克市| 太原市| 南华县| 安化县| 和平区| 石渠县| 浦东新区| 治多县| 监利县| 和政县| 唐山市| 抚顺县| 湖南省| 信阳市| 兴文县| 曲水县| 微博| 石河子市| 曲阳县| 永登县| 革吉县| 那坡县| 宁波市| 调兵山市| 澄城县| 信阳市| 科尔| 合川市| 栾川县| 偏关县| 渝中区| 桐乡市| 五峰| 普兰县| 陇西县|