023-67810419
News
網站建設、網站制作、網站設計等相關資訊

當前位置:首頁 > 新聞 > APP開(kāi)發(fā)從入門到精通

APP開(kāi)發(fā)從入門到精通

日期:2024-02-15 23:00:07 訪問: 0 次 作者:

可能(néng)很多人不知道(dào),規模大的企業和IT預算多的企業的移動App大部分都(dōu)是基于混合模式開(kāi)發(fā)實現的。

很多做App開(kāi)發(fā)的技術人員會(huì)存在一種(zhǒng)偏見,覺得“采用混合模式,基于HTML5技術開(kāi)發(fā)出來的App,體驗以及功能(néng)會(huì)和原生模式開(kāi)發(fā)的存在差距”, 所以更願意使用原生模式開(kāi)發(fā)App。

其實市場上主流的App,絕大部分是基于混合模式開(kāi)發(fā)的。最典型的就(jiù)是微信,除了聊天功能(néng)以外,包括公衆号、小程序等都(dōu)是由混合模式開(kāi)發(fā)技術實現的。 再比如電商領域的淘寶、京東等,旅遊領域的攜程,教育領域的VipKid,信息分類的58等不同應用範圍的App,混合模式開(kāi)發(fā)技術使其商品展示及線上市場活動的運營管理都(dōu)變得非常靈活。此外,在航空、保險、銀行等行業中,無論是服務客戶的toC模式App,還(hái)是對(duì)員工進(jìn)行管理的toE和toB的App,多是使用混合模式開(kāi)發(fā)的,混合模式開(kāi)發(fā)技術成(chéng)爲了絕對(duì)主力。

人們不禁要問“爲什麼(me)這(zhè)些公司和企事(shì)業單位,有著(zhe)足夠的預算和開(kāi)發(fā)資源,還(hái)要選擇混合模式App開(kāi)發(fā)技術作爲企業互聯網化的支撐? 答案其實和企業的互聯網化及數字化的需求有著(zhe)直接的聯系。以下4個方面(miàn),決定了越有實力的企業越需要混合模式App開(kāi)發(fā)技術 ;同時(shí),也是混合模式App開(kāi)發(fā)技術形成(chéng)不同行業解決方案的根本優勢和企業選擇的必要性所在。

速度的要求

“試錯”這(zhè)個詞不但在互聯網公司中廣爲流傳,在傳統公司的互聯網化過(guò)程中也被廣泛接受。

越來越多的CIO在談各自企業移動戰略的時(shí)候,都(dōu)會(huì)提到“能(néng)否根據業務部門的一個想法,先在一周之内做個原型,快速實現,拿出去讓大家看看,然後(hòu)基于這(zhè)個原型再修改”。這(zhè)種(zhǒng)快速發(fā)起(qǐ)、快速驗證、快速調整的方法,已經(jīng)非常流行。之所以要在短時(shí)間内先把業務從想法落到現實,哪怕App粗糙些,也要先實現出來,原因在于具有鮮明企業個性的業務的創新想法可能(néng)沒(méi)有先例可循,很難考慮得特别完整。與其花費三五個月不停地思考業務需求,還(hái)不如用一兩(liǎng)個星期先把基礎的想法落實。哪怕短時(shí)間内做出的App并不能(néng)真正滿足業務的需要,但是可以讓業務人員的想法在這(zhè)個過(guò)程中變得有據可依、有的放矢,從而爲實現更完整且更切實可行的業務方案先行探索。

“業務部門的一個想法,IT部門一兩(liǎng)周就(jiù)做出來了!”這(zhè)對(duì)于企業的信息化負責人而言,是很重要的褒獎。這(zhè)種(zhǒng)對(duì)速度的要求,恰恰是混合模式開(kāi)發(fā)技術最明顯的特長(cháng)和優勢,一套代碼可同步生成(chéng)iOS與Android兩(liǎng)個平台的App,甚至還(hái)能(néng)部分兼容微信公衆号和小程序。一套代碼,并不代表偷懶或工程技術的簡化,而更多的是因其不僅節省了代碼編寫的時(shí)間,還(hái)避免了多個技術團隊之間跨知識結構的協同問題,不再需要iOS與Android工程師們開(kāi)會(huì)讨論差異性問題,更是大幅節省了App與服務器端聯機調試的時(shí)間成(chéng)本。但如果同樣的功能(néng),同樣從零開(kāi)始,使用傳統的原生開(kāi)發(fā)技術基本沒(méi)有辦法在一兩(liǎng)個星期内完成(chéng)有價值業務需求的實現,因爲這(zhè)個時(shí)間可能(néng)連不同終端碎片化和差異化的問題都(dōu)不足以解決。所以,CIO爲了滿足業務發(fā)展的需求和數字化速度的要求,在移動戰略中往往都(dōu)會(huì)規劃使用跨平台的混合模式App開(kāi)發(fā)技術。

業務靈活性的要求

在PC時(shí)代的B/S架構中,想要實現IT系統的更新并不需要過(guò)多地考慮用戶端的影響。因爲作爲用戶入口的浏覽器一直處于訪問網絡的狀态,隻要網絡連通,用戶随時(shí)訪問網站都(dōu)會(huì)獲得最新的功能(néng)和業務。對(duì)用戶而言,并不真正地存在版本的概念。隻要訪問服務器,服務器的任何更新都(dōu)可以随時(shí)展示到用戶界面(miàn)上,出現使用問題時(shí),往往隻需要清空一次浏覽器Cookie基本就(jiù)可以解決。

但是在移動時(shí)代,用戶對(duì)版本的概念變得越發(fā)敏感。而對(duì)App的版本管理也成(chéng)了CIO頭痛的問題。通常因爲軟件開(kāi)發(fā)商能(néng)力的制約,或者一些無法避免的bug,讓一些已發(fā)布的App變得難用甚至會(huì)崩潰。此外,一些臨時(shí)的市場活動、很少但重要的功能(néng)、一些不在規劃内的産品需求調整等情況,都(dōu)會(huì)直接引出同一個問題“用戶必須更新一個版本,重新下載安裝,才能(néng)滿足上述需求”。這(zhè)種(zhǒng)看似日常的版本發(fā)布和用戶更新,恰恰是傳統企業信息化過(guò)程中面(miàn)臨的全新問題。

