免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
深入解析跨平臺工具:背后技術(shù)、對應(yīng)開發(fā)階段及垂直發(fā)展 | Web App Trend
在本系列的第一篇文章(跨平臺領(lǐng)域的淘金潮——為什么跨平臺領(lǐng)域工具會改變現(xiàn)狀)中,為大家介紹了跨平臺工具產(chǎn)生的背景以及其粗略的介紹。
那么接下來,究竟選擇Web App還是本機App,在眾多的跨平臺工具中又該何去何從? 你也許能從本篇文章中得到你想要的答案。
一個跨平臺工具由五部分組成,它們和app生命周期的五個階段相對應(yīng),這五個階段分別為開發(fā)階段,集成階段,發(fā)布階段,部署階段和管理階段。

1.開發(fā)階段跨平臺工具提供從低級到高級的各類開發(fā)語言,底層精簡的語言比如LiveCodeLua以及像HTML,CSSJavaScript這樣的web語言,中間層語言如JavaC#/.NET以及像C++這樣的更底層的語言。 

許多工具都提供可視化拖放環(huán)境,另外一些則只提供限制性的基于模板的app開發(fā)流程。一些工具只針對特定的開發(fā)人群,例如Impact JSLime JS Javascript 框架針對游戲開發(fā)者,而RhoMobileWorklight則用于企業(yè)級開發(fā)??缙脚_開發(fā)工具(CPTs)提供不同的語言來滿足各類開發(fā)者的需求,無論你是腳本開發(fā)人員、經(jīng)驗豐富的web開發(fā)人員、有創(chuàng)造性的設(shè)計者還是核心軟件開發(fā)人員。

開發(fā)階段的核心部分包括集成開發(fā)環(huán)境(IDE)、仿真器以及調(diào)試器。Eclipse是當前最流行的開源IDE,作為跨平臺的開發(fā)環(huán)境可以在PC、Mac以及Linux上使用。許多供應(yīng)商在Eclipse之上提供額外的插件和仿真器。一些供應(yīng)商會專門為企業(yè)級應(yīng)用的開發(fā)人員和品牌設(shè)計人員提供免安裝、基于web的開發(fā)環(huán)境。 

開發(fā)階段也包括源碼控制,團隊協(xié)作和工作流輔助工具。RhoMobile公司的 RhoHub開發(fā)平臺使用Git套件進行源碼管理和團隊協(xié)作。UnityAppcelerator、RunRev提供了一個組件交易市場,設(shè)計及開發(fā)人員可以通過此交易市場出售自己的組件,旨在利用這些現(xiàn)成的組件幫助他人縮短開發(fā)周期。Sencha201111月也提供類似的組件出售市場,而CoranaMarmalade則分別推出了模板庫和代碼社區(qū)服務(wù)。 

2.集成階段本階段是有關(guān)如何與本地設(shè)備功能、云服務(wù)APIs及企業(yè)數(shù)據(jù)庫進行集成的。 

為了集成本地設(shè)備功能,通常的做法是使用JavaScript以及PhoneGap APIs和庫,這些捆綁集成在一個稱為混合-本地(hybrid-native)的應(yīng)用程序中。WorklightAppMobi、FeedhenryBKrender在他們提供的工具中也包含PhoneGap功能。MoSyncQt使用類似的方法,將本地APIs和平臺無關(guān)的APIs抽象集合封裝在一起。

開發(fā)者使用像JavaScript、LuaLiveCode或者C++這樣的編程語言提供的APIs,來與本地設(shè)備功能集成在一起。不同目標平臺上功能相似的函數(shù)共享相同的工具級別API,這些API在業(yè)務(wù)邏輯層面上提供更高級別的代碼復用,而在UI和特定硬件特性的支持方面的復用程度就沒有那么充足。 例如,Mono TouchMono for Andriod就沒有共享相同的UI APIs,所有與設(shè)備特性有關(guān)的APIs在不同設(shè)備上面的表現(xiàn)也不盡相同。Apps能夠在運行時調(diào)用設(shè)備功能,調(diào)用要么在編譯期被解釋,要么通過運行時提供的橋接功能傳遞給底層平臺。 

