關於HybridApp與國內外移動應用開發中間件對比的疑惑

2021-01-11 站長之家

首先,針對於文章的主要觀點,我這邊的考慮是:WebApp還屬初期,HybridApp只是在NativeApp與WebApp之間提供了多的一種選擇,而非取代或是替換。

展開來看可能會有如下的幾個問題:

基於網頁的WebApp短期內將遇到發展瓶頸。因為標準化問題和終端設備功能的支持程度,很難在短時間內找到確切的解決方案。

NativeApp、WebApp以及HybridApp均會是移動應用的不同選擇。「NativeAPP,就像桌面版的C/S架構,WebApp,就像桌面版的B/S架構,20年了,B/S也沒完全取代C/S。」HybridApp也就可理解為B/S和C/S混合架構,針對於具體的應用場景會有特定的優勢體現而已。

不同的選擇需做出取捨,魚與熊掌難以兼得。不同的應用形態優勢與劣勢同樣明顯,這取決於具體的應用需求;執行效率、設備功能支持或是跨平臺需求,各種價值有時會相互衝突。

HybridApp也無法兼具兩者優勢同時屏蔽劣勢,在不做取捨的情況下其特點不過是交集求和。比如,跨平臺需求與不同平臺Native View的協同。

簡單說來,不同應用形態同時具備了其優劣特點,無論是具體的應用實現,還是開發平臺或中間件工具都需做出選擇,而非一味迎合或避重就輕。

其次,針對於文中關於Rexsee的相關特點對比有較多偏差,在此簡單指正。

按原文中的定義,Rexsee也是一個HybridApp的移動應用中間件,只是在產品策略方面做出了取捨,比如跨平臺特性。為獲取更好的執行效率與UI交互,以及更全面的功能覆蓋程度,Rexsee僅支持Android。並且在較長時間內無意跨平臺。

目前開放了接近2000個擴展API,覆蓋95%左右Android原生功能(使用js的方式直接調用實現,在Rexsee社區可以查看詳細說明與全部實現源碼)

支持WebView與NativeView混合,利用JS實現Android原生UI布局與交互(Rexsee提供rexseeJavaview擴展,用於創建和管理原生界面元素,具體見附)

其它則是諸如使用Webkit內核,支持第三方任意開發框架等特性,不再反覆描述了。如下表格,就原文中的一些細項對比給出自己的判斷。單純只是Rexsee自身,僅用以對有誤的地方做出指正,無需過多對比。

如下是用Rexsee擴展javaview所實現的完全等同於原生界面的展現示例:

部分源碼:

rexseeJavaView.create('setupList','ListView','mode:view;background-color:#000000;vertical-spacing:1px;');//創建一個列表View

rexseeJavaView.create('enablecheckBox','CheckBox','..label:啟用來電;…');//創建一個可勾選的View