“能(néng)否像傳統浏覽器那樣,用戶打開(kāi)的永遠是最新的服務和功能(néng)?”很多企業的CIO問出了相同的問題,于是大量的、不合規的軟件服務商和IT程序員想出了一個“偷懶”的模式。在App中嵌入一些WebView,將(jiāng)一些功能(néng)采用傳統網頁的模式,訪問服務器,動态獲取。雖然表面(miàn)上解決了版本更新的問題,實則産生了大量體驗很差的App。

企業對(duì)業務靈活性的要求,本質是希望像微信小程序一樣,可以随時(shí)發(fā)布一些新的功能(néng),随時(shí)動态增改一些功能(néng)的入口,讓用戶任意使用,同時(shí)讓用戶的體驗更好(hǎo)。這(zhè)種(zhǒng)對(duì)業務靈活性的需求其實需要像小程序一樣有強大的混合模式App開(kāi)發(fā)技術來支撐。從而達成(chéng)“增量更新”“靜默更新”“打開(kāi)獲得新功能(néng)和新體驗”,而不是嵌套WebView,用網頁模拟App的方法,以較差的用戶體驗的代價換取業務靈活的可行性。

當然,目前傳統模式開(kāi)發(fā)的App,特别是用Android開(kāi)發(fā)的App也開(kāi)始部分支持動态更新。這(zhè)也恰恰說(shuō)明,業務靈活性是企業互聯網化、數字化進(jìn)程的剛需。隻是由于傳統技術的制約以及軟件開(kāi)發(fā)團隊或者服務商能(néng)力的限制,真正的原生動态更新始終沒(méi)有辦法大規模進(jìn)入企業,實現商用。這(zhè)也讓企業對(duì)混合模式App開(kāi)發(fā)技術的需求更爲迫切,成(chéng)爲每個CIO的必備選項。

集中管理的要求

業務部門的互聯網化意識是因爲互聯網的廣泛普及被帶動起(qǐ)來的。所以,傳統的由IT部門主導企業信息化的态勢發(fā)生了微妙的變化。過(guò)去,都(dōu)是由IT部門發(fā)起(qǐ)信息化需求,但現在的IT部門越來越像“服務部門”。因爲業務團隊在不停地發(fā)起(qǐ)各種(zhǒng)各樣“業務+互聯網”的信息化需求。這(zhè)個時(shí)候,很多傳統企業的IT部門領導,沒(méi)認識到自己角色的轉變,如果還(hái)存有拖延、不管不問、你們自己搞不定等類似的想法,就(jiù)會(huì)導緻當下很多企業的信息化面(miàn)臨的“各種(zhǒng)移動App的徹底碎片化”“各個業務部門自己找軟件開(kāi)發(fā)商實現各自的需求”等問題。這(zhè)不但架空了IT部門的信息化主導地位,更麻煩的是,讓後(hòu)續的集中管理變得艱難無比。幾十家甚至上百家不同标準的服務摻雜在企業的核心系統中,甚至有些業務部門爲了快速滿足自己的需求而脫離了IT部門主導的傳統PC核心系統,這(zhè)些操作都(dōu)是非常危險的。

IT部門在被業務部門要求滿足業務的互聯網化需求時(shí),往往發(fā)現心有餘而力不足。IT部門人手有限,實在沒(méi)辦法逐一滿足所有業務部門的移動化需求。如果不管,就(jiù)會(huì)産生前面(miàn)所提到的“技術棧、開(kāi)發(fā)商”碎片化的問題。這(zhè)個時(shí)候,基于混合模式App開(kāi)發(fā)技術的移動應用平台,就(jiù)很好(hǎo)地解決了這(zhè)二者之間的矛盾。

定标準,從而實現“集中管理”。如果企業能(néng)夠制訂一套統一的混合模式App開(kāi)發(fā)技術和移動平台标準,各個業務部門就(jiù)可以獨立尋找自己的軟件開(kāi)發(fā)商,用各種(zhǒng)方法滿足自己的移動業務需求。平台的一緻性可以帶來标準化的統一。這(zhè)其中包括技術标準化、開(kāi)發(fā)流程标準化、代碼管理标準化、項目管理标準化、驗收标準化、管理和運營标準化等。

既要放,也要抓。這(zhè)就(jiù)是互聯網時(shí)代企業信息化的要求,更是IT部門的職責。混合模式App開(kāi)發(fā)技術,有望成(chéng)爲實現企業移動戰略的利器之一。

信息化安全的要求

企業互聯網化帶來的最根本轉變就(jiù)是,内網的信息化變成(chéng)了外網的互聯網化。

傳統信息化一般包括内網、固定場所、固定網絡環境和固定的設備等關鍵詞。而移動戰略背景下的企業互聯網化,則同時(shí)包括外網、随時(shí)、随地、員工個人設備、4G和Wi-Fi等關鍵詞。這(zhè)些不起(qǐ)眼的變化,給企業的業務帶來的卻是天翻地覆的調整。

移動設備管理軟件(Mobile Devices Management,MDM)曾風靡一時(shí),但是購買了MDM的企業幾乎無一例外地發(fā)現其很難推進(jìn)。因爲MDM伴随著(zhe)員工自帶設備(Bring Your Own Device,BYOD)。如果用企業的管理軟件來管理員工個人設備,肯定會(huì)有很多人反對(duì)。所以,大部分的MDM最終草草收場,隻是管理了企業自己購買的一些移動設備。

企業移動化、互聯網化的安全怎麼(me)保障? 這(zhè)要滿足3個層面(miàn)的安全,即設備安全、傳統安全和雲端安全。

混合模式App開(kāi)發(fā)技術可以實現類似于企業應用商店(如微信公衆号)的動态權限綁定和授權模式,能(néng)夠支持特定設備、特定的人,也可以選擇不同的子應用。此外,還(hái)可以實現随著(zhe)用戶工作内容的調整,根據設備編碼和用戶權限來實時(shí)分配全新子應用的功能(néng)。