集成階段另一個主要部分是要連接到cloud APIsCloud APIs正在逐漸變成一個屬于自己的細分市場。對于開發(fā)者來說,社交游戲網(wǎng)絡(luò)顯得越來越重要,這里不僅僅指Facebook或者LinkedInApple Game Center、OpenFeint、ScoreloopSkiller,Papaya MobileSwarm都為社交游戲提供基于云的APIs。 

社交游戲APIs僅僅是其中的冰山一角。包括Bango、Social GoldPaythru在內(nèi)有超過14家供應(yīng)商提供應(yīng)用程序內(nèi)計費以及虛擬物品交易平臺。有超過27個像App Annie、DistimoFlurry這樣的銷售分析工具。有超過8個像BugsenseTestflight這樣的app測試工具。VisionMobileAtlas服務(wù)有這些提供商的詳細列表。當然,這其中不乏合并的跡象。舉個特殊例子來講,Appcelerator雖然有自己的分析和貨幣平臺,但還是通過收購Cocoafish來集成社交共享和消息推送功能。 

針對企業(yè)級(B2B)開發(fā)者使用的應(yīng)用平臺通常會提供數(shù)據(jù)庫連接管理服務(wù)。RhoMobile推出RhoConnect移動app集成服務(wù),當后臺有更新時該服務(wù)將更新推送給設(shè)備以實現(xiàn)數(shù)據(jù)同步。Antenna、FeedhenryWorklight推出的跨平臺工具(CPT)提供類似功能的集成中間件。其他專注于企業(yè)級應(yīng)用程序開發(fā)的著名跨平臺工具有Stackmob,OracleADF),AperraSybaseUnwired Plaform)等。 

3.構(gòu)建階段跨平臺的“魔力”通常體現(xiàn)在構(gòu)建階段。構(gòu)建應(yīng)用程序有許多不同的方法。兩種流行的方法:一種是將代碼和UI模板直接編譯成本地平臺二進制碼;另一種是將代碼打包進本地shell然后在運行時解釋執(zhí)行,這種本地shell可以是一個只包含該代碼的“簡易瀏覽器”,也可以是設(shè)備自帶的瀏覽器渲染引擎。下一章節(jié)我們將討論構(gòu)建跨平臺apps的技術(shù)方法。 

4.發(fā)布階段發(fā)布應(yīng)用包含將app提交到Apple App Store或者Andriod Market這樣的App Store,或者是內(nèi)部發(fā)布并且可以選擇是否將app托管到像Feedhenry,AntannaRhoMobile或者Worklight這樣的私有企業(yè)App Store。包括Sencha2.0,AppMobiPhoneGap XDKRhoMobileRhoHub在內(nèi)的許多跨平臺工具(CPT)產(chǎn)品都在一定程度上協(xié)助管理app發(fā)布過程。包括Appcelerator LiveCodeCorona在內(nèi)的一些提供商將在其網(wǎng)站上展示apps,而Unity則支持將app發(fā)布到其他平臺上。  

5.管理階段:提供App管理功能是面向企業(yè)級的跨平臺工具(CPTs)的特色,比如Worklight,RhoMobileAntannaFeedhenryApp管理包括消息推送,數(shù)據(jù)流管理,遠程安裝(卸載),策略管理和庫存管理。商業(yè)Apps管理增加了業(yè)績管理功能(即分析工具),該功能可以由工作方法商合作伙伴提供。例如Appcelerator就將自己的分析工具整合進Titanium,而Ansca MobileFlurry的分析APIs整合進自己的Corona SDK中。 

跨平臺工具(CPTs)的技術(shù)分類

