〖原生混合app开发框架〗教你h5技術為啥開發ap

一、h5技術為啥開發app不火?反而倒是原生技術開發更為廣泛應用?

其實現在h5是很火的,而且一個應用不是一定适合某種技術,要看應用的類型來選擇的。可以根據以下原則來選擇:

1.如果APP中出現大段文字(如新聞、攻略等),且格式比較豐富(如加粗,字體多樣),那麼用H5會比較方便。原因是原生開發解析json對字符串格式處理不算很好。

2.如果講究APP反應(含頁面切換流暢性),則選用原生開發,因為H5其本質是網頁,換頁時,基本要加載整個頁面,就像是浏覽器打開一個新頁面一樣,顯得較慢,而原生系統則隻加載變化部分。

3.如果APP對有無網絡、網絡優劣敏感(譬如有離線操作,在線操作),那麼,基本選用原生開發,雖然H5可以做到,但是很複雜。

4.如果APP需要頻繁調用硬件(攝像頭、麥克風、未來的濕度檢測儀等等)那麼,基本選用原生開發,這樣支持硬件更多,更容易擴展,且調用更快,H5就望塵莫及了。

5.如果APP用戶常見頁面頻換,如(淘寶首頁各種不同活動),那麼用H5,維護起來更容易。

6.如果預算有限(H5開發一套可跨平台覆蓋安卓、ios,黑莓、塞班),不是很講究用戶體驗,不在乎加載,那非H5不可。

列舉那麼多,實際上有個采陰補陽的方法是H5+原生混合開發,對于固定格式、頁面要求高,的模塊(如PDB的即時通訊、寶典、我的項目)采用原生開發,對于新聞、大段文字、資訊類的(如信息廣場、發表、問吧等)用H5頁面來加載,将其嵌入到原生框架中那麼,可以達到比較良好的體驗。

h5技術為啥開發app不火?反而倒是原生技術開發更為廣泛應用?

二、uniapp會取代原生開發嗎

取代說不上,但是相對來說uniapp開發比原生開發好很多。

作為前端工程師,除了微信小程序,還要開發web、其他小程序甚至App,人們不喜歡來回切換開發工具和變更語法思考方式。

uni-app自然可以解決這些問題,但開發者又經常有些顧慮:

怕使用uni-app後,微信小程序裡有的功能無法實現,受制于uni-app的更新。怕性能不如原生WXML。怕框架不成熟,跳到坑裡。擔心社區生态不完善。

uin-app 和原生開發是有很大差别的,至少在性能和需求覆蓋度上會差很多。uin-app 框架使用的其實是 cordova 的進階版,也就是把 web 代碼打包到本地,本地實質上還是通過 WebView 運行,那性能的瓶頸不言而喻。

另外 uni-app 支持使用 Weex 框架拓展性能,本質上是通過橋的功能把 Vue 控件映射為原生控件進行渲染,效果和 react-native ,雖然性能有所提升,但是和原生相比差距還是有的。

另外 uni-app 在設計到手機的硬件調用,通信和多線程問題上還是得回歸到原生平台,一般 200 多個頁面業務的 App 不大可能都隻是純 UI 展示。

具體數據對比我這裡沒有,不過可以總結下就是:uni-app 特别實用 vue 的開發人員,并且在業務邏輯并不複雜的場景是很實用的跨平台開發工具,但是面對 100-200 個頁面的需求肯定是不行的。

uniapp會取代原生開發嗎

三、做APP開發的新網站有哪些?

移動開發這些年,移動開發者人數越來越多,類似的培訓公司發展也很快,不過伴随着的是移動應用的需求這幾年發展更為旺盛。要開發好的App,純原生開發肯定是最佳選擇。但是這麼多年發展,原生開發的難度并沒有降低多少,特别是作為一個需要長期運營的App,需要原生人員的長期跟進,人員成本很高。另外,從蘋果和Android的崛起開始,為了支持截然不同的二個操作系統,相當于二套開發人員開發二個功能完全的App,可想開發效率的低下。

一直以來,程序員對移動跨平台的追求就沒有停止努力,跨平台是為了提高開發效率,随着帶來的必然是性能的降低。但從軟件發展的曆史看,部分損失某一方面的性能來換取效率的提高還是非常值得的。

就好像我們用c語言替代彙編,損失了掉的那些運行效率基本是可以忽略不計的,我們換來的是開發效率大幅提高,相對于彙編語言而言C語言同時也部分解決了跨平台跨設備的問題(至少不用再考慮對特定寄存器的編程了)。