這(zhè)種(zhǒng)基于企業移動應用商店的“子應用”模式,也是混合模式App開(kāi)發(fā)技術成(chéng)爲企業移動戰略支撐的關鍵。因爲做得好(hǎo)的企業應用商店,不僅能(néng)夠滿足傳統原生模式開(kāi)發(fā)的App所不能(néng)賦予企業的、對(duì)各種(zhǒng)安全性的需求,還(hái)實現了對(duì)業務靈活性的管理目的。

APICloud作爲中國(guó)主流的混合模式App開(kāi)發(fā)技術服務提供商,一直在以布道(dào)者的身份推進(jìn)混合技術在國(guó)内的發(fā)展和應用。我們不僅提供技術,也提供商業服務,因此會(huì)更多地深入到大量的商業用戶中去,如海爾、春秋航空、英特爾、中信證券、上汽等。我們的團隊結合不同的商業場景和實際的商業客戶需求,編寫了《30天App開(kāi)發(fā)從0到1:APICloud移動開(kāi)發(fā)實戰》,希望能(néng)夠爲不同規模的企業在移動信息化和互聯網化進(jìn)程中提供有價值的參考,同時(shí)也能(néng)夠讓從事(shì)App開(kāi)發(fā)的技術人員有更多可借鑒的實戰經(jīng)驗。

《30天App開(kāi)發(fā)從0到1:APICloud移動開(kāi)發(fā)實戰》

鄒達, 李德興 著

主要内容

本文從總體上介紹APICloud平台,包括APICloud應用的開(kāi)發(fā)模式、設計思想、控制台使用流程等,并以一個HelloWorld App爲例讓讀者體驗一個完整的APICloud App的開(kāi)發(fā)流程。

學(xué)習目标

(1)了解APICloud平台,了解APICloud相關的學(xué)習資源、入門資料和常見的問題。讓沒(méi)有接觸過(guò)APICloud平台的讀者,對(duì)平台有一個基礎的了解;讓學(xué)習過(guò)APICloud并且已掌握一部分技能(néng)的讀者,通過(guò)本文的學(xué)習,可以快速找到需要的資料和解決問題的方法。

(2)學(xué)習如何在APICloud平台上創建、修改、調試、編譯和運行一個最簡單的APICloud App。掌握APICloud App完整的開(kāi)發(fā)流程。

要對(duì)APICloud平台做一個全面(miàn)的介紹,需要花很長(cháng)的時(shí)間和很多的篇幅來講解每一個細節,而本文作者希望能(néng)用更多的篇幅來講解一個App的實際開(kāi)發(fā)過(guò)程,講解具體的代碼實現。所以,本文在介紹APICloud平台的時(shí)候,是通過(guò)抛出一個個問題,然後(hòu)告訴讀者應該到哪兒去找對(duì)應的學(xué)習資源,到哪兒能(néng)夠找到解決問題的方案。

1.1 APICloud平台介紹

本文將(jiāng)從APICloud可以做什麼(me),如何獲取使用幫助,APICloud的技術、産品和生态等多個方面(miàn)對(duì)APICloud平台加以介紹。

1.1.1 查看APICloud平台能(néng)力

開(kāi)發(fā)者在接觸一個開(kāi)發(fā)平台的時(shí)候,通常第一個想法就(jiù)是去查看這(zhè)個平台的能(néng)力。特别是那些想做App的、有著(zhe)明确需求的開(kāi)發(fā)者,他們會(huì)非常關心自己的需求在這(zhè)個開(kāi)發(fā)平台上是否能(néng)夠滿足。所以,本文開(kāi)篇就(jiù)先來解決這(zhè)個開(kāi)發(fā)者普遍關心的問題,讀者可以帶著(zhe)自己預先想好(hǎo)的需求來了解APICloud平台,了解如何能(néng)夠快速地在APICloud平台上查找相關的能(néng)力。

1.通過(guò)官方文檔快速搜索功能(néng)模塊

查看APICloud平台提供的能(néng)力,一個最基礎也是最有效的方法就(jiù)是查看APICloud的API文檔。

APICloud官方網站中的文檔頁面(miàn)如圖1-1所示。如需要查看視頻播放的功能(néng),可以在文檔中搜索“視頻播放”,搜索結果如圖1-2所示,可以看到在APICloud平台上有多種(zhǒng)提供視頻播放功能(néng)的模塊,如videoPlayer(播放本地視頻)、moviePlayer(播放網絡視頻)、polyvPlayer(保利威視播放器)、baiduPlayer(百度播放器)等。

圖1-1 ​

圖1-2

點擊其中一個搜索結果,查看模塊的詳細文檔。比如點擊“videoPlayer”之後(hòu)可以看到這(zhè)個模塊對(duì)于視頻播放提供了很多API,這(zhè)些API基本覆蓋了一個視頻播放器所有常見的功能(néng),如圖1-3所示。

圖1-3

再比如要查找支付功能(néng),可以在文檔中搜索“支付”,通過(guò)搜索結果可以看到在APICloud平台上有很多個提供支付功能(néng)的模塊,如aliPay(支付寶)、wxPay(微信支付)、unionPay(銀聯支付)、paypal(PayPal支付)、iap(iOS應用内支付)等;也有ping++、beeCloud等第三方聚合類的支付模塊。點擊每個模塊均可以查看具體的API詳情。

讀者想了解APICloud平台有哪些能(néng)力,最簡單的方法就(jiù)是到APICloud官方文檔中去搜索相應的功能(néng),這(zhè)樣就(jiù)可以一目了然地知道(dào)APICloud平台有沒(méi)有相應的模塊來支持自己想要的功能(néng)。

2. APICloud能(néng)力支撐體系

目前在APICloud平台上已經(jīng)提供了600多個模塊,上萬個API。這(zhè)些API基本可以覆蓋一款App所需的所有常用功能(néng),爲方便表述,它們被分爲“平台使用”“基礎功能(néng)”“界面(miàn)布局”“設備特性”“功能(néng)擴展”和“開(kāi)放服務”六大類,其分類與具體包含内容如圖1-4所示。