在這份跨平臺工具(CPTs)分析報告中,我們甄別出了五種不同的技術(shù)方法,即:JavaScript框架,app工廠,web-to-native框架,運行時以及源代碼翻譯。每種技術(shù)都針對特定的開發(fā)人群(從非技術(shù)人員到經(jīng)驗豐富的開發(fā)人員),并且可以滿足不同的app用例。這些技術(shù)方法并不是相互孤立的,許多工具混合使用這些技術(shù)方法。例如一些基于運行時的跨平臺開發(fā)工具(CPTs)解決方案都會增加一個網(wǎng)頁視圖組件,從而具有了創(chuàng)建混合web app 包裝器的功能。 

JavaScript frameworksJavaScript框架由許多代碼庫組成,旨在加速復雜web任務(wù)(例如管理觸摸屏交互,構(gòu)架跨瀏覽器UI, 管理游戲畫面等)的開發(fā)速度。主要提供商有jQuery MobileSencha Touch, Cocos2D,DHTMLX Touch, Zepto JS, Impact.js, iUI以及WinkJavaScript框架針對這樣一類web開發(fā)人員,他們想要創(chuàng)建可觸摸UIs,實現(xiàn)跨平臺瀏覽器兼容,提供本地外觀和感覺,或者是實現(xiàn)復雜的游戲功能。 

App factoriesApp工廠是能夠快速構(gòu)建簡單移動應(yīng)用的開源可視化設(shè)計工具。它們由一個可安裝或是基于云的開發(fā)環(huán)境構(gòu)成,在此開發(fā)環(huán)境中開發(fā)人員可使用模板、拖拽、或者向?qū)砩?/span>app代碼。利用App factories最簡單的可以創(chuàng)建基于RSS的新聞閱讀器或者經(jīng)濟型apps。在較高層面上,App factories提供基本的可拖拽設(shè)計功能。而在最高層面上,App factories提供無須編碼的,基于組件的設(shè)計方法,包括與設(shè)備和云集成。 

非開發(fā)人員也可以通過App factories創(chuàng)建他們自己的app。一些app工廠允許開發(fā)人員查看和修改自動生成的代碼。其他的app工廠提供包括分析,消息推送和廣告管理在內(nèi)的一系列post-download服務(wù)。這些App工廠包括AppMkr,AppsGeyser,Wix Mobile,Tiggr,Mobile Nation HQ,Mobjectify,Red FoundrySpot Specific。 

Web-to-native wrappersWeb-to-native框架是使用web HTML5,CSSJavaScript技術(shù)來生成本地apps的解決方案。web代碼和其實現(xiàn)本地功能所需要的庫文件被一起打包到本地app shell中。Apps使用web語言編寫,能夠訪問設(shè)備上的webView組件(一種“chromeless”瀏覽器組件)以及JavaScript API擴展,JavaScript API擴展使得app能夠使用通知、加速器、指南針、連接性、地理位置以及文件系統(tǒng)這樣的平臺功能,這些都是超乎瀏覽器通常所能提供的。 

web-to-native框架主要有PhoneGap,Uxebu’s Apparat.io以及Sencha v2Sencha v2還將這種包裝功能引進到JavaScript框架中來。另外一個例子就是MoSync Wormhole,它可以提供比PhoneGap更強大的API功能集。web-to-native框架針對這樣一類web開發(fā)人員,他們需要將web apps轉(zhuǎn)換為本地apps并通過app商店進行分銷、訪問本地設(shè)備功能或者做一些優(yōu)化工作。 

Runtimes運行時是本地操作系統(tǒng)之上的一種執(zhí)行環(huán)境以及跨平臺兼容層。運行時從本質(zhì)上來說屏蔽了app在不同底層平臺上的差異。不同的運行時有不同的大小和復雜性,并且使用不同的方法在設(shè)備上面執(zhí)行代碼,例如虛擬化,解釋,及時編譯或者提前編譯。 

