JavaScript以原生姿態(tài)進(jìn)入iOS等應(yīng)用程序
譯文作為一項(xiàng)Telerik技術(shù)方案,NativeScript旨在利用單一代碼庫(kù)構(gòu)建面向多平臺(tái)的原生移動(dòng)應(yīng)用程序,并即將于今年四月底發(fā)布其1.0版本。Telerik方面還在本周發(fā)布了一套beta測(cè)試程序,旨在將NativeScript推向開(kāi)源。
NativeScript官方網(wǎng)站以及GitHub頁(yè)面在描述該運(yùn)行時(shí)時(shí)指出,其幫助開(kāi)發(fā)人員利用JavaScript與TypeScript實(shí)現(xiàn)面向iOS、Android以及Windows Phone(通過(guò)Windows Universal戰(zhàn)略)的原生應(yīng)用程序開(kāi)發(fā)工作,并實(shí)現(xiàn)不同平臺(tái)之間的代碼共享。“擁有Web技能且希望構(gòu)建真正原生應(yīng)用程序的開(kāi)發(fā)人員應(yīng)該會(huì)因此而感到振奮,這是因?yàn)槿缃袼麄兘K于迎來(lái)了一種能夠在無(wú)需學(xué)習(xí)定制化語(yǔ)言或者框架之前提下完成這一目標(biāo)的有效途徑,”Telerik公司副總裁Todd Anglin指出。
NativeScript所提供的應(yīng)用程序擁有一套原生UI,Anglin表示。“具體而言,此類應(yīng)用程序并非在Web視圖當(dāng)中進(jìn)行HTML渲染——正如我們?cè)趫?zhí)行混合型應(yīng)用程序或者傳統(tǒng)瀏覽器應(yīng)用程序時(shí)的情況……NativeScript能夠幫助底層JavaScript引擎作用于iOS、Android以及Windows平臺(tái)之上,進(jìn)而控制一套原生UI層。”
開(kāi)發(fā)人員運(yùn)用的NativeScript庫(kù)能夠?qū)⒉煌脚_(tái)之間的差異屬于進(jìn)行抽象化處理; 除此之外,開(kāi)發(fā)者還能夠隨意使用CSS與ECMAScript 5。這套Node.js服務(wù)器端JavaScript平臺(tái)“能夠充當(dāng)移動(dòng)應(yīng)用程序當(dāng)中JavaScript引擎所扮演的角色,”Anglin解釋稱。
NativeScript還提供面向原生平臺(tái)API的全面接入能力,而且其擁有一套預(yù)封裝的JavaScript虛擬機(jī)環(huán)境; 針對(duì)NativeScript應(yīng)用程序所編寫(xiě)的JavaScript代碼仍然能夠作為JavaScript直接運(yùn)行在設(shè)備之上。“NativeScript將在由iOS(即JavaScriptCore)、Android(即V8)以及Windows(即Chakra)所提供的原生JavaScript虛擬機(jī)當(dāng)中執(zhí)行其JavaScript代碼,”Anglin補(bǔ)充道。NativeScript提供“一套JavaScript代理,能夠?qū)⑷康讓釉鷌OS/Android/Windows API交付至對(duì)應(yīng)的JavaScript引擎,進(jìn)而通過(guò)對(duì)JavaScript的全面控制實(shí)現(xiàn)原生設(shè)備功能的調(diào)用。”
NativeScript同時(shí)能夠處理該跨平臺(tái)原生UI,并在應(yīng)用程序構(gòu)建完成后為其提供對(duì)特定平臺(tái)UI部件加以解析的標(biāo)記語(yǔ)言。“舉例來(lái)說(shuō),當(dāng)一位開(kāi)發(fā)人員向應(yīng)用程序當(dāng)中添加一個(gè)按鈕時(shí),NativeScript將自動(dòng)利用來(lái)自iOS、Android以及Windows系統(tǒng)中適用的原生按鈕UI控制機(jī)制。”
在Anglin看來(lái),NativeScript與其它移動(dòng)開(kāi)發(fā)技術(shù)存在著諸多差異,例如Appcelerator Titanium——后者同樣能夠通過(guò)JavaScript實(shí)現(xiàn)原生移動(dòng)應(yīng)用程序之構(gòu)建。Titanium當(dāng)中包含大量自定義機(jī)制,這使其存在專有性傾向,Anglin解釋稱。
“NativeScript應(yīng)用程序與混合型應(yīng)用程序(例如PhoneGap或者Sencha)之間的根本性差異在于,NativeScript并不依賴瀏覽器/Web UI層實(shí)現(xiàn)應(yīng)用程序渲染。其獨(dú)立于瀏覽器之外實(shí)現(xiàn)原生UI渲染。……對(duì)于希望能夠提供平滑順暢的動(dòng)畫(huà)與滾動(dòng)效果的移動(dòng)應(yīng)用程序來(lái)說(shuō),瀏覽器/Web UI層通常屬于其性能瓶頸所在。”
自去年六月發(fā)布NativeScript以來(lái),Telerik公司希望通過(guò)提供優(yōu)質(zhì)的UI工具及平臺(tái)調(diào)整方案進(jìn)一步借助NativeScript實(shí)現(xiàn)盈利。
原文標(biāo)題:JavaScript goes native for iOS, Android, and Windows Phone apps