圖1-4

1.1.2 開(kāi)發(fā)模式、技術語言和平台定位

很多APICloud初學(xué)者會(huì)關心這(zhè)些問題:APICloud App的開(kāi)發(fā)模式是什麼(me)樣的、使用什麼(me)技術語言、目前自己的開(kāi)發(fā)團隊是否适合使用APICloud開(kāi)發(fā)App、整個APICloud的學(xué)習曲線是什麼(me)樣的、入門簡不簡單等。

1.開(kāi)發(fā)模式和技術語言

APICloud應用的開(kāi)發(fā)模式是使用标準的HTML、CSS和JavaScript+APICloud擴展API來進(jìn)行App開(kāi)發(fā),如圖1-5所示。APICloud的App開(kāi)發(fā)使用的是标準的HTML5技術,針對(duì)标準HTML5所不具備的功能(néng)或是用HTML5實現體驗不好(hǎo)的功能(néng)(這(zhè)些功能(néng)也是開(kāi)發(fā)者在App開(kāi)發(fā)過(guò)程中非常常用的功能(néng))。APICloud提供了600多個擴展模塊和上萬個API,通過(guò)這(zhè)些模塊和API來擴展HTML5的功能(néng),滿足App的開(kāi)發(fā)需求。

圖1-5

2.擴展API調用方式

APICloud擴展API的調用方式與調用标準的JavaScript方法是完全一樣的。APICloud引擎的核心API是放在window.api這(zhè)個對(duì)象下面(miàn)的,這(zhè)個對(duì)象是APICloud在JavaScript全局作用域内擴展的唯一一個對(duì)象,可直接調用。如果想調用某個模塊下面(miàn)的方法,可以通過(guò)require的方式動态引入,通過(guò)在api.require方法的參數中指定某個模塊的名稱來引入相應的模塊,然後(hòu)調用模塊下面(miàn)的方法,具體演示如下。

1 //核心API在window.api對(duì)象下,可以直接調用 2 api.methodName(param, callback); 3 //擴展模塊需要require引入,遵守CommonJS規範 4 var module = api.require('moduleName'); 5 module.methodName(param, callback); 6 param: {} //參數,是一個JSON對(duì)象 7 callback: function(ret, err){} //回調函數,是一個Function對(duì)象,異步方法調用的結果通過(guò)此函數返回<br>

所有API的調用方式都(dōu)是相同的,第一個參數是一個JSON對(duì)象,承載著(zhe)要傳遞給模塊的信息;第二個參數是一個callback函數。APICloud大部分的API調用都(dōu)是異步方式,在調用的時(shí)候,要指定一個callback函數,當這(zhè)個API操作完成(chéng)時(shí),操作結果將(jiāng)通過(guò)該callback函數回調。

一些常用的調用方式,比如打開(kāi)一個新窗口,可以調用api.openWin();打開(kāi)通訊錄可以調用api.openContacts(),錄音、圖片緩存等也是調用相應的方法。如果想去加載文件系統模塊,可以通過(guò)api.require("fs")來加載fs模塊,然後(hòu)調用fs模塊下面(miàn)的方法。使用條碼掃描模塊也是類似的。示例如下。

●打開(kāi)新窗口:api.openWin()。

●打開(kāi)系統通訊錄:api.openContacts()。

●錄音:api.startRecord()。

●緩存網絡圖片:api.imageCache()。

●加載fs模塊:var fs = api.require('fs')。

●新建一個文件:fs.createFile()。

●加載二維碼/條形碼掃描模塊:var scanner = api.require('FNScanner')。

●打開(kāi)二維碼/條形碼掃描:scanner.openScanner()。

APICloud技術是基于标準的HTML、CSS和JavaScript技術,并在标準的JavaScript基礎上擴展了一個核心對(duì)象-api對(duì)象和數百個模塊。這(zhè)些模塊可以使用api.require函數載入,并使用操作标準JavaScript對(duì)象的方式調用上述模塊列舉出方法。

3.擴展API的作用

讀者可能(néng)會(huì)問,APICloud爲什麼(me)要擴展這(zhè)麼(me)多API呢?其實APICloud所擴展的API都(dōu)是标準的JavaScript所不支持的方法,或是用标準HTML5來實現但體驗不好(hǎo)的功能(néng)。讀者可以把HTML5理解成(chéng)一門技術、一門語言,但是它還(hái)沒(méi)有達到一個平台的水平。這(zhè)就(jiù)是APICloud爲什麼(me)要做這(zhè)些擴展。APICloud所有的擴展主要是圍繞以下這(zhè)4個方面(miàn)進(jìn)行的。

兼容性:在PC互聯網時(shí)代,浏覽器具有多種(zhǒng)内核,JavaScript框架産生的最初原因就(jiù)是爲了實現JavaScript代碼在各種(zhǒng)浏覽器上的兼容和适配。在移動互聯網時(shí)代,雖然在主流的手機系統中,Android和iOS的浏覽器内核都(dōu)是webkit,但是出于商業原因,谷歌從webkit中建立了一個新的分支,叫(jiào)blink。現在兩(liǎng)個分支的主要貢獻者分别是蘋果和谷歌,所以未來這(zhè)兩(liǎng)個内核的兼容性問題會(huì)一直存在。

實用性:

Page不等于App,标準的HTML、CSS和JavaScript規範更多是用來定義網頁和文檔的,例如現在的一些框架都(dōu)在講SPA結構,它是以單頁面(miàn)爲主的,很多HTML标簽是針對(duì)于文本信息展示的;而App則不然,App更多是強調功能(néng)和體驗,在原生系統中有很多的組件,HTML5标簽和Native組件的設計規範是完全不同的。所以,想用标準的HTML5技術開(kāi)發(fā)一個App是不現實的,人們不能(néng)直接把爲WebPage所制定的規範直接搬到App上。