Java ME,BREWFlash LiteOpenwave MIDAS都是早期運行時的先驅(qū)。這些重量級的執(zhí)行環(huán)境似乎介于瀏覽器和完整的操作系統(tǒng)之間。但這些工具在2009年前后就不再流行,原因是:開發(fā)者感覺很痛苦(平臺分散、無直接市場渠道);缺乏手機制造商的合作(集成復雜度);與Aandriod、iOSHTML5瀏覽器的競爭。 

現(xiàn)在的跨平臺運行時將設(shè)備軟件層的復雜性轉(zhuǎn)移到了設(shè)計階段的開發(fā)工具中來。通常來講,跨平臺翻譯部分發(fā)生在設(shè)計階段(翻譯成進制代碼),部分發(fā)生在運行時(執(zhí)行進制代碼)。流行的運行時有Appcelerator,Adobe Flex,Corona,AppMobi,AntixUnity等。運行時針對這樣一些軟件開發(fā)人員,他們需要更寬泛的跨(本地)平臺或者跨屏幕(手機,電腦,游戲,電視等)功能。 

Source code translators源代碼翻譯器解決方案將源碼交叉編譯成中間字節(jié)碼,本地語言(如C++,Objective-C,JavaScript)或者直接轉(zhuǎn)化為更低級的機器碼(如匯編語言)。源代碼翻譯器通常和運行時元素結(jié)合在一起使用。 

舉個例子來說,Metismo(現(xiàn)在的AG軟件)將J2ME應(yīng)用程序轉(zhuǎn)換為C++,ActionScriptJavaScript,然后編譯成能在ARMMIPS,PowerPCx86設(shè)備上執(zhí)行的代碼。類似的,Eqela將一個使用類C語言編寫的app翻譯成目標平臺可運行的中間碼,例如在web瀏覽器上執(zhí)行的JavaScript,Java,C或者匯編語言。

Haxe/NME結(jié)合本地標準庫把類似ActionScript的Haxe(具有類似FlashAPI)源代碼轉(zhuǎn)換成ShockwaveC++代碼。XMLVM使用Java,.NET或者Ruby源碼,這些源碼先被編譯成字節(jié)碼,然后再交叉編譯成JavaScript,C++或者Objective C。其他的源代碼翻譯工具有MoSync,MarmaladeXamarin’s Mono。這些翻譯工具針對的是高級軟件開發(fā)人員,他們需要創(chuàng)建邏輯復雜、性能優(yōu)越的跨平臺apps或者需要對app進行優(yōu)化。 

跨平臺工具垂直發(fā)展

除以上五種技術(shù)手段外,跨平臺工具提供商已經(jīng)開始垂直分化,根據(jù)企業(yè),游戲,媒體應(yīng)用開發(fā)者的不同需求,為他們提供不同的解決方案。

企業(yè)級應(yīng)用平臺是跨平臺的開發(fā)工具,它支持應(yīng)用的整個生命周期(開發(fā)->集成->發(fā)布->管理),它具有數(shù)據(jù)連接器、中間件、云服務(wù)(如:應(yīng)用托管、策略管理、信息推送等)。很多這樣的平臺是面向企業(yè)的,而不是面向消費者的應(yīng)用。比較著名的移動應(yīng)用開發(fā)平臺有:Worklight, Kony, Antenna Mobility Platform, Application Craft, RhoMobile 以及Verivo等。

游戲開發(fā)工具是專門針對游戲開發(fā)者的完整的開發(fā)環(huán)境。游戲引擎是更為重量級的運行時組件;通常是由低級語言(如:C++語言)與用于編寫游戲邏輯部分的腳本語言(如:Lua語言)相結(jié)合。Unreal Unity在高端3D游戲市場完全處于領(lǐng)先地位。他們提供了一系列的集成開發(fā)工具、工作流及協(xié)作管理工具。在類似的游戲工具市場上,還有Moai, SiO2, Antix 和 Shiva3D等。雖然Marmalade 和 Corona支持更多的功能(如:支持本機UI元素),但是它們畢竟還是由一個舊版的游戲引擎發(fā)展而來的。也有一些像GameSalad這樣的稍微輕量級的游戲工具,GameSalad被稱為“游戲締造者”,它將app工廠提供的無須編碼方法和游戲引擎工具結(jié)合在一起。像Impact JS 和 Lime JS 這樣的輕量級JavaScript庫被認為是HTML5的游戲框架。

