該如何選擇適合你的移動(dòng)開(kāi)發(fā)路線?
譯文【51CTO譯文】毫無(wú)疑問(wèn)的是:如今企業(yè)已經(jīng)開(kāi)始以嚴(yán)肅認(rèn)真的態(tài)度看待移動(dòng)商務(wù)類(lèi)應(yīng)用程序的開(kāi)發(fā)及交付工作。然而無(wú)論企業(yè)的最終目標(biāo)是借此傳播信息、推銷(xiāo)產(chǎn)品、與業(yè)務(wù)伙伴加深合作抑或是將移動(dòng)應(yīng)用本身作為產(chǎn)品加以市場(chǎng)推廣,移動(dòng)平臺(tái)的更新與進(jìn)化永遠(yuǎn)是不變的趨勢(shì),這就使得許多IT部門(mén)需要在選擇***系統(tǒng)版本方面下一番苦功——除此之外,使用哪些工具與執(zhí)行方案才能讓自己的應(yīng)用產(chǎn)品在正確的時(shí)間交付給正確的受眾也是一項(xiàng)大問(wèn)題,而這些與設(shè)備本身毫無(wú)關(guān)系。
在這些新興企業(yè)應(yīng)用當(dāng)中,有一些項(xiàng)目的設(shè)計(jì)壽命周期較短,其中尤以旅游指南類(lèi)應(yīng)用為甚;而其它應(yīng)用則往往能夠在未來(lái)的數(shù)年內(nèi)持續(xù)發(fā)揮作用。而以增強(qiáng)現(xiàn)實(shí)類(lèi)閱讀器為代表的一類(lèi)應(yīng)用則需要不斷收集實(shí)時(shí)信息、訪問(wèn)手機(jī)的各項(xiàng)底層功能,例如用戶當(dāng)前地理位置、攝像頭、陀螺儀及運(yùn)動(dòng)傳感器等等。另有一些應(yīng)用則對(duì)移動(dòng)設(shè)備的屏幕尺寸及用戶手勢(shì)操作方案提出更高的要求。盡管應(yīng)用程序林林總總,但它們都具備一大共同點(diǎn),即每家企業(yè)都希望以盡可能低廉的成本與最短的周期來(lái)進(jìn)行應(yīng)用開(kāi)發(fā),而且需要應(yīng)用產(chǎn)品能夠運(yùn)行于多種系統(tǒng)平臺(tái)之上——至少要支持Android、iOS以及Windows Phone。
顯而易見(jiàn),這樣的需求催生了開(kāi)發(fā)工具市場(chǎng)的一派繁榮景象。不過(guò)在浩如煙海的開(kāi)發(fā)方案中做出選擇也絕非易事,目前還沒(méi)有任何一款工具能同時(shí)滿足周期短、成本低、功能豐富這三大應(yīng)用程序開(kāi)發(fā)需求。而且一旦在進(jìn)行選擇時(shí)稍有不慎,大家就可能發(fā)現(xiàn)自己的開(kāi)發(fā)方案無(wú)法順應(yīng)時(shí)代潮流以及用戶的***訴求——就以Facebook為例,他們?cè)谌硇耐度際TML5懷抱后才發(fā)現(xiàn)這套新機(jī)制與iOS應(yīng)用很難協(xié)調(diào)一致,這可真是欲哭無(wú)淚的悲劇性結(jié)局。
要想做出正確決策,關(guān)鍵在于認(rèn)真評(píng)估我們的應(yīng)用程序產(chǎn)品在當(dāng)前及未來(lái)所要面對(duì)的潛在需求,并在滿足用戶需求與縮短應(yīng)用開(kāi)發(fā)周期之間找出恰到好處的平衡點(diǎn)。千萬(wàn)別在一棵樹(shù)上吊死,我們的應(yīng)用程序絕不能只針對(duì)某一款特定系統(tǒng)平臺(tái)。積極接納多種開(kāi)發(fā)平臺(tái),滿足各類(lèi)用戶群體的心理預(yù)期才是合理的發(fā)展方向。在下面的文章中,我將與大家系統(tǒng)展開(kāi)討論,看看如何才能針對(duì)移動(dòng)開(kāi)發(fā)需求選擇正確的前進(jìn)路線。
移動(dòng)應(yīng)用程序開(kāi)發(fā)的三條陽(yáng)關(guān)大道
移動(dòng)應(yīng)用開(kāi)發(fā)方案分為三種不同類(lèi)型,即Native、Web與Hybrid。要想明智地選擇開(kāi)發(fā)方案,首先要對(duì)三者的優(yōu)勢(shì)與缺點(diǎn)了然于胸。在搞清狀況之后,我們才能決定應(yīng)用程序的復(fù)雜程度并選擇產(chǎn)品的目標(biāo)運(yùn)行設(shè)備。如果大家希望用戶早一點(diǎn)開(kāi)始使用自己的應(yīng)用產(chǎn)品,那么對(duì)功能及特性進(jìn)行簡(jiǎn)化是必不可少的手段——簡(jiǎn)潔明了的特色一方面讓我們的程序擁有鮮明的市場(chǎng)定位,同時(shí)也能讓我們?cè)谶x擇應(yīng)用程序框架時(shí)少走彎路、縮短開(kāi)發(fā)周期。
雖然最基本的跨平臺(tái)特性也需要支持至少三大主流系統(tǒng),但這并不代表我們的應(yīng)用程序開(kāi)發(fā)成本也將隨之提高到三倍。然而如果我們?cè)诮?jīng)過(guò)謹(jǐn)慎的市場(chǎng)調(diào)查后決定在特定的某一款移動(dòng)操作系統(tǒng)上全力一搏,整個(gè)開(kāi)發(fā)過(guò)程的時(shí)間及資金成本仍然會(huì)得到顯著削減??偠灾?,跨平臺(tái)特性帶來(lái)的開(kāi)銷(xiāo)并沒(méi)有想象中那么大,但也絕沒(méi)小到可以忽略不計(jì),因此大家必須認(rèn)真權(quán)衡成本、人力投入以及產(chǎn)品交付周期,看看跨平臺(tái)到底能不能為我們賺回票價(jià)。
純Native應(yīng)用能夠提供最理想的設(shè)備契合度與用戶體驗(yàn),但卻對(duì)開(kāi)發(fā)人員的技術(shù)水平有著嚴(yán)格要求,同時(shí)也需要投入大量時(shí)間。純Web類(lèi)應(yīng)用程序——包括那些利用WebKit偽裝成Native應(yīng)用的類(lèi)型——在部署效率方面效果拔群,但局限性也同樣明顯。除二者之外,Hybrid型應(yīng)用程序開(kāi)發(fā)也應(yīng)時(shí)而生,它將Native預(yù)創(chuàng)建容器與動(dòng)態(tài)Web代碼加以結(jié)合,試圖打造兼具二者優(yōu)勢(shì)的新型開(kāi)發(fā)方案。然而一旦采取這種方案,我們的整個(gè)開(kāi)發(fā)流程就會(huì)被束縛在特定的某一家軟件服務(wù)商身上,由此帶來(lái)的局限性與問(wèn)題同樣令人頭痛。
一旦選定了開(kāi)發(fā)方案,我們接下來(lái)就要準(zhǔn)備好采購(gòu)對(duì)應(yīng)的移動(dòng)開(kāi)發(fā)工具包。如果大家剛剛開(kāi)始與移動(dòng)應(yīng)用開(kāi)發(fā)工作打交道,希望能夠以測(cè)試為監(jiān)控工具嚴(yán)格按照預(yù)期的時(shí)間及規(guī)劃進(jìn)行產(chǎn)品研發(fā),那么請(qǐng)務(wù)必重視自己這次小試牛刀的機(jī)會(huì)。作為***款應(yīng)用產(chǎn)品,我們一方面要努力在預(yù)定周期內(nèi)完成開(kāi)發(fā)工作,另一方面則不妨降低對(duì)于功能性的預(yù)期,以樸實(shí)穩(wěn)健的態(tài)度完成自己的試水。#p#
移動(dòng)應(yīng)用開(kāi)發(fā)的***條陽(yáng)關(guān)大道:Native應(yīng)用開(kāi)發(fā)方案
針對(duì)單一移動(dòng)操作系統(tǒng)進(jìn)行Native應(yīng)用開(kāi)發(fā)可以說(shuō)是移動(dòng)開(kāi)發(fā)領(lǐng)域最為傳統(tǒng)的解決方案,但它的開(kāi)發(fā)周期也是最長(zhǎng)的。由于各家移動(dòng)平臺(tái)供應(yīng)商所提供的編程環(huán)境完全不同,加之各系統(tǒng)的用戶界面風(fēng)格也大相徑庭,這就導(dǎo)致跨平臺(tái)成為開(kāi)發(fā)人員心中永遠(yuǎn)的噩夢(mèng)。蘋(píng)果的iOS設(shè)備的Xcode IDE采用專(zhuān)門(mén)的Objective-C語(yǔ)言,而谷歌的Android編碼器則一般采用開(kāi)源Eclipse IDE與Android的原生Android開(kāi)發(fā)工具(簡(jiǎn)稱(chēng)ADT)Java編程插件組合。微軟公司則專(zhuān)門(mén)為Windows移動(dòng)設(shè)備準(zhǔn)備了Visual Studio Express以及Windows Phone SDK,在針對(duì)WP7設(shè)備的開(kāi)發(fā)工作中程序員需要使用專(zhuān)門(mén)的C#及.Net語(yǔ)法進(jìn)行編程。
雖然供應(yīng)商提供的Native工具能夠確保訪問(wèn)到設(shè)備的每一項(xiàng)功能,但開(kāi)發(fā)工作同樣需要對(duì)計(jì)算機(jī)科學(xué)了如指掌的優(yōu)秀軟件工程師。除了開(kāi)發(fā)周期過(guò)長(zhǎng),Native開(kāi)發(fā)方案所需要的資金投入也最為昂貴。雖然設(shè)備供應(yīng)商會(huì)免費(fèi)為我們提供開(kāi)發(fā)工具(供應(yīng)商樂(lè)于鼓勵(lì)針對(duì)其移動(dòng)平臺(tái)的開(kāi)發(fā)行為,這等于在無(wú)形之中壯大了其軟件支持陣營(yíng)),但開(kāi)發(fā)人員仍然需要經(jīng)過(guò)系統(tǒng)學(xué)習(xí)來(lái)掌握這些各具特色的編程技能。另外移動(dòng)開(kāi)發(fā)與傳統(tǒng)開(kāi)發(fā)工作一樣,編程難度會(huì)隨著應(yīng)用程序自身的復(fù)雜性而呈指數(shù)級(jí)上升——經(jīng)驗(yàn)豐富的C語(yǔ)言程序員可能只需幾個(gè)小時(shí)的摸索就能搞定簡(jiǎn)單的移動(dòng)應(yīng)用程序,但更為復(fù)雜的軟件產(chǎn)品則會(huì)輕易消耗掉整個(gè)開(kāi)發(fā)團(tuán)隊(duì)數(shù)百小時(shí)的工作時(shí)間,同時(shí)帶來(lái)數(shù)萬(wàn)美元的人力成本。
但對(duì)于那些預(yù)定壽命周期較長(zhǎng)或是對(duì)于性能競(jìng)爭(zhēng)力要求較高的應(yīng)用程序而言,Native開(kāi)發(fā)是毫無(wú)疑問(wèn)的***選擇。但如果大家希望自己的應(yīng)用程序能夠快速上線,那么支付一大筆資金用于雇傭資深技術(shù)顧問(wèn)或是組織嚴(yán)格的技能培訓(xùn)(例如著名的Big Nerd Ranch課程)恐怕是不可避免的——可以說(shuō)沒(méi)有雄厚的經(jīng)濟(jì)實(shí)力作為支持,要想在預(yù)定時(shí)間內(nèi)完成Native應(yīng)用開(kāi)發(fā)工作簡(jiǎn)直是天方夜譚。#p#
移動(dòng)應(yīng)用開(kāi)發(fā)的第二條陽(yáng)關(guān)大道:基于Web的應(yīng)用開(kāi)發(fā)方案
第二類(lèi)方案同樣受到熱烈的追捧,這就是以Web為基礎(chǔ)的開(kāi)發(fā)模式。這類(lèi)應(yīng)用程序產(chǎn)品其實(shí)并不是嚴(yán)格意義上的應(yīng)用,而是為特定網(wǎng)站量身訂制出的特殊軟件,能夠模擬出應(yīng)用程序所應(yīng)該具備的外觀與使用感受。時(shí)至今日,這仍然是最便捷的開(kāi)發(fā)方案,而且應(yīng)用程序邏輯可以輕松遷移到各種不同類(lèi)型的操作系統(tǒng)平臺(tái)之上。在iOS設(shè)備中,我們甚至可以利用“添加到主屏幕”功能將當(dāng)前Web應(yīng)用的瀏覽器快捷方式放置在主界面中,這會(huì)進(jìn)一步讓用戶產(chǎn)生Web應(yīng)用與Native應(yīng)用并無(wú)本質(zhì)差別的感覺(jué)。
Web類(lèi)應(yīng)用程序通常依賴于JavaScript的客戶端編程能力。JavaScript具備成熟的程序體系與面向?qū)ο蟮恼Z(yǔ)言功能,與客戶端Java Applets不同,JavaScript能夠支持幾乎所有類(lèi)型的移動(dòng)瀏覽器。只要采用開(kāi)源JavaScript框架,我們就能大大簡(jiǎn)化移動(dòng)Web應(yīng)用程序的編碼流程,因?yàn)樵摽蚣苣軌蛱峁┐罅款A(yù)置的用戶界面元素以及一套完善的MVC應(yīng)用程序模板。目前可供挑選的此類(lèi)JavaScript框架很多,其中的佼佼者包括Ext JS(現(xiàn)在更名為Sencha)、JQuery Mobile以及The-M-Project。JavaScript框架使用起來(lái)非常簡(jiǎn)單,基本上跟在JavaScript應(yīng)用程序中添加框架的.js文件或者在自己的JavaScript代碼中添加框架功能差不多。正因?yàn)槿绱?,我們完全不必?duì)自己的IDE做出任何更改,這就使得Web應(yīng)用開(kāi)發(fā)的學(xué)習(xí)曲線非常親民、可謂包教包會(huì)。
說(shuō)了這么多Web應(yīng)用程序的好處,再來(lái)談?wù)勅秉c(diǎn)吧。雖然這類(lèi)應(yīng)用在外觀與使用感受上與Native應(yīng)用差別不大,但性能表現(xiàn)卻往往大打折扣。由于用戶通過(guò)設(shè)備上的Web瀏覽器訪問(wèn)應(yīng)用程序,因此大部分功能都需要借助Web連接進(jìn)行傳輸并加以執(zhí)行,這就使得響應(yīng)延遲成為用戶體驗(yàn)的***天敵。雖然HTML 5擁有訪問(wèn)Native存儲(chǔ)數(shù)據(jù)的能力,但一般來(lái)說(shuō)移動(dòng)設(shè)備的內(nèi)存容量也就幾百兆,因此Web應(yīng)用不可能將信息一直保存在內(nèi)存中隨時(shí)等待調(diào)用。
與Native開(kāi)發(fā)模式對(duì)于程序員個(gè)人技能的嚴(yán)格要求不同,Web應(yīng)用程序提出的惟一考核標(biāo)準(zhǔn)就是大家得懂Web開(kāi)發(fā):HTML 5、CSS以及JavaScript,另外再了解一些諸如Java、PHP或者Ruby之類(lèi)的服務(wù)器端語(yǔ)言即可。由于應(yīng)用程序整體在Web中運(yùn)行,因此我們可以隨時(shí)對(duì)其加以更新,而無(wú)需對(duì)應(yīng)用進(jìn)行二次發(fā)布。
Xpous公司推出的iGenApps售價(jià)9.99美元,能夠?yàn)橛脩籼峁┮惶淄耆槐馗a打交道的簡(jiǎn)易Web應(yīng)用程序開(kāi)發(fā)方案,而且成品能夠順利運(yùn)行于Android與iOS兩大主流平臺(tái)。為了迎合小型企業(yè)對(duì)于應(yīng)用程序低復(fù)雜性與廉價(jià)開(kāi)發(fā)成本的需求,iGenApps應(yīng)運(yùn)而生,它使得企業(yè)用戶能夠創(chuàng)建基于Web的移動(dòng)設(shè)備應(yīng)用產(chǎn)品。所有應(yīng)用程序都被托管在Xpous公司的服務(wù)器上,并通過(guò)電子郵件中的HTML鏈接進(jìn)行發(fā)布。收件人只需將該鏈接添加到瀏覽器主頁(yè)的快捷圖標(biāo)中即可。
人類(lèi)的智慧可謂無(wú)窮無(wú)盡,目前工藝最精致、打磨最嚴(yán)苛的Web應(yīng)用已經(jīng)能夠?qū)ebKit使用得爐火純青。盡管仍然套著瀏覽器的外殼,但不少Web應(yīng)用程序已然擁有完全獨(dú)立的用戶界面、全屏功能及導(dǎo)航、狀態(tài)欄隱藏機(jī)制。由于WebKit的實(shí)質(zhì)屬于Native應(yīng)用,因?yàn)樗軌蛟L問(wèn)設(shè)備中的許多底層功能,例如地理位置等。即使是體積最小巧的WebKit在與服務(wù)器端的PHP、Ruby或者客戶端的HTML 5、CSS以及JavaScript等Web編程語(yǔ)言相結(jié)合之后,同樣會(huì)迸發(fā)出令人印象深刻的化學(xué)反應(yīng)——***的Native應(yīng)用模擬效果、所有常見(jiàn)操作按鈕甚至是軟鍵盤(pán)撥號(hào),一切都與真正的Native應(yīng)用毫無(wú)二致。而且值得一提的是,這一切僅僅是模擬出的效果,真正運(yùn)行的只是最基本的應(yīng)用代碼,手機(jī)本身完全不必進(jìn)行任何復(fù)雜的圖形處理或者CPU運(yùn)算。
Adobe公司的免費(fèi)工具PhoneGap同樣體現(xiàn)了WebKit的發(fā)展戰(zhàn)略——它使得用戶能夠在服務(wù)器端完成應(yīng)用程序代碼的編寫(xiě),然后將成果直接發(fā)布到多種移動(dòng)操作系統(tǒng)當(dāng)中,整個(gè)過(guò)程快捷而便利。PhoneGap利用插件對(duì)基礎(chǔ)shell進(jìn)行了大幅強(qiáng)化,使其能夠模擬多種Native界面效果,進(jìn)而為用戶帶來(lái)更為逼真的Native使用體驗(yàn)。#p#
移動(dòng)應(yīng)用開(kāi)發(fā)的第三條陽(yáng)關(guān)大道:Hybrid型應(yīng)用開(kāi)發(fā)方案
WebKit的日趨完善給移動(dòng)應(yīng)用程序的第三類(lèi)開(kāi)發(fā)方案鋪平了道路,這就是Hybrid型應(yīng)用開(kāi)發(fā)模式。所謂Hybrid型模式是將簡(jiǎn)單的WebKit shell替換為更加復(fù)雜的Native化代碼容器,并以Native應(yīng)用的形式運(yùn)行于目標(biāo)操作系統(tǒng)平臺(tái)當(dāng)中。容器供應(yīng)商負(fù)責(zé)維護(hù)容器代碼,這就規(guī)避了Native代碼開(kāi)發(fā)工作成本過(guò)高的難題。然而隨之卻產(chǎn)生了一種新的隱性成本——用戶被束縛在特定的Hybrid型平臺(tái)之上,只有在安裝時(shí)即與該容器綁定或者稍后另行下載才能保證JavaScript代碼的正確運(yùn)行。
與純Web類(lèi)應(yīng)用那種無(wú)視設(shè)備型號(hào)、只提供完全一致的操作界面不同,Hybrid型應(yīng)用程序能夠根據(jù)不同的移動(dòng)操作系統(tǒng)帶來(lái)風(fēng)格各異的使用體驗(yàn):在Kindle Fire設(shè)備上采用Android風(fēng)格、在iPad上變身為iOS外觀、在Windows Phone中則轉(zhuǎn)化為Metro范兒。
Appcelerator推出的Titanium就是Hybrid平臺(tái)中出現(xiàn)最早且至今人氣旺盛的平臺(tái)方案之一。其***產(chǎn)品工具包中包含了一套跨平臺(tái)SDK,不僅集成了千上萬(wàn)種特定設(shè)備API、內(nèi)置設(shè)備模擬器的基于Eclipse的Titanium Studio IDE,還囊括了在Appcelerator云服務(wù)器端托管應(yīng)用的選項(xiàng)。這款SDK與配套IDE完全免費(fèi),不過(guò)云端托管及各種技術(shù)支持服務(wù)則屬于收費(fèi)項(xiàng)目。
讓Hybrid型開(kāi)發(fā)方案進(jìn)一步得以推廣的功臣當(dāng)數(shù)Sencha的Complete Team系列移動(dòng)開(kāi)發(fā)工具,其中最知名的項(xiàng)目包括Sencha Touch 2 JavaScript框架、Sencha Architect以及拖拽GUI構(gòu)建器。Sencha.io仍處于測(cè)試階段,它***嘗試?yán)迷萍夹g(shù)處理數(shù)據(jù)、消息以及服務(wù)部署工作,這就使得企業(yè)在部署應(yīng)用程序時(shí)不必再架設(shè)任何面向公眾的基礎(chǔ)設(shè)施。
要想以無(wú)需編碼的方式從事云基礎(chǔ)移動(dòng)應(yīng)用開(kāi)發(fā),MobileFrame無(wú)疑是不二之選。它為用戶提供了多套預(yù)置應(yīng)用程序模板,大家可以利用Web基礎(chǔ)GUI設(shè)計(jì)器對(duì)模板進(jìn)行自定義,然后將成果部署為Native或者Hybrid型應(yīng)用。而針對(duì)企業(yè)級(jí)應(yīng)用程序部署領(lǐng)域的實(shí)際需求,MobileFrame還推出了版本及源代碼控制、數(shù)據(jù)庫(kù)連接功能以及集成測(cè)試環(huán)境與設(shè)備模擬器。除此之外,這款平臺(tái)還包括內(nèi)置的移動(dòng)設(shè)備管理(簡(jiǎn)稱(chēng)MDM)功能,這使其同時(shí)成為一套頗具吸引力的BYOD輔助工具。#p#
特定用途平臺(tái)
除了供應(yīng)商提供的NativeIDE以及跨平臺(tái)Hybrid工具包,市場(chǎng)上還有大量專(zhuān)為特殊環(huán)境所量身打造的開(kāi)發(fā)產(chǎn)品,希望能在特定移動(dòng)操作系統(tǒng)或服務(wù)器端主機(jī)環(huán)境中占據(jù)屬于自己的市場(chǎng)份額。
其中***的實(shí)例就是谷歌的J2ObjC Java-to-Objective-C編譯器了,它的設(shè)計(jì)目的是讓服務(wù)器端的Java開(kāi)發(fā)人員能夠?qū)⒆约旱姆荱I代碼轉(zhuǎn)化為能夠被蘋(píng)果設(shè)備所直接使用的Objective-C代碼。蘋(píng)果公司目前仍然嚴(yán)禁NativeJava在iOS系統(tǒng)中直接運(yùn)行,這也成為擅長(zhǎng)Java應(yīng)用開(kāi)發(fā)的程序員們轉(zhuǎn)戰(zhàn)蘋(píng)果的***阻礙。盡管Java開(kāi)發(fā)者們?nèi)匀恍枰到y(tǒng)學(xué)習(xí)Objective-C中關(guān)于iOS圖形應(yīng)用組件的開(kāi)發(fā)知識(shí),但J2ObjC的出現(xiàn)仍然使他們能夠在工作中使用自己所熟知的Java執(zhí)行邏輯,這在無(wú)形中節(jié)省了應(yīng)用產(chǎn)品的開(kāi)發(fā)成本與周期,同時(shí)彌合了兩套代碼體系之間的巨大鴻溝。
另一款類(lèi)似的工具名為CodeName One,但與專(zhuān)注于將Java轉(zhuǎn)譯為Objective-C的J2ObjC不同,它的作用在于幫助開(kāi)發(fā)人員***限度地以Java方式進(jìn)行應(yīng)用開(kāi)發(fā)工作,其中就包括UI代碼這一老大難問(wèn)題。該產(chǎn)品的“輕量級(jí)架構(gòu)”方案能夠橫跨多種系統(tǒng)平臺(tái),提供無(wú)縫化的UI開(kāi)發(fā)流程;開(kāi)發(fā)人員還可以選擇“重量級(jí)”版本,在必要時(shí)利用NativeObjective C替代應(yīng)用中的Java代碼組件,借以節(jié)約計(jì)算資源或者訪問(wèn)設(shè)備的底層功能。它所提供的GUI構(gòu)建器還給開(kāi)發(fā)人員帶來(lái)功能完善的UI拖拽操作選項(xiàng),使得應(yīng)用產(chǎn)品的使用感受與移動(dòng)系統(tǒng)本身更加相近。
Salesforce Touch是一款移動(dòng)開(kāi)發(fā)平臺(tái),用于為企業(yè)級(jí)開(kāi)發(fā)人員提供Salesforce在自家企業(yè)級(jí)移動(dòng)應(yīng)用中所使用的應(yīng)用引擎。Salesforce Touch既能夠生成NativeObjective C應(yīng)用、也能搞定像Java、純Web甚至是大雜燴式的Hybrid型應(yīng)用。這款平臺(tái)采用Force.com接口,通過(guò)REST API實(shí)現(xiàn)包括訪問(wèn)Salesforce常駐業(yè)務(wù)數(shù)據(jù)、社交Web以及地理位置(例如實(shí)時(shí)地圖)在內(nèi)的各類(lèi)Web服務(wù)。Touch的身份識(shí)別功能同樣非常強(qiáng)大,用戶可以在其幫助下以單點(diǎn)登錄的方式利用移動(dòng)設(shè)備訪問(wèn)企業(yè)服務(wù)器。
CoralTree Systems推出的Renaissance則是一款專(zhuān)為特定企業(yè)IT環(huán)境打造的典型實(shí)用范例,它只針對(duì)IBM的i體系發(fā)揮作用。作為一款開(kāi)源產(chǎn)品,Renaissance為我們提供了與IBM安全API及RPG編程語(yǔ)言相對(duì)接的特殊渠道。Renaissance是一款圍繞特定服務(wù)器運(yùn)作的移動(dòng)平臺(tái),它能幫助企業(yè)為遺留應(yīng)用提供移動(dòng)支持、節(jié)約利用現(xiàn)代語(yǔ)言(例如PHP或者Ruby)重建復(fù)雜業(yè)務(wù)邏輯所產(chǎn)生的高昂成本。
做出明智的選擇
可以說(shuō)我們生在了***的時(shí)代,如今可供選擇的移動(dòng)開(kāi)發(fā)工具可謂史無(wú)前例地豐富、史無(wú)前例地實(shí)惠。我們既可以堅(jiān)持不懈地走Native應(yīng)用道路,花大價(jià)錢(qián)打造一款美觀、高效的應(yīng)用程序,也可以利用更為簡(jiǎn)單的Web或者Hybrid方式進(jìn)行開(kāi)發(fā)工作。希望大家花點(diǎn)時(shí)間把自己對(duì)于應(yīng)用產(chǎn)品的需求一一列出,然后根據(jù)這些特性找出最合適的開(kāi)發(fā)工具。我們不像Facebook那么闊綽,沒(méi)有精力和財(cái)力完全推翻重來(lái),因此請(qǐng)務(wù)必慎重再慎重。
原文鏈接:
原文標(biāo)題:Native, Web, or hybrid: How to choose your mobile development path
【51CTO譯稿,非經(jīng)授權(quán)謝絕轉(zhuǎn)載,合作媒體轉(zhuǎn)載請(qǐng)注明原文出處、作者及51CTO譯稿和譯者!】