B/S架構與Client/Cloud架構:在PC互聯網時(shí)代,終端産品的主要架構還(hái)是B/S架構;但是在移動互聯網時(shí)代,終端産品的主要類型是App,而App是一個完整的Client/Cloud架構。在移動端,實現界面(miàn)和功能(néng),在雲端提供數據和服務。頁面(miàn)布局是存放在移動端的,功能(néng)實現也是在移動端完成(chéng),所以用戶在使用時(shí)可以感受到App的啓動、頁面(miàn)渲染和布局展示是很快響應的。

速度、交互和體驗:這(zhè)3個問題是用HTML5技術直接開(kāi)發(fā)App的最大挑戰。其實,如果使用HTML5技術實現一個界面(miàn),渲染之後(hòu)顯示出來,用戶看到這(zhè)個界面(miàn)時(shí)并不能(néng)立刻分辨出它是用HTML5實現的還(hái)是用Native技術實現的。但是當用戶做一個交互,點擊一下,體驗一下響應速度或者做一個手勢,觸發(fā)一個動畫,這(zhè)時(shí)用戶就(jiù)可以非常清楚地感受到,并能(néng)分辨出該界面(miàn)是用Native技術開(kāi)發(fā)的還(hái)是用HTML5開(kāi)發(fā)的。所以速度、交互和體驗也是使用HTML5技術開(kāi)發(fā)App必須去解決的問題。

持續性、靜态标準與動态标準:HTML5的定稿花了7年時(shí)間,并且整個标準的叠代是緩慢的;而Android和iOS每一次版本更新都(dōu)會(huì)新增很多功能(néng),這(zhè)些新增的恰恰都(dōu)是當前行業裡(lǐ)最需要的功能(néng),但這(zhè)些功能(néng)很難快速通過(guò)制定新的HTML5标準進(jìn)行更新,并在各個浏覽器裡(lǐ)支持起(qǐ)來。那會(huì)是一個非常漫長(cháng)的過(guò)程。

擴展性: 在開(kāi)發(fā)一款App的時(shí)候,開(kāi)發(fā)人員需要擴展很多的功能(néng),有時(shí)候要和行業特點結合,有時(shí)候還(hái)要跟硬件結合,這(zhè)就(jiù)會(huì)用到大量國(guó)内的開(kāi)放服務,如推送、直播、智能(néng)識别等。所有的這(zhè)些功能(néng),标準的HTML5規範中都(dōu)沒(méi)有定義,所有的标準浏覽器引擎也沒(méi)有默認支持。

總的來說(shuō),APICloud擴展的所有功能(néng)都(dōu)是标準HTML5所沒(méi)有的,如果HTML5有并且在App中運行起(qǐ)來沒(méi)有任何問題,APICloud平台也沒(méi)有必要去做這(zhè)個擴展。APICloud所有擴展的功能(néng)其實就(jiù)是爲了去解決HTML5在兼容性、實用性、持續性和擴展性等方面(miàn)的問題。

4.模塊Store

在APICloud模塊Store中可以查看APICloud平台擴展的所有功能(néng),如圖1-6所示。

​​ 圖1-6

5. APICloud平台定位

APICloud是一個中間層,是在應用程序和系統之間的一層,在這(zhè)一層中,APICloud聚合了開(kāi)發(fā)一款App所需要的所有系統調用、開(kāi)放服務和擴展功能(néng),然後(hòu)以統一API的形式提供給開(kāi)發(fā)者調用。這(zhè)就(jiù)是APICloud平台的定位,如圖1-7所示。

​​ 圖1-7

1.1.3 技術、産品、生态、案例和商業模式

這(zhè)部分有大量的内容需要給讀者介紹,但是本文不想爲此占用大量的篇幅。讀者可以通過(guò)APICloud官網公開(kāi)課的視頻來詳細了解。在官方視頻教程2中有幾百集的課程,其中“APICloud視頻之初級代碼篇第1~3講”通過(guò)幾小時(shí)的視頻給讀者詳細介紹了APICloud技術、産品、商業模式、案例以及生态的方方面(miàn)面(miàn),如果讀者是第一次接觸APICloud,我們建議花一定的時(shí)間去觀看這(zhè)些公開(kāi)課的視頻。

在官方網站中,“開(kāi)發(fā)者社區”标簽下。

在官方的視頻教程中。

1.1.4 開(kāi)發(fā)者服務體系

開(kāi)發(fā)者在選擇或者使用一個平台的時(shí)候,一定會(huì)遇到很多的問題。遇到問題時(shí)應該如何解決?此外,開(kāi)發(fā)者還(hái)會(huì)關心這(zhè)個平台在提供技術的同時(shí)還(hái)能(néng)提供哪些服務?有沒(méi)有一個完整的生态?有沒(méi)有一個活躍的社區提供技術支持、方便學(xué)習和交流?

針對(duì)這(zhè)些問題,本節列舉以下APICloud開(kāi)發(fā)者服務體系相關的産品。

1. APICloud開(kāi)發(fā)平台

這(zhè)裡(lǐ)是APICloud的官方網站,也是整個APICloud應用開(kāi)發(fā)和管理平台的入口。

2.開(kāi)發(fā)工具

在官方網站點擊“開(kāi)發(fā)工具”。

APICloud是一個移動應用的開(kāi)發(fā)平台,開(kāi)發(fā)APICloud應用需要編碼工具。對(duì)于開(kāi)發(fā)工具來說(shuō),APICloud支持包括Atom、Sublime Text、Eclipse、WebStorm、VSCode,以及基于Node.js的CLI命令行工具。開(kāi)發(fā)者在開(kāi)發(fā)APICloud應用的時(shí)候,可以使用自己喜歡的任意一款主流的編碼工具,隻需要在這(zhè)些工具中安裝相應的APICloud插件就(jiù)可以了。