The next table lists over 50 cross-platform tools by technology approach, authoring language and deployment format (web vs. native).

下表列出了50多種跨平臺工具,從技術(shù)方法、開發(fā)語言及部署格式方面(網(wǎng)絡(luò)或本機)進行了展示。

跨平臺工具總表:我們的研究所關(guān)注的100種跨平臺工具總表如下。

部署格式:Web還是本機?

是用web瀏覽器來部署移動應(yīng)用程序還是創(chuàng)建本機應(yīng)用?這是令許多開發(fā)人員長期困擾的問題。Web apps 具有廣闊的市場前景,但只能在網(wǎng)絡(luò)上部署,并且相對于本地apps的用戶體驗也不是那么好,本地apps具有更好的設(shè)備集成度并提供更優(yōu)秀的用戶體驗,但是不能跨平臺,其潛在市場只能限定于特定平臺內(nèi)。

使用跨平臺工具可使這些區(qū)別模糊不清,Web程序員可以通過工具(如著名的Appcelerator)來開發(fā)本機應(yīng)用程序。Web開發(fā)者可以使用諸如PhoneGap這樣的Web-to-native框架在瀏覽器中動態(tài)調(diào)用本機設(shè)備的功能。

但是本機與web問題在部署時還是存在的。無論是web app還是本機應(yīng)用,在分銷渠道(網(wǎng)站或應(yīng)用程序商店)和經(jīng)驗積累(膚淺或深入)上都會有很大的不同。

 

HTML5的確增強了web瀏覽器的功能,例如:允許精確的可視化布局(畫布元素)和對視頻、持久存儲、地理定位、訪問聯(lián)系人名單、傳感器和SQL數(shù)據(jù)庫訪問的固有支持。同時,由于各瀏覽器實現(xiàn)HTML規(guī)范的方式是不同的,web程序員必須對由此帶來的巨大差異進行處理。在所有的移動瀏覽器當中,遵循HTML5規(guī)范方面做得最好的是Firefox Mobile,獲得了最高分10分,緊隨其后的是蘋果的iOS5平臺。與之相對的另一極端是Windows Phone7.5瀏覽器,它對HTML5規(guī)范的遵循程度大約只有蘋果的一半。桌面瀏覽器和電視瀏覽器在對HTML5規(guī)范的遵循程度方面,也存在同樣的多樣化和兩極化現(xiàn)象。上面的圖表是移動平臺對HTML5瀏覽器規(guī)范的遵循程度的得分情況。

這種“遵約分化”現(xiàn)象導致的后果是:web應(yīng)用開發(fā)者為了使他們的應(yīng)用能在各主流智能手機平臺上實現(xiàn)最優(yōu)運行,他們需要耗費大量的開發(fā)時間以及昂貴的成本。最典型的例子是“金融時報”廣受歡迎的HTML5應(yīng)用的開發(fā)商Assanka,該公司花了24人月來開發(fā)iPad平臺上的HTML5應(yīng)用—新聞閱讀器(news reader),又花了12個月把這一應(yīng)用移植到Android平臺。

Web Hybrid apps彌補不足

開發(fā)人員應(yīng)該選擇web還是本地apps? 混合app方法致力于結(jié)合web和本地apps兩者的優(yōu)點。像PhoneGapBKRender,Sencha v2, WorklightAppcelerator等許多跨平臺工具已經(jīng)可以進行混合apps開發(fā)。

