萬盛學電腦網

 萬盛學電腦網 >> 網頁制作 >> 交互設計 >> 關於HTML5應用現狀與前景的思考

關於HTML5應用現狀與前景的思考

現在的 HTML5 就像當年嶄露頭角時的 Ajax,有人在做,但不知道叫它什麼。最近,蘋果在 HTML5 上大做文章,而著名的 Web 設計師 Eric Meyer 則提出了 Web Stacks 的概念。Alex Kessinger 是 Yahoo 的一名前端工程師,本文是他對 HTML5 應用現狀與前景的思考。

術語

首先說說 HTML5 應用中的幾個定義。

HTML5

HTML5 最好的定義來自 Mark Pilgrim 的 Dive Into HTML5:

"HTML5 是繼 HTML4.01,XHTML 1.0/1.1 之後的下一代 HTML"

值得一提的是,我們或許能看到 HTML6,然而按 Pilgrim 在 WHATWG 博客中的說法,下一代 HTML 很可能去掉版本號這一概念。

應用

來自 Wikipedia 的解釋:

"應用程序是計算機用來執行特定任務的軟件"

HTML5 應用

從用戶的角度,HTML5 應用和其它的計算機應用程序還不完全一樣,但已經很接近。從開發者的角度,HTML5 應用是一些基於 HTML,JavaScript,CSS 的程序,它們使用開放技術,可以離線使用,可以取代諸如 Silverlight 及 Flash 等專用平台的部分工作。或者說,多年來,你用來創建 Web 頁面的東西,現在可以用來創建類似桌面和智能手機程序的應用。

開源模式帶來轉變

O’Reilly 創始人,Tim O’Reilly,一位開源的支持者,曾在《Open Source Paradigm Shift》中如是說:

"IBM 對個人電腦設計的商品化使利潤從硬件轉移到軟件這一層面,而開源將帶來新的財富"

價值在不同的層面轉移,HTML5 將成為新的層面,商品的價值在下降,現時的浏覽器已經成為商品,但這並沒有問題,只要它們都遵守標准。人們說,我們可以將操作系統置入浏覽器中,但這行不 通,如果我們可以從過去的經歷中學到些什麼,那就是,不能簡單照抄過去的模式,好比廣播到電視的變遷,你不能簡單地在一個播音員面前放台攝像機完事,將操 作系統置入浏覽器未必比 HTML5 離線應用本身更有價值。

發布渠道的重要

諸如 蘋果應用商店,Android 應用商店一類的渠道將成為主導,另外,一些新的,象 Valve 游戲渠道,Netflix 電影渠道一類的東西將會出現,在”雲“時代,這些發布渠道將像桌面時代的操作系統一樣用來對用戶進行組織和歸類。

我們是如何到達現在這個階段的?

有兩個關鍵的因素。

感謝Web標准

盡管浏覽器市場並不統一,但至少他們都運行 HTML,JavaScript 和 CSS。當我們希望通過 Web 推出一些東西的時候,我們知道,無論如何,用戶都能看到,然而你能想象人們都自己定義 Web 時的情景嗎,假如有人不使用 HTTP協議,或者不使用 HTML,那才是世界的末日。W3C 一類的組織讓各個浏覽器廠家都保持同一個方向。

還好,我們並沒有很多渲染引擎

浏覽器並不好做,數十億的網頁,參差不齊的代碼,這些東西讓獨立開發者沒有機會單獨設計浏覽器,因此,有能力設計浏覽器的始終是那麼一小撮廠商,事 實上,時至今日,我們只有四種主要的浏覽器渲染引擎,Trident (IE), Gecko (Mozilla, Firefox), WebKit (Chrome, Safari), 以及 Presto (Opera),而眾多浏覽器都是建立在這些渲染引擎之上的。這意味著,不管在什麼樣的設備上,我們不用太擔心它使用什麼樣的浏覽器,不管什麼設備,只要 它有一個浏覽器,就有一個可以運行 HTML5 的環境。

標准何日面世?

關於 HTML5 成為標准的時間,Ian Hixie 的說法最受認可:

"根據估計,HTML5 直到 2022 年才會形成 W3C 推薦標准"

然而,雖然標准的形成尚待時日,但浏覽器廠商已經在實現各種 HTML5 功能。

功能探測VS浏覽器探測

如果你是開發者,你可以使用那些高級功能,但需要進行功能探測並提供漸進式設計。坊間有大量的功能探測庫,如 Modernizer ,另外,Mark Pilgrim 有一個清單,它可以讓你探測任何功能。

離線API

離線 API 是一切 HTML5 應用的基礎,不單單是離線數據的事,對開發者來說,擁有本地存儲(localStorage) 自然很好,但如何讓程序完全離線運行?Application Cache 是答案。如果不能離線保存源文件和數據,我們就無法實現離線的 HTML5 應用。

