年來,隨著移動領(lǐng)域的快速發(fā)展,開發(fā)Android、iOS等各種移動應用APP的需求越來越多,再加上萬眾期待的華為鴻蒙系統(tǒng)即將推出,很多移動領(lǐng)域的程序員越來越無所適從。每個項目啟動前,大家都會考慮開發(fā)語言和工具、應用平臺、成本、團隊成員、技術(shù)成熟度、時間、項目需求等諸多因素,我們的壓力也越來越大。
曾經(jīng)的HTML5技術(shù)標準的發(fā)布和應用更是掀起了一股小浪潮,大家紛紛討論:原生開發(fā)、還是H5開發(fā)、還是混合開發(fā)?到底我們應該選用那種模式?原生開發(fā)雖最徹底支持相關(guān)系統(tǒng),但我們針對不同的操作系統(tǒng)平臺,要使用完全不同的語言重寫一次,那為何不是H5一次開發(fā)多平臺適用?其實事情遠沒有這么簡單。
中國人喜歡中庸,我們最擅長的,就是綜合各種技術(shù)的優(yōu)點,做到“吸取精華、剔除糟粕”。當然在APP領(lǐng)域也是這樣,目前國內(nèi)流行的HBuilderX、WeX5、APICloud等各類APP開發(fā)工具,就是綜合了原生開發(fā)和H5開發(fā)的優(yōu)勢,我們稱這種App開發(fā)模式為Hybrid App開發(fā)。
何為Hybrid App?
Hybrid App(混合模式移動應用)是指介于Web-App、Native-App這兩者之間的App,兼具“Native App良好用戶交互體驗的優(yōu)勢”和“Web App跨平臺開發(fā)的優(yōu)勢”。
Hybrid App主要以JS+Native兩者相互調(diào)用為主,從開發(fā)層面實現(xiàn)“一次開發(fā),多處運行”的機制,成為真正適合跨平臺的開發(fā)。Hybrid App兼具了Native App良好用戶體驗的優(yōu)勢,也兼具了Web App使用HTML5跨平臺開發(fā)低成本的優(yōu)勢。
目前已經(jīng)有大量Hybrid App開發(fā)成功應用,比如美團、愛奇藝、微信等等知名移動應用,都是采用Hybrid App開發(fā)模式的杰作。
移動應用開發(fā)的技術(shù)模式,目前來看主要分為以下三種:
三種移動應用開發(fā)方式各有千秋,下表是三種方式的特點比較:
1、Web App需開發(fā)“H5云網(wǎng)站”和“App客戶端”,這類型App應用呈現(xiàn)以下特點:
(1)每次打開APP,都要通過APP框架向云網(wǎng)站取UI及數(shù)據(jù);
(2)手機用戶無法上網(wǎng)則無法訪問APP應用中的數(shù)據(jù)。
(3)框架型的APP無法調(diào)用手機終端的硬件設(shè)備(語音、攝像頭、短信、GPS、藍牙、重力感應等)
(4)框架型APP的訪問速度受手機終端上網(wǎng)的限制,每次使用均會消耗一定的手機上網(wǎng)流量;
(5)框架型APP應用的安裝包小巧,只包含框架文件,而大量的UI元素、數(shù)據(jù)內(nèi)容剛存放在云端;
(6)APP用戶每次都可以訪問到實時的最新的云端數(shù)據(jù);
(7)APP用戶無須頻繁更新APP應用,與云端實現(xiàn)的是實時數(shù)據(jù)交互。
適用企業(yè):電子商務(wù)、金融、新聞資訊、企業(yè)集團需經(jīng)常更新內(nèi)容的APP應用。
2、Native App(原生型App)需要開發(fā)“云服務(wù)器數(shù)據(jù)中心”和“App客戶端”,這類型的APP應用呈現(xiàn)以下特點:
(1)每次獲取最新的APP功能,需要升級APP應用;
(2)原生型APP應用的安裝包相對較大,包含UI元素、數(shù)據(jù)內(nèi)容、邏輯框架;
(3)手機用戶無法上網(wǎng)也可訪問APP應用中以前下載的數(shù)據(jù)。
(4)原生型的APP可以調(diào)用手機終端的硬件設(shè)備(語音、攝像頭、短信、GPS、藍牙、重力感應等);
(5)APP應用更新新功能,涉及到每次要向各個應用商店進行提交審核。
適用企業(yè):游戲、電子雜志、管理應用、物聯(lián)網(wǎng)等無需經(jīng)常更新程序框架的APP應用。
由以上比較可以看出,Web開發(fā)和原生開發(fā)都有各自的優(yōu)缺點和適用范疇,原生開發(fā)與硬件的結(jié)合更緊密、功能更強大;Web開發(fā)的UI更好控制、更容易實現(xiàn)跨平臺。結(jié)合我們中國人的中庸之道,混合開發(fā)當然是最好的選擇!
混合開發(fā)結(jié)構(gòu)圖如下圖所示:
Android混合開發(fā)層次結(jié)構(gòu)圖參看下圖:
下面列舉一些常見的Hybrid App開發(fā)工具,排名不分先后。
1、WeX5:起步科技產(chǎn)品
WeX5擁有高效精致的UI組件體系,基于jquery和bootstrap技術(shù),采用增強的RequireJS模塊化技術(shù)。基于phonegap(cordova)框架,如相機、地圖、LBS定位、指南針、通訊錄、文件、語音、電池等。可視化拖拽式集成開發(fā)環(huán)境IDE,全能力的調(diào)試支持和智能代碼提示。
2、DCloud:數(shù)字天堂產(chǎn)品
DCloud面向H5行業(yè)分別推出了開發(fā)工具HBuilder、手機強化引擎5+ Runtime、跨平臺前端框架mui、應用發(fā)行產(chǎn)品流應用,通過系列產(chǎn)品對HTML5的強化支持,使得H5能達到原生的功能和體驗,同時在發(fā)行上更優(yōu)于原生應用。
3、APICloud:柚子科技產(chǎn)品
APICloud是國內(nèi)較早布局低代碼開發(fā)的平臺之一,其發(fā)布的低代碼效率工具Plus Mode,為IT項目中每個角色提供專業(yè)工具,將需求分析、產(chǎn)品原型、UI設(shè)計、前端開發(fā)、后端開發(fā)緊密銜接,并基于行業(yè)大數(shù)據(jù)對前置環(huán)節(jié)進行復用,最終縮減大量重復性工作,有效提升30%-60% IT項目效率。
4、AppCan:正益移動產(chǎn)品
AppCan是本土移動開發(fā)中使用最廣的移動平臺之一,AppCan不僅封裝了類似于PhoneGap的本地調(diào)用功能,而且封裝了uexWindow多窗口機制,實現(xiàn)了移動端的iframe效果,雖然不是開源項目,但一直都有面向開發(fā)者的免費版,并且也有定位于企業(yè)用戶的企業(yè)版套裝。
tml5的就業(yè)崗位有哪些?以下將進行分類介紹。
1.H5 web前端工程師
這個崗位主要負責的產(chǎn)品是網(wǎng)頁界面部分。所需要掌握的技術(shù)有:
html、css、js即可完成
為提高開發(fā)開發(fā)速度,會配合使用css和js框架
css框架(bootstrap,FontAwesome...)
js框架(jQuery、Vue.js、React.js、Angular.js)
2.H5服務(wù)器后端工程師
這個崗位主要負責的是服務(wù)器部分。所需要掌握的技術(shù)有:
web前端工程師所需的所有技術(shù)(至少要會html,css和js)
js框架node.js
node.js的框架的框架(express.js、mysql.js)
數(shù)據(jù)庫技術(shù)(以下至少一種數(shù)據(jù)庫,常常是混合使用)
mysql、mongoDB、redis
3.H5移動設(shè)備開發(fā)工程師
手機應用開發(fā)工程師, 又叫手機APP工程師,主要負責的是APP應用軟件的開發(fā)。
所需掌握的技術(shù)有:
做界面html、css、js即可完成
為提高開發(fā)開發(fā)速度和難度,會配合使用css和js框架
–css框架(bootstrap,mui,FontAwesome)
–js框架(jQuery、Vue.js、React.js、Angular.js)
–操作手機本身的功能(聯(lián)系人、攝像頭、傳感器、二維碼掃描等...)js即可完成,為提高開發(fā)開發(fā)速度和難度會選擇使用js框架(HTML+、ReactNative、vueMit、IoNic、Cordever)
4.微信小程序工程師
這個崗位主要負責的產(chǎn)品有微信小程序應用程序和微信小程序游戲程序等。所需要掌握的技術(shù)有:
html, css, js。
微信小程序框架
以上是關(guān)于Html5的就業(yè)崗位的總體介紹。當然,Html5的就業(yè)崗位不僅僅只有這些,還可以從事UI運維工程師、互聯(lián)網(wǎng)架構(gòu)師等等崗位。最后還想跟大家說的是,在Html5開發(fā)領(lǐng)域里,技術(shù)是第一位的,只要技術(shù)好,薪水自然高。私信【前端】領(lǐng)取web前端開發(fā)/html5學習視頻。
一階段:
HTML+CSS:
HTML進階、CSS進階、div+css布局、HTML+css整站開發(fā)、
JavaScript基礎(chǔ):
Js基礎(chǔ)教程、js內(nèi)置對象常用方法、常見DOM樹操作大全、ECMAscript、DOM、BOM、定時器和焦點圖。
JS基本特效:
常見特效、例如:tab、導航、整頁滾動、輪播圖、JS制作幻燈片、彈出層、手風琴菜單、瀑布流布局、滾動事件、滾差視圖。
JS高級特征:
正則表達式、排序算法、遞歸算法、閉包、函數(shù)節(jié)流、作用域鏈、基于距離運動框架、面向?qū)ο蠡A(chǔ)、
JQuery:基礎(chǔ)使用
懸著器、DOM操作、特效和動畫、方法鏈、拖拽、變形、JQueryUI組件基本使用。
第二階段:
HTML5和移動Web開發(fā)
HTML5:
HTML5新語義標簽、HTML5表單、音頻和視頻、離線和本地存儲、SVG、WebSocket、Canvas.
CSS3:
CSS3新選擇器、偽元素、臉色表示法、邊框、陰影、background系列屬性改變、Transition、動畫、景深和深透、3D效果制作、Velocity.js框架、元素進場、出場策略、炫酷CSS3網(wǎng)頁制作。
Bootstrap:
響應式概念、媒體查詢、響應式網(wǎng)站制作、刪格系統(tǒng)、刪格系統(tǒng)原理、Bootstrap常用模板、LESS和SASS。
移動Web開發(fā):
跨終端WEB和主流設(shè)備簡介、視口、流式布局、彈性盒子、rem、移動終端JavaScript事件、手機中常見JS效果制作、Zepto.js、手機聚劃算頁面、手機滾屏。
第三階段:
HTTP服務(wù)和AJAX編程
WEB服務(wù)器基礎(chǔ):
服務(wù)器基礎(chǔ)知識、Apache服務(wù)器和其他WEB服務(wù)器介紹、Apache服務(wù)器搭建、HTTP介紹。
PHP基礎(chǔ):
PHP基礎(chǔ)語法、使用PHP處理簡單的GET或者POST請求、
AJAX上篇:
Ajax簡介和異步的概念、Ajax框架的封裝、XMLHttpRequest對象詳細介紹方法、兼容性處理方法、Ajax框架的封裝、Ajax中緩存問題、XML介紹和使用。
AJAX下篇:
JSON和JSON解析、數(shù)據(jù)綁定和模板技術(shù)、JSONP、跨域技術(shù)、圖片預讀取和lazy-load技術(shù)、JQuery框架中的AjaxAPI、使用Ajax實現(xiàn)爆布流案例額。
第四階段:
面向?qū)ο筮M階
面向?qū)ο蠼K極篇:
從內(nèi)存角度到理解JS面向?qū)ο蟆⒒绢愋汀碗s類型、原型鏈、ES6中的面向?qū)ο蟆傩宰x寫權(quán)限、設(shè)置器、訪問器。
面向?qū)ο笕筇卣鳎?br>繼承性、多態(tài)性、封裝性、接口。
設(shè)計模式:
面向?qū)ο缶幊趟季S、單例模式、工廠模式、策略模式、觀察者模式、模板方法模式、代理模式、裝飾者模式、適配器模式、面向切面編程。
第五階段:
封裝一個屬于自己的框架
框架封裝基礎(chǔ):
事件流、冒泡、捕獲、事件對象、事件框架、選擇框架。
框架封裝中級:
運動原理、單物體運動框架、多物體運動框架、運動框架面向?qū)ο蠓庋b。
框架封裝高級和補充:
JQuery框架雛形、可擴展性、模塊化、封裝屬于傳智自己的框架。
第六階段:
模塊化組件開發(fā)
面向組件編程:
面向組件編程的方式、面向組件編程的實現(xiàn)原理、面向組件編程實戰(zhàn)、基于組件化思想開發(fā)網(wǎng)站應用程序。
面向模塊編程:
AMD設(shè)計規(guī)范、CMD設(shè)計規(guī)范、RequireJS,LoadJS、淘寶的SeaJS。
第七階段:
主流的流行框架
Web開發(fā)工作流:
GIT/SVN、Yeoman腳手架、NPM/Bower依賴管理工具、Grunt/Gulp/Webpack。
MVC/MVVM/MVW框架:
Angular.js、Backbone.js、Knockout/Ember。
常用庫:
React.js、Vue.js、Zepto.js。
第八階段:
HTML5原生移動應用開發(fā)
Cordova:
WebApp/NativeApp/HybirdApp簡介、Cordova簡介、與PhoneGap之間的關(guān)系、開發(fā)環(huán)境搭建、Cordova實戰(zhàn)(創(chuàng)建項目,配置,編譯,調(diào)試,部署發(fā)布)。
Ionic:
Ionic簡介和同類對比、模板項目解析、常見組件及使用、結(jié)合Angular構(gòu)建APP、常見效果(下拉刷新,上拉加載,側(cè)滑導航,選項卡)。
ReactNative:
ReactNative簡介、ReactNative環(huán)境配置、創(chuàng)建項目,配置,編譯,調(diào)試,部署發(fā)布、原生模塊和UI組件、原生常用API。
HTML5+:
HTML5+中國產(chǎn)業(yè)聯(lián)盟、HTML5PlusRuntime環(huán)境、HBuilder開發(fā)工具、MUI框架、H5+開發(fā)和部署。
第九階段:
Node.js全棧開發(fā):
快速入門:
Node.js發(fā)展、生態(tài)圈、Io.js、Linux/Windows/OSX環(huán)境配置、REPL環(huán)境和控制臺程序、異步編程,非阻塞I/O、模塊概念,模塊管理工具、開發(fā)流程,調(diào)試,測試。
核心模塊和對象:
全局對象global,process,console,util、事件驅(qū)動,事件發(fā)射器、加密解密,路徑操作,序列化和反序列化、文件流操作、HTTP服務(wù)端與客戶端。
Web開發(fā)基礎(chǔ):
HTTP協(xié)議,請求響應處理過程、關(guān)系型數(shù)據(jù)庫操作和數(shù)據(jù)訪問、非關(guān)系型數(shù)據(jù)庫操作和數(shù)據(jù)訪問、原生的Node.js開發(fā)Web應用程序、Web開發(fā)工作流、Node.js開發(fā)Blog案例。
快速開發(fā)框架:
Express簡介+MVC簡介、Express常用API、Express路由模塊、Jade/Ejs模板引擎、使用Express重構(gòu)Blog案例、Koa等其他常見MVC框架。
希望對您有所幫助!~
*請認真填寫需求信息,我們會在24小時內(nèi)與您取得聯(lián)系。