同樣當曆史發展到大量用Java替代C語言開發的時候,我們損失掉了c語言的Native設備的開發能力的同時,所換來的多線程開發、分布式開發、跨平台開發能力的增強,也完全符合www時代發展的需要的。

天然的,移動開發的程序員首先想到的H5和Webview,這是最容易實現的跨平台方案。在H5的路上移動開發者們做了很多努力。純原生開發我們暫時不提,光從跨平台來說,發展的曆程可以大概分3個階段:

1. 純H5方式

由于web應用已經在PC應用上占了半壁江山,最早的時候大家想着直接使用手機的系統浏覽器加載一個網址,這最容易實現,顯然問題很多,性能就不提了,其它方面,比如不同的浏覽器适配很難,浏覽器的安全性限制了大部分手機上的設備無法使用,存儲本地都受限制。但是這種方式并沒有消亡,它有一定的适應範圍。特别是随着微信的崛起,這種方式已經應用很廣了,微信承載了一個統一跨平台的浏覽器功能,而且能調用不少原生功能。很多想長期運營的App都會有微信的入口,而且通常是先做微信推廣,再做App。

的方式還有一個明顯的缺陷就是應用的差異性,桌面上沒有App的圖标,大家都從浏覽器或微信入口,對于一個長期運營的想有一定知名度的應用來說肯定無法接受。

接下來移動開發者的想法就是用一個有自己圖标和入口的原生的App的殼加載一個原生的Webview組件,然後加載網頁,同時通過js和原生的橋接技術來實現html和原生功能的調用。這種技術的代表是phonegap技術,它影響了國内很多移動開發者和公司,有不少框架和技術都是基于或學習它。在它被改名之前,我們也完整下載和研究過它的代碼。

這個時期的應用特點是:

* 整個核心就一個webview,裡面頁面的切換都是本地網頁或web網頁的跳轉

* 沒有任何原生ui的參與,所有ui都是靠webview的标簽。有一些簡單原生ui可以以窗口的方式調用起來。

* 整個應用的邏輯都是靠html裡的js來驅動。

* 能調用原生的一些基礎功能,比如攝像頭,存儲,數據庫等等。

這種方式起初還是有一定市場的,主要是開發效率非常高,很多已有的PC端的網站改吧改吧就出來一個跨Andoid和iOS的應用。但是這樣的應用隻能說勉強能用,稍微複雜一點就連用都不能用了。性能和體驗問題是最主要的,更何況早期Android 2.x時代,iOS4.x,5.x時代手機的性能也不高。

2.H5和Native的混合 (Hybrid)

手機的性能越來越好,H5也越來越流暢,但是随之而來的是好的原生App越來越多,H5在很多方面還是無法替代原生。于是越來越多的原生功能和H5混合在一起,形成了Hybrid開發的模式。

這裡我要說跨平台的發展分了二種思路或二個方向:

* 原生為主,更多的加入H5的元素,我們暫且稱之為Native/H5

* H5為主,更多的加入Native的元素, 我們暫且稱之為H5/Native

首先我們看Native/H5,這種應用很多,而且是現有市場上的主流,特别是大型的優秀的以内容為主的App,代表是微信,天貓,京東這些App。裡面都大量使用Webview加載大量網頁。因為原生的更新很麻煩,而那些需要大量内容更新的App必然會選擇Webview作為内容承載。很顯然,這種方式并沒有降低多少成本,原生人員還是需要二套,内容頁面還需要一套熟悉web技術等人員。

我們再看H5/Native,國内的代表應該是Appcan,APICloud,wex5等移動開發平台。這些框架的最早期就是我上面提到的純H5方式,慢慢加上更多的原生因素,比如一個webview改成多個webview,頁面上加入不少原生的ui元素,比如頁面的titlebar使用原生的ui,還有很多,他們一直在努力解決體驗和性能的問題。也有很多App産出了。國外也有很多框架,不少是通過html實現一套和原生樣子很像的ui組件。但是相比Native/H5, 我覺得H5/Native的發展思路不對。

做APP開發的新網站有哪些?

四、為什麼會有App跨平台框架

由于大部份的開發者都有開發過網站的經驗,因此有不少跨平台開發解決方案都使用了HTML, Javascript和CSS作為開發的基礎。

Mobile Web App框架