我們目前有幾種離線存儲機制,簡單的如 localStorage 和 SQL 存儲引擎,已經有一些浏覽器在支持了,而最新的明星是 Indexed Database,它得到了所有主 流浏覽器支持。這些離線保存應用和數據的能力,是 HTML5 的基礎,目前,Webkit,Firefox 已經可以實現,而 IE9 也即將實現。即時 IE9 的支持還需要等待,想一下,最需要離線應用的場合是哪裡,自然是智能手機和上網本,智能手機多數都是用 Webkit。

W3C Web 應用工作組:HTML5 應用的下一步

W3C WebApps 標准已經做了大量工作,包括 API 及 HTML5 Web 程序細則。

HTML5 應用的打包部署

HTML5 apps – QuirksBlog 博客文章中說,"對於本地/離線 HTML5 應用,W3C Widget packaging and configuration 是首選機制,並將成為事實標准,很多廠商已經開始對之進行實現。W3C Widgets 支持任意平台的 Vodafone S60 和 Samsung 手機, Opera 桌面與移動浏覽器,Bolt 浏覽器 以及 Windows Mobile 6.5。BlackBerry 也支持,不過需要特殊的 Java 包。"

這些都是標准,本質上講,如果你有一個 HTML5 應用,它就會包含 HTML, CSS, 以及 JS,這些標准只不過偶是幫助開發者將他們的程序打包發行,如果你熟悉 PEAR, 它們是很相似的概念。你可能需要一些元數據,告訴系統你的程序是如何打包在一起的,在支持這些標准的平台上,你就可以保證你的用戶可以順利運行這些程序。

其它

HTML5 還有更多 API 可以幫助開發者創建應用,這些 API 可以讓你的程序訪問諸如本地文件,攝像頭,SOCKET 通信服務,以及硬件動畫加速等。這些 API 僅僅是開端,這樣的 API 後期會越來越多。

HTML5 程序可以應用在哪裡?

當然是浏覽器,如果一個設備擁有一個浏覽器或渲染引擎,而且這個引擎是現代引擎,它就可以運行 HTML5 程序。HTML5 程序會應用在以下幾種場合。

桌面

如果你擁有一個符合 Web 標准的浏覽器,就可以運行 HTML5 應用。桌面仍然很重要。

指定站點浏覽器

諸如 Gmail 一類的站點可以看做一個應用,使用專門的浏覽器運 行,這樣的浏覽器沒有地址欄,是專門用來運行指定站點應用的,甚至可以制作一個安裝包來分發。以下資源值得一看,Prism, Fluid/Fluidium 以及 NativeHost。

移動領域

這是 HTML5 最熱門的運行場所。iPhone 可以和很多程序集成,將你的程序顯示在它的今日桌面(這裡有一個教程),Android 也支持需要的 HTML5 API,但集成不夠好。未來幾年,支持 HTML5 的移動浏覽器將如雨後春筍,將你的應用向 HTML5 遷移是很明智的,因為 HTML5 將很好地運行在這些設備上。

跨界領域

已經有公司即將發布電視平台,Google TV 以及 Apple TV,Google 表示,他們的 TV 平台將支持 HTML5,我們不知道蘋果的 TV 平台將支持什麼,鑒於他們最近對 HTML5 的一系列炒作,很有可能也支持。另外 一些電視盒廠商,如 Boxee 業已開始支持 HTML5,如果你想為 Boxee 開發應用,與其專門為它開發,不如直接使用 HTML5。

跨界領域擁有大量的平台,那些可以連接電腦的電視的數量在不斷增長,我們已經可以在電視上全屏觀看 YouTube,而備受歡迎的 Wii 則內置了 Opera。所有這些,都將借助 HTML,CSS 與 JavaScript。

HTML5 應用商店

Eric Meyer 講到了 HTML5 應用程序問題,他將 HTML5 應用成為 Web Stack Apps, HTML5 要獲得更多關注,可以建立 HTML5 應用商店。Chrome 正在這樣做,而 Palm 已經有了一個這樣的東西。

應用商店是很好的東西,開發者可以直接得到報酬,而無需像現在這樣靠廣告維持,同時,用戶也將有一個地方去為他們的設備尋找程序。

HTML5市場前景

HTML5 在快速成長,值得所有人密切關注,最近的一兩年,會有很多公司進入這個領域,我們或許會在 Chrome 應用商店看到一些重量級廠商,我們也有希望在 Google TV 和 Apple TV 領域看到一些應用商店的出現。HTML5 會像傳統的 Flash,Flex,Silverlight,Objective-C 那樣,形成自己的生態系統。HTML5 將比 Flash, Flex, Silverlight 以及 Objective-C 更容易出現在任何設備。

對於年輕一代開發者,HTML5 應當是他們首選技能,HTML5 會形成很大的市場,很有很多公司需要這方面的人才。

原文作者 

Alex Kessinger 是一名 Yahoo 前端工程師,他的博客地址是alexkessinger.net, 他還是tastestalkr.com的合伙創始人,現居舊金山灣區。

copyright © 萬盛學電腦網 all rights reserved