以Sublime Text3爲例,如圖1-8和圖1-9所示,可以看到這(zhè)裡(lǐ)面(miàn)有Windows版和Mac版的下載地址,這(zhè)裡(lǐ)所下載的是APICloud爲Sublime Text提供的插件。下載完成(chéng)後(hòu),打開(kāi)Sublime Text,在Sublime Text中安裝完APICloud插件之後(hòu),就(jiù)可以在Sublime Text中使用“新建APICloud項目”“新建APICloud文件”“進(jìn)行Wifi真機同步”“日志輸出”“代碼管理”等開(kāi)發(fā)APICloud應用所需的相關功能(néng)。在其他工具中,如Atom、WebStorm、Eclipse和VSCode等也可以分别安裝APICloud爲這(zhè)些工具所提供的對(duì)應插件,所有這(zhè)些APICloud的工具插件都(dōu)是免費開(kāi)源的,可以在GitHub的APICloud開(kāi)源分支中查看源碼。

在GitHub中搜索“APICloud-DevTools”。

​​ 圖1-8

本文案例的開(kāi)發(fā)會(huì)全程使用APICloud Studio 2作爲開(kāi)發(fā)工具,APICloud Studio 2是APICloud提供給開(kāi)發(fā)者的一款基于Atom擴展的全功能(néng)集成(chéng)開(kāi)發(fā)工具。在本書的附錄B中,會(huì)對(duì)APICloud Studio 2開(kāi)發(fā)工具的使用進(jìn)行全面(miàn)詳細的介紹。

​ 圖1-9

3.開(kāi)發(fā)文檔

在官方網站點擊“文檔”。

整個APICloud開(kāi)發(fā)文檔包含了3部分内容,第一部分是對(duì)APICloud的整體介紹以及開(kāi)發(fā)工具的介紹,也就(jiù)是其網頁最左側的這(zhè)一列;中間部分是對(duì)APICloud API的介紹,包括端API、擴展模塊、前端框架、雲API等;最右側是技術專題,這(zhè)裡(lǐ)會(huì)把開(kāi)發(fā)過(guò)程中常見的問題以技術專題的形式總結出來。不管是對(duì)APICloud的初學(xué)者,還(hái)是已經(jīng)用APICloud開(kāi)發(fā)過(guò)應用的開(kāi)發(fā)者,本文都(dōu)建議在遇到問題的時(shí)候,第一個解決方式就(jiù)是去查找文檔。APICloud文檔遵循簡潔清晰的書寫原則,用到某一個API的時(shí)候,直接到文檔中查看其對(duì)應的使用說(shuō)明即可。

4. 開(kāi)發(fā)者社區

在官方網站點擊“開(kāi)發(fā)者社區”。

APICloud有著(zhe)國(guó)内最活躍的HTML5混合開(kāi)發(fā)者社區,在這(zhè)個社區中,有很多優質和資深的APICloud開(kāi)發(fā)者,用戶在使用中遇到的問題在社區中提問都(dōu)可以第一時(shí)間獲得解答。APICloud平台上線至今,社區中已經(jīng)沉澱了很多有價值的帖子和技術專題的讨論,所以非常建議開(kāi)發(fā)者常去社區看看,那裡(lǐ)的帖子都(dōu)是各個開(kāi)發(fā)者學(xué)習經(jīng)驗的總結。本文希望讀者在開(kāi)發(fā)過(guò)程中遇到問題的時(shí)候,可以到社區中查找相關的解答或者提問,初學(xué)者最好(hǎo)能(néng)花一些時(shí)間把新手入門的帖子從頭到尾看一遍,這(zhè)是非常有價值的。

5. VIP服務

在官方網站點擊“VIP服務”。

很多大型企業或者創業公司在選擇APICloud的時(shí)候,由于整個項目的開(kāi)發(fā)周期比較緊張,而剛剛接觸一個新的平台,使用中會(huì)遇到一些問題,這(zhè)些問題在社區中是可以得到解決的,但是可能(néng)不夠及時(shí)。針對(duì)這(zhè)類客戶,APICloud提供了VIP技術支持服務,企業也可以去購買APICloud企業版。當然這(zhè)個是收費的,企業購買完之後(hòu),APICloud將(jiāng)以工單的形式提供技術支持,企業客戶有任何問題,半個小時(shí)之内APICloud官方會(huì)有技術支持一對(duì)一地進(jìn)行解答。

6.開(kāi)源代碼分享

點擊官方網站中“開(kāi)發(fā)者社區”标簽下面(miàn)的源碼。

APICloud提供了非常豐富的開(kāi)源代碼,這(zhè)些源碼包括App實例源碼,很多都(dōu)是APICloud開(kāi)發(fā)者所開(kāi)發(fā)的一些App模闆源碼,也包括一些模塊的使用示例代碼,以及App開(kāi)發(fā)過(guò)程中一些常用的JavsScript框架代碼。當然,這(zhè)裡(lǐ)也有模塊的源碼,因爲APICloud的很多模塊都(dōu)是開(kāi)源的,所以模塊的源碼就(jiù)是Android和iOS的模塊工程源碼。同時(shí),APICloud爲Sublime Text、Atom、WebStorm、Eclipse等所有主流的開(kāi)發(fā)工具提供的插件、命令行的CLI工具,以及APICloud Studio所有的代碼都(dōu)是完全免費開(kāi)源的。

這(zhè)裡(lǐ)也有APICloud前端框架和官方文檔的源碼,APICloud官方文檔本身就(jiù)是開(kāi)源的。讀者如果發(fā)現官方文檔的編寫存在不夠準确或者不夠完善的地方,可以随時(shí)在官方文檔的開(kāi)源分支中提交修改,一同爲APICloud生态發(fā)展做貢獻。還(hái)有APICloud雲SDK,也就(jiù)是APICloud提供的雲端服務,官方提供了不同技術語言版本的SDK,包括Node.js、PHP、Java、.NET等,這(zhè)些不同語言版本的雲API SDK也都(dōu)是開(kāi)源的。

更多APICloud開(kāi)源代碼可以到APICloud GitHub開(kāi)源分支j查看。

j在GitHub中搜索“apicloudcom”。

7.商業案例展示

在官方網站點擊“開(kāi)發(fā)案例”。