rexseeJavaView.create('whoDiv','FrameLayout',");//創建一個Frame布局。

rexseeJavaView.create('wD111','TextView','…label:來電人;…');//創建一個文本標籤。

rexseeJavaView.create('wD112','TextView','…label:'+c_who+';…');//創建一個文本標籤。

rexseeJavaView.create('wD113','TextView','…label:選擇;…');//創建一個文本標籤。

rexseeJavaView.setChilds('whoDiv','wD111|wD112|wD113′);//將文本標籤放入Frame布局中。

rexseeJavaView.create('timeDiv','FrameLayout',");

rexseeJavaView.create('tD111','TextView','…label:時間;…');

rexseeJavaView.create('tD112','TextView','…label:'+c_time+';…');

rexseeJavaView.create('tD113','TextView','…label:選擇;…');

rexseeJavaView.setChilds('timeDiv','tD111|tD112|tD113′);//將文本標籤放入Frame布局中

//—————————————————————————–

rexseeJavaView.create('ringtoneDiv','FrameLayout',");

rexseeJavaView.create('rtD111','TextView','…label:鈴聲;…');

rexseeJavaView.create('rtD112','TextView','…label:'+c_ringtone+';…');

rexseeJavaView.create('rtD113','TextView','…label:選擇;…');

rexseeJavaView.setChilds('ringtoneDiv','rtD111|rtD112|rtD113′);//將文本標籤放入Frame布局中

//——————————————————————————–

rexseeJavaView.create('upanddowncheckBox','CheckBox','…label:振動;…');

rexseeJavaView.setChilds('setupList','enablecheckBox|whoDiv|timeDiv|ringtoneDiv|upanddowncheckBox');//將啟用、聯繫人、時間、鈴聲選擇、震動選擇放入列表布局

rexseeJavaBar.add('setupList','bar-position:top;height:306px;border-width:0px;padding-bottom:1px;');//將列表布局放入頂部的Bar容器內。

rexseeJavaView.create('btlinearLayout','LinearLayout','orientation:x;width:fillparent;');//創建順序布局

rexseeJavaView.create('btstart','Button','label:啟動;width:'+c_winwidth/2+';event-touch:true;');//創建按鈕

rexseeJavaView.create('btexit','Button','label:退出;width:'+c_winwidth/2+';event-touch:true;');//創建按鈕

rexseeJavaView.setChilds('btlinearLayout','btstart|btexit');//將兩個按鈕放入到順序布局

rexseeJavaBar.add('btlinearLayout','bar-position:bottom;height:80px;border-width:0px;');//將順序布局放入到底部的Bar容器內。

關於更多原生UI類應用可在如下連結獲取應用:https://www.rexsee.com/CN/app/appList.php?category=multimedia

附:Rexsee所提供的原生UI擴展

詳細可下載Rexsee開發手冊,直接運行查看效果:https://vdisk.weibo.com/s/2wqWO/1329189032

或直接掃碼:

rexseeJavaView對象及事件,用於創建和管理原生界面布局元素,支持一下原生布局,(API8的全部布局)

布局類型(可以添加子對象):

AbsoluteLayout

Div(Rexsee擴展)

FrameLayout

Gallery

GridView

HorizontalScrollView

LinearLayout

ListView

RadioGroup

RelativeLayout

ScrollView

SlidingDrawer

TableLayout

TableRow

ThreeDGallery(Rexsee擴展)

ViewAnimator

ViewFlipper

ViewSwitcher

基本類型(不可添加子對象):

AnalogClock

Button

CheckBox

Chronometer

DatePicker

DigitalClock

EditText

ImageButton

ImageSwitcher

ImageView:支持多點觸摸的縮放。

LabelDiv(Rexsee擴展)

ProgressBar

ProgressDiv(Rexsee擴展)

RadioButton

RatingBar

SeekBar

Spinner

SurfaceView

TextSwitcher

TextView

TimePicker

ToggleButton

VideoView

WebView/Browser/BrowserDiv(Rexsee擴展)

ZoomControls

注意:特別提一下其中的SurfaceView類型,可以進行3D繪圖,類似於HTML5的Canvas,基於Android Camera 3D繪圖機制。

rexseeJavaDialog對象及事件:將JavaView元素顯示在對話框中。

rexseeJavaBar對象:將JavaView元素直接覆蓋在布局中。

rexseeDrawable對象:預載入圖片並進行簡單處理。

rexseeImageDialog對象及事件:顯示圖片用的對話框,支持多點觸摸的縮放。

rexseeButtonDialog對象及事件:顯示一組按鈕。

作者:@葉江水中氧

(Warlial 供雷鋒網專稿,轉載請註明!)

相關焦點

  • 你真的了解Hybrid APP嗎
    這種應用混合邏輯相對簡單。即在需要的時候,將WebView當成一個獨立的View(Activity)運行起來,在WebView內完成相關的展示操作。這種移動應用主體通常是Native App,Web技術只是起到補充作用。開發難度和Native App基本相當。
  • 真正的Hybrid APP沒你想的那麼簡單
    很多開發者在跨入移動應用開發領域都會選擇Hybrid App為切入點,因為它介於web-app、native-app這兩者之間,兼具「Native App良好用戶交互體驗的優勢」和「Web App跨平臺開發的優勢」。這樣的模式可以降低開發門檻,用較少的成本達到跨平臺開發移動應用的目的。
  • Native和Hybrid哪種開發移動APP更好
    正當大家興致勃勃地開始設計手機應用程式時,可能會遇到每個 Developers 和策略者都感到爭議的問題:「我應該利用原生語言(Native App),還是混合模式 (Hybrid App)來開發我的手機程序呢?」
  • iOS hybrid App 的實現原理及性能監測
    ,在移動領域的開發時間超過七年,前前後後涉獵過很多個平臺。一 iOS hybrid App 簡單介紹大家應該多少都知道,iOS 設備上有兩種入口,一是通過 App Strore 下載一個個的 App,另一個是用系統瀏覽器去訪問網頁。前者我們一般稱為原生應用,後者就是傳統意義上的網頁。兩者各有特點,開發一個原生應用,一般是使用 Apple 給我們提供的開發工具和 Cocoa 框架。
  • Native和Web過時了,企業級移動開發流行用Hybrid App
    但是Native App開發難度大、成本高、周期長等問題突出,特別是App不斷推陳出新,開發一個App的成本或許可以接受,但是維護一個Native App更新的成本則成了跨不過的懸崖。最終開發者和企業發現Hybrid App,這種既有跨平臺開發周期短、成本低的基因,又能發揮Native App體驗和性能的優勢,Hybrid App混合式移動應用開發逐漸成為企業移動開發的首選。
  • 探秘Hybrid APP開發利器--SuperWebView
    SuperWebview是APICloud推出的一項重量級API生態產品,以SDK方式提供,致力於提升和改善行動裝置Webview體驗差的整套解決方案。SuperWebview比基礎的Webview或Phonegap擁有更豐富的功能,支持用HTML5開發具有原生UI和UE體驗的界面、同時支持調用二維碼等系統功能,並且能很好的把藍牙、WiFi和智能硬體相連接。
  • 超級App+Web App將主宰未來的移動網際網路?
    過去這些年,HTML5 顛覆了 PC 網際網路的格局,微信朋友圈裡的一個神經病貓小遊戲,打開了人們對移動網際網路的各種幻想,優化了移動網際網路的體驗,接下來,移動網際網路將產生一個全新的入口,而由超級 App+HTML5 主導的 web app 將顛覆原生 App 移動互聯世界。
  • H5開發app用什麼框架
    H5開發app經常用到的框架有:jquery mobile框架,bootstrap框架,ionic框架,Mobile Angular UI框架以及Sencha Touch框架等等。今天給大家介紹一些常用的HTML5開發APP的框架,這幾款框架都是比較優秀的移動 Web 開發框架,能夠幫助開發者更加高效的開發移動Web應用。
  • 企業開發app都可以滿足哪些需求
    企業開發app有哪些好處?西安青雲在線小編告訴大家,企業開發app可以完成很多小程序做不到的需求。現在雖然說小程序盛行,但是還是有很多的企業開發app,有行業人員說過小程序是保留app用戶的應用,也就是不方便使用app或者沒有app的時候,優先考慮app。
  • WebApp與Native App再戰一輪?
    還有各種開發、打包web/hybrid應用的產品:Cordova, Crosswalk,nw.js,Electron。它們也許在各自領域有所成功,但整體的現狀和處境很難說web app對native app的世界造成了足夠威脅。但Web app也在不斷反思和演進,近來一系列技術革新與發展讓web app成為作業系統頭等公民的目標變得不同以往的清晰。
  • 聊聊Web App、Hybrid App與Native App的設計差異
    目前主流應用程式大體分為三類:Web App、Hybrid App、 Native App。一、Web App、Hybrid App、Native App 縱向對比首先,我們來看看什麼是 Web App、Hybrid App、 Native App。1.
  • TPshop移動商城APP:APP軟體開發的步驟
    二、編寫APP軟體語言:註冊應用程式平臺,然後開始編寫APP系統開發語言。三、設計需要開發的APP軟體:研究成功的APP應用程式然後設計你的應用程式,把你的idea以及創意設計都融入到你的APP開發中去,務必要先做好APP開發方案以及設計方案。
  • 直播系統源碼開發:關於安卓開發工具和obs直播推流
    行動應用程式開發是不斷前進和發展的,程式設計師們4.PhoneGap:PhoneGap是一種廣泛用於跨平臺行動應用程式開發的技術。5.Corona:Corona是一個跨平臺框架,適合為行動裝置和桌面系統創建遊戲和應用程式。
  • 電商APP開發三大設計要點分析,重慶app開發公司小編馬上告訴你!
    電商APP開發三大設計要點分析,重慶app開發公司小編馬上告訴你!  1.清晰的視覺:電商軟體開發出來是希望人們都能下單購物的,所以圖片一定要清晰才行,如果圖片太過晦暗,用戶只會有一種這都是什麼,放棄放棄的感覺。高質量且清晰的圖像更容易刺激人們下單,因此我們的圖片在上傳時一定要注意解析度等問題。
  • [遇見APP]Daily Routine:日程管理應用
    [遇見APP]推薦熱門好玩的app應用,當你遇見app除了馬上試用體驗,別忘了分享,歡迎投稿 ^_^通過該應用可以定製你日常生活或工作​​的每一個方面。細化到允許你組織每天/周的每一個細節,從一般的睡眠,吃飯,工作,到更具體的活動,提醒自己什麼時間該做什麼事情。一旦你創建你的例程,在日曆頁面可以方便的將它分配到一天或多天,對於那些需要在每周的工作或學習中創建重複任務的人們來說非常有用。跟以往的日程管理應用比起來,該應用的UI從配色到設計都獨具特色,真的是我見過最富創意的日程管理APP!
  • AppCan:Hybrid App技術已經成熟
    正益無線是國內知名的企業級移動應用開發平臺及移動應用管理平臺提供商,同時也是Hybrid App技術的推動者,它推出了AppCan SDK移動應用開發平臺,包括免費提供給開發者的社區版,以及完整的移動信息化解決方案的企業版。      為什麼說Hybrid App技術已經成熟?
  • 數據可視化在移動端的應用
    隨著大數據行業的快速發展,數據可視化設計在移動端的應用越來越多。今天我們就數據可視化在移動端的使用場景、特點、注意事項以及各個使用場景進行一次簡單的分享。應用場景數據可視化在移動端的主要體現是「數據圖表」,我們最常用的數據設計組件就是:柱狀圖、折線圖、環形圖等,它們簡單易懂,容易被用戶接受。
  • 2020年中國移動應用趨勢洞察白皮書—開發與營銷篇
    移動應用開發及服務平臺趨勢 移動應用開發趨勢 雲架構開發成為應用開發提質增效的重要手段 雲架構開發在更方便地管理數據、降低託管成本、更好地安排存儲和負載容量以及提升安全性方面均有優勢
  • 移動應用發展趨勢生變,AppGallery Connect一站式服務解決應用全...
    整體來看,移動應用熱門場景都存在著高度影響市場發展與用戶體驗的痛點,主要體現在創新乏力、壟斷集中、盈利模式不清晰、監管難度加大等方面。隨著移動應用產業進入下一個發展階段,這些痛點需要應用開發者與分發平臺共同努力才能得到根本解決,要求應用開發生態構建全新的技術框架與協作模式。
  • 2017年中國移動網際網路年度報告 市場滲透率78%是去年老面孔
    款應用,新晉app約佔top1000總榜的兩成,接近八成app在去年就進入了top1000榜單,整體app市場的格局穩定,但對於新晉app也有機會。12月移動網民人均下載4.13款app,卸載3.42款app。