從用戶的觀點來看,混合apps跟本地apps很相似,人們可以通過本地平臺app stores來尋找下載混合apps,同時使用相似的過程來安裝混合apps。安裝完成之后,混合apps可以從iOS這樣的主屏幕或者從Android這樣的app抽屜(drawer)中啟動,并且經(jīng)常可以在不需要數(shù)據(jù)連接的情況下正常運行。

從開發(fā)人員的角度來講,開發(fā)混合apps和開發(fā)本地apps的工作流很相似,只有一點不同的是,開發(fā)人員可以使用HTML,CSSJavaScript來編寫混合apps的某些部分。由于混合app開發(fā)模型在所有主流移動平臺上得到支持,使得不同平臺版本的app可以復用HTML,CSSJavaScript代碼。

混合apps由一個包含HTML,CSSJavaScript的本地代碼shell(或者說是一個包裝器)組成。當一個混合app運行在一臺設(shè)備上,該包裝器就會啟動一個web視圖的實例,同時加載其中的HTML,CSSJavaScript代碼。該web視圖實例通常是“chromeless”,即它沒有web瀏覽器控件,因此使得混合app看起來類似一個本地app。

 

下面的表格從技術(shù)和商業(yè)角度比較了本地,混合以及web app方法的異同。就像表格所顯示地那樣,混合apps將本地apps的特性和pure web apps的特性結(jié)合了起來。 

容易發(fā)現(xiàn)和獲?。?/strong>用戶可以像找本地apps一樣找到他們需要的混合apps。為了支持多個移動平臺的用戶,需要開發(fā)不同版本的app。

更好的用戶體驗:混合apps提供良好的用戶體驗。他們允許HTML代碼訪問本地APIs(以此來提供更豐富的用戶體驗),當然這是以非本地UI為代價的,因為這涉及到web技術(shù)。

用戶所有權(quán)和條款:就用戶所有權(quán)和條款來講,混合apps和本地apps完全一樣。開發(fā)人員通過本地平臺app stores來和客戶進行交易,并且必須遵守app store強加的包括準許政策在內(nèi)的各種條款和約束。

迎合用戶:由于混合apps安裝在設(shè)備上,并且顯示在主屏幕或者app抽屜上面,他們在留住用戶和重復使用方面和本地apps是完全一樣的。用戶可以像啟動(launch)本地apps一樣來啟動混合apps,而不用去記住任何URLs,或者像pure web apps一樣在主屏幕上顯式生成一個捷徑。

盈利模式:混合apps的開發(fā)者可以和本地apps開發(fā)者一樣通過相同的方式盈利,這里面包括下載后付款或者應(yīng)用程序內(nèi)支付。

最后,對于一些UI信息豐富的app,混合apps允許顯著的UI資源共享并且易于web開發(fā)。然而就像上面圖表顯示的那樣在不同的移動平臺上web瀏覽器的實現(xiàn)都千差萬別。結(jié)果,充分使用web瀏覽器功能的高級apps需要自適應(yīng)來完全支持不同平臺的移動瀏覽器。

我該使用哪個工具?

我們追蹤調(diào)查過超過100個跨平臺開發(fā)工具,他們都各不相同。如果避開他們支持的編程語言和目標平臺不談,我們可以發(fā)現(xiàn)使用跨平臺開發(fā)工具開發(fā)的app有一些收斂的類別(a convergence in the categories of apps)。開發(fā)者調(diào)查報告顯示,如果不考慮主要的開發(fā)工具的話,35%的調(diào)查對象認為企業(yè)級apps是其首選。生產(chǎn)力,游戲,教育/參考和實用工具排名前五。

與此同時,這些開發(fā)工具不能被化為到具體的app類別中來,當然開發(fā)人員在決定使用哪個跨平臺工具之前,應(yīng)該考慮他們的應(yīng)用背景以及需要。下面這個表格提供了一些指導意見。

 


本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
生活服務(wù)
分享 收藏 導長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服