目前,基于APICloud平台開(kāi)發(fā)的應用已有2萬多款在蘋果AppStore上線。在APICloud商業案例展示區,用戶可以看到一些用APICloud開(kāi)發(fā)出來的應用案例,每期會(huì)展示數百款的已上線App,這(zhè)些案例都(dōu)是用APICloud開(kāi)發(fā)的商用App,不是WebApp,也不是微信公衆号或HTML5網站。所有這(zhè)些App旁邊都(dōu)有二維碼,用戶可以直接掃碼安裝體驗,這(zhè)些應用都(dōu)是使用APICloud平台開(kāi)發(fā)的。

如果APICloud的開(kāi)發(fā)者開(kāi)發(fā)了一款App,并且認爲其性能(néng)體驗不錯,可以聯系APICloud官方的運營人員,申請在官網展示這(zhè)款App。APICloud可以在案例區爲其免費展示,案例區會(huì)定期更新申請展示的App。初學(xué)者如果想看一下APICloud平台開(kāi)發(fā)出來的App是什麼(me)樣的運行體驗,就(jiù)可以直接掃碼安裝運行這(zhè)些案例,看一下體驗和效果。

8.模塊Store(聚合API)

點擊官方網站中,“App開(kāi)發(fā)平台”下面(miàn)的模塊Store。

APICloud模塊Store上展示了APICloud平台上所有的擴展模塊。APICloud使用行業标準的模塊擴展機制,對(duì)于具有Android和iOS開(kāi)發(fā)經(jīng)驗的開(kāi)發(fā)者,可以直接按照APICloud模塊擴展機制爲APICloud貢獻模塊,這(zhè)些模塊可以選擇收費也可以免費。

目前,APICloud平台上有600多個模塊,大部分的模塊是免費的。大約有1/3是APICloud官方開(kāi)發(fā)的,官方提供的所有模塊都(dōu)是免費的,基本可以覆蓋App開(kāi)發(fā)所需的全部基礎功能(néng);還(hái)有1/3是第三方服務廠商開(kāi)發(fā)的,比如高德地圖、科大訊飛語音識别、融雲即時(shí)通訊等;最後(hòu)的1/3是個人開(kāi)發(fā)者開(kāi)發(fā)的,個人開(kāi)發(fā)者提供的模塊大部分都(dōu)是收費的。APICloud是想建立一個生态,對(duì)于Android和iOS的開(kāi)發(fā)者,可以非常輕松地爲APICloud模塊Store貢獻模塊,同時(shí)模塊開(kāi)發(fā)者可以爲其開(kāi)發(fā)的模塊标一個價格,讓其他開(kāi)發(fā)者購買後(hòu)使用。

9.模闆Store

點擊官方網站,“App定制服務”下面(miàn)的模闆Store。

APICloud還(hái)有一款産品是模闆Store。開(kāi)發(fā)者在開(kāi)發(fā)完一個應用之後(hòu),如果不想再運營這(zhè)個應用了,或者是單純想做一款應用的模闆,如果它是一個完整的端到端的應用,整個需求和功能(néng)都(dōu)可以達到一個标準商業應用的水平,就(jiù)可以將(jiāng)它作爲一個模闆提交給APICloud。APICloud官方可以把它模闆化後(hòu)成(chéng)爲APICloud模闆Store中的一款模闆。整體是有一個審核流程的。模闆審核通過(guò)之後(hòu),就(jiù)可以在APICloud模闆Store上進(jìn)行銷售。在模闆Store上架後(hòu),其他開(kāi)發(fā)者隻需一鍵購買,在線支付,就(jiù)可以在幾分鍾之内獲得這(zhè)樣一個模闆。所購買的産品包括這(zhè)個模闆的管理後(hòu)台、模闆的Android和iOS的安裝包以及一些必要的皮膚定制等服務,同時(shí)在開(kāi)發(fā)者的APICloud應用控制台中,也會(huì)有一個對(duì)應的“模闆應用”的項目。

10. APICloud應用定制服務

點擊官方網站中的“App定制服務”。

在APICloud平台上每天都(dōu)會(huì)聚集很多客戶的App定制需求,因爲很多客戶認可APICloud平台和App開(kāi)發(fā)模式,但是由于沒(méi)有自己的開(kāi)發(fā)團隊,所以希望APICloud能(néng)夠爲他們提供App定制服務,或者爲他們推薦優質的團隊來進(jìn)行項目實施。APICloud應用定制服務有一套标準化的開(kāi)發(fā)流程和項目管理流程。

1.1.5 新手入門APICloud應用開(kāi)發(fā)

這(zhè)裡(lǐ)推薦一些優質的入門資料,讀者可以在官方文檔頁面(miàn)中找到這(zhè)些資料。

APICloud新手開(kāi)發(fā)指南,在這(zhè)個指南當中,基本上涵蓋了APICloud應用開(kāi)發(fā)入門所需的各方面(miàn)知識,并且APICloud官方也會(huì)不斷更新這(zhè)個教程,所以這(zhè)個新手開(kāi)發(fā)指南是所有APICloud初學(xué)者必須要認真閱讀的文檔。

APICloud新手教程集合貼,這(zhè)是社區裡(lǐ)的新手教程集合貼,裡(lǐ)面(miàn)有很多優秀開(kāi)發(fā)者的開(kāi)發(fā)技巧、經(jīng)驗和教程的總結,推薦新手一定要看。

點擊官方網站中的“開(kāi)發(fā)者社區”,搜索“新手教程集合貼”。

●APICloud視頻教程15,如果初學(xué)者想找一種(zhǒng)更簡便的方式去學(xué)習,也可以去看看APICloud的視頻教程,在這(zhè)個視頻教程中已經(jīng)有數百集的視頻。

15點擊官方網站中的“視頻教程”。

●APICloud在線培訓,APICloud定期會(huì)舉辦線上的視頻直播培訓,直播的老師既有APICloud工程師,也有優秀的APICloud開(kāi)發(fā)者或其他培訓機構的老師來直播。

1.2 體驗完整項目的開(kāi)發(fā)流程

在對(duì)APICloud平台有了基礎的認識後(hòu),讀者將(jiāng)跟随本節内容從零開(kāi)始,創建、修改、調試、編譯和運行一個最簡單的App。這(zhè)個App不包含任何複雜的開(kāi)發(fā)技術,旨在讓讀者體驗一個完整App的開(kāi)發(fā)流程。在本節的最後(hòu),這(zhè)個應用將(jiāng)可以在移動設備上運行。