各種方案當中,開發Web App是支援平台最多的一種做法。因為現代的行動平台一定都配備了浏覽器,以Web的形式來開發App是最直接且入門門檻相對較低的做法。但是因為浏覽器的諸多限制,有很多裝置上的功能(如:拍照、存取通訊錄或相簿)并無法使用,與系統間也沒有資料交換(如:通訊錄、行事曆)的機制。再加上無法上架到App Store或Google Play等銷售平台上販賣,這大大限制了其應用範圍。不過如果隻是單純的信息傳遞,不需要太多與手機的整合性功能,開發行動裝置專用的Mobile Web App,或是同時适用各種裝置的Responsive Web App将能夠橫跨最多的平台。隻是要做到流暢的使用者經驗,開發者對于HTML5、CSS3的技術掌握必須在一定的層次之上,才能對于各種浏覽器環境有一定的掌握。目前針對Mobile Web的框架有Sencha Touch、jQuery Mobile、Meteor、Mobello等。Responsive Web相關框架則有Bootstrap、Foundation、Skeleton、Amazium等。

Hybrid App框架

另一種解決方案為以PhoneGap為首的Hybrid App,它提供一個框架,讓開發者能夠将網頁直接打包成App,上架販售。若要使用裝置的功能,這類框架也提供能Javascript API,讓App可以存取手機的功能(如:拍照)。Hybrid App直接使用網頁來制作使用者界面,這是它的優點、但同時也是缺點。因為這代表開發者無法直接使用平台原生的使用者界面,也就是說看起來不像該平台的App,要花時間調整到和原生界面相同的視覺效果和流程度,有相當大的門檻要跨過。通常會藉由使用Mobile Web App的框架來降低開發難度。但由于顯示的部分還得經過浏覽器引擎,也有跨浏覽器的兼容問題要處理,在整體的功能與流暢度方面,尚難以和Native App相提并論。不過如果隻是單純的信息呈現,對流暢度和功能的要求較低,Hybrid App還是其生存空間,尤其PhoneGap已經被整合到視覺設計師熟悉的Dreamweaver内。

跨平台Native App框架

這邊提到的Native App,講的用是非原廠的開發平台開發Native App的這類型框架。此類框架讓開發者使用他們過去已經熟悉的程序語言如Javascript、C#、Lua開發App,發布時再把程序轉換為Native App。因此在流暢度上,比較容易可以和Native App做到的水平。在功能性和與行動平台功能的整合性,也較Hybrid App為佳。這類框架通常都有其特别的适用範圍,如Titanium可以使用原生的UI元件,适合一般的應用開發。Corona則是2D的遊戲引擎,Unity則是3D遊戲的首選開發框架。和原廠的開發平台相比,這些框架常有的弱點就是檔案通常比較大、對于個平台的新功能支援也會慢于原廠平台。不過這換來的是較低的學習門檻和跨平台開發節省的時間。

技術抉擇

介紹的幾個類型的框架并沒有絕對的好或壞,而是應該看應用類型與公司的資源和策略而定。

如果團隊的技術實力和資源足夠,能夠用原廠的開發平台來開發,非常恭喜你,這将是能夠完全發揮軟硬件效能的選擇。如果橫跨最多平台是重點,且無需上架販售,那麼Mobile Web會是最好的選擇。如果隻需要基本的裝置功能,且可以掌握Mobile Web開發技術,那麼Hybrid App可以考慮看看。如果你想開發與原廠開發工具相近的使用者經驗,而且不會用到平台最新技術,你最适合的選項将會是跨平台Native App框架。

為什麼會有App跨平台框架

五、小白想自己開發一個安卓APP,要調用電腦軟件裡(ArcGIS)的數據,怎麼才能實現

1.如今的程序員世界,已經博大精深,就像小說中的功夫派别一樣,各種門派如百家争鳴,新入門其中,感覺就是一個,這麼多我選擇什麼呢各種程序類型,各種開發環境,各種框架、結構,絕對讓人眼花缭亂.這個時候對于很多新手來說,如何選擇是個難題.對于APP開發,如何選擇原生與混合,小編的意見就是選擇自己擅長的,對于新手來說,選擇簡單的.

2.APICloud的學習成本真的非常低,基本上花幾個小時把文檔看一下就可以進行開發了,沒有需要學習的新知識,需要用到的隻不過是最基礎的html、css、js.而其它的例如phonegap需要針對每個平台單獨搭建原生開發環境,ionic Framework需要學習AngularJS學習成本都很高.

3.仔細閱讀開發文檔. APICloud關鍵的地方和内容都可以從

小白想自己開發一個安卓APP,要調用電腦軟件裡(ArcGIS)的數據,怎麼才能實現
  • A+