1.2.1 注冊APICloud賬号

在創建App項目之前,首先要有一個APICloud賬号,這(zhè)個賬号非常重要,請妥善保管。點擊APICloud官方網站右上角的注冊按鈕即可開(kāi)始注冊。注冊過(guò)程非常簡單,注冊完成(chéng)後(hòu)請登錄賬戶。

1.2.2 創建一個App項目

創建一個新的項目有兩(liǎng)種(zhǒng)方式:

在APICloud雲平台上創建;

在APICloud的官方開(kāi)發(fā)工具中創建。

APICloud推薦的集成(chéng)開(kāi)發(fā)工具是APICloud Studio 2。同時(shí)也爲其他常用的開(kāi)發(fā)工具軟件提供了插件支持,如Sublime、Eclipse、WebStorm、Atom等,讀者可以根據自己的使用習慣選擇對(duì)應的工具。

本文以APICloud Studio 2爲例。首先需要下載這(zhè)個開(kāi)發(fā)工具,選擇官網首頁的“App開(kāi)發(fā)平台”,然後(hòu)選擇“開(kāi)發(fā)工具”。

在新的頁面(miàn)中根據具體的操作系統選擇對(duì)應版本的APICloud Studio 2進(jìn)行下載。下載完成(chéng)後(hòu)將(jiāng)壓縮包解壓到任意位置,在解壓後(hòu)的文件中找到類似“apicloud-studio-2.exe”的文件,這(zhè)是開(kāi)發(fā)工具的可執行文件。建議爲它創建桌面(miàn)快捷方式以方便使用。

1.在APICloud雲平台上創建新項目

在官方網站登錄成(chéng)功後(hòu),將(jiāng)鼠标移動到頁面(miàn)右上角的用戶名處,在顯示的菜單中點擊“開(kāi)發(fā)控制台”。

打開(kāi)控制台頁面(miàn)後(hòu),頁面(miàn)左側是項目列表,現在它是空白的;在中間部分會(huì)顯示APICloud的更新日志(APICloud平台自上線以來一直堅持每周更新一個版本)等平台動向(xiàng)信息;右側是個人信息以及一些工具按鈕,如圖1-10所示。

​ 圖1-10

點擊左上角的“創建應用”,在彈出的窗口中選中“Native App”(默認選項),在“名稱”輸入框中填入“HelloAPICloud”并在“說(shuō)明”輸入框中填入任意說(shuō)明信息,之後(hòu)點擊創建。此時(shí)一個新的項目便被創建好(hǎo)了并顯示了剛剛創建項目的管理頁面(miàn),後(hòu)續會(huì)對(duì)這(zhè)個頁面(miàn)的相關功能(néng)進(jìn)行循序漸進(jìn)的學(xué)習。

在項目創建完成(chéng)後(hòu)還(hái)需要將(jiāng)這(zhè)個項目檢出到本地進(jìn)行開(kāi)發(fā),APICloud支持通過(guò)git或svn進(jìn)行代碼管理(關于代碼版本管理的資料請查閱相關文檔),即便讀者不了解代碼版本管理的相關知識也不妨礙本節的學(xué)習。

打開(kāi)APICloud Studio 2,如果開(kāi)發(fā)者是首次運行此開(kāi)發(fā)工具則需要進(jìn)行登錄。請用之前創建的賬号進(jìn)行登錄,否則無法找到相應的項目。登錄成(chéng)功後(hòu)會(huì)進(jìn)入歡迎頁面(miàn)。

此時(shí)開(kāi)發(fā)工具已經(jīng)獲得了賬号權限,可以對(duì)項目進(jìn)行操作了。點擊菜單欄的“代碼管理”→“代碼檢出”→“APICloud雲端應用”,在出現的檢索框中輸入之前創建的項目名稱“HelloAPICloud”,回車确認(也可以從下面(miàn)的模糊搜索結果中選擇相應的項目,如圖1-11所示)。

​ 圖1-11

在彈出的對(duì)話框中選擇這(zhè)個項目在開(kāi)發(fā)設備上的保存位置(例如在桌面(miàn)上新建一個叫(jiào)作“HelloAPICloud”的文件夾,然後(hòu)選擇這(zhè)個文件夾)并點擊“檢出”。

在新彈出的輸入框中保持默認,直接按回車即可,如圖1-12所示。

​ 圖1-12

開(kāi)發(fā)工具會(huì)自動從APICloud雲端將(jiāng)賬号中的“HelloAPICloud”項目檢出到本地計算機上,稍等便可以看到默認打開(kāi)的代碼編輯頁面(miàn)。

2.在APICloud Studio 2上創建新項目

打開(kāi)APICloud Studio 2并登錄之前創建的賬号。點擊菜單欄中的“文件”→“新建”→ “APICloud移動應用”,分别輸入應用名稱和應用說(shuō)明,應用框架選擇“空白應用”,之後(hòu)點擊完成(chéng)。在彈出的對(duì)話框中選擇新項目的創建位置,點擊“創建”。

稍等便可以完成(chéng)創建。此時(shí)在網站的控制台中可以看到剛剛創建的項目。

本文摘自《30天App開(kāi)發(fā)從0到1:APICloud移動開(kāi)發(fā)實戰》

《30天App開(kāi)發(fā)從0到1:APICloud移動開(kāi)發(fā)實戰》

鄒達, 李德興 著

本書介紹如何通過(guò)APICloud平台快速開(kāi)發(fā)一款APP,從介紹APICloud平台開(kāi)始,從零搭建APP框架,對(duì)數據通信能(néng)力、js移動端應用、APICloud引擎架構、第三方開(kāi)放平台服務應用發(fā)布和管理及更新叠代均有詳細講述。

随後(hòu)詳細對(duì)UI框架的使用進(jìn)行分析,通過(guò)對(duì)熱門行業的移動應用開(kāi)發(fā)解決方案的介紹,讓讀者掌握真正的實戰技巧——如何開(kāi)發(fā)一款優質的APP。