開發App 用Native 語言還是Hybrid 好?Coder 你怎麼看? - 報橘

文章推薦指數: 80 %
投票人數:10人

Native App:原生語言程式是為了特定的操作系統而編碼,用的也是特定操作系統的開發套件(Platform SDK), 如Apple iOS。

因此它的性能和工具一向 ... Share 正當大家興致勃勃地開始設計手機應用程式時,可能會遇到每個Developers和策略者都感到爭議的問題:「我應該利用原生語言(NativeApp),還是混合模式(HybridApp)來開發我的手機程式呢?」 NativeVSHybrid NativeApp:原生語言程式是為了特定的操作系統而編碼,用的也是特定操作系統的開發套件(PlatformSDK),如AppleiOS。

因此它的性能和工具一向比HybridApp優越。

HybridApp:混合語言程式的部份代碼會以Web技術編寫,如HTML5,CSS和JavaScript。

這些程式都是被包裹在原生容器(NativeContainer)和透過手機上的瀏覽器引擎來呈現HTML和執行JavaScript。

HybridApp的優點是一個編碼程式能夠跨越不同的作業平台,不需要為每個操作系統編寫特定的編碼。

該選哪種語言好? Developers也因此常徘徊於該選用擁有優越性能和工具的NativeApp,還是單碼跨平台的HybridApp的頭痛抉擇裏。

究竟有沒有明確的答案顯示哪一個開發語言程式才是最強最佳的代表呢? 其實,隨著手機操作系統不斷的更新,如近期的新版本的iOS和Andriod,都令手機的Javascript運行速度改善了不少。

這種改進令到HybridApp的性能得到相當的提升,而它們的工具設備也日漸成熟了。

現在已經有許多成熟又吸引的工具方案,如原生用戶介面(NativeUI)和裝置應用程式介面(DeviceAPI),甚至有模擬器(Simulators)、開發套件管理(SDKManagement)、裝置調試(on-devicedebugging)等等。

看來,人們對HybridApp的開發已認真起來了。

當然,HybridApp的方案並不是完美萬能的,NativeApp還有些地方是不能被取代,但現在Hybrid開發已經證明了它已經不遜於Native開發了。

要建造優良的HyrbridApp是需要精心的策劃和考慮到裝置上的網絡平台獨特功能。

在你準備向下個HybridApp的大冒險前進時,有幾點是值得留意的: 1.關鍵特性,如App的性能 2.把Native當做指引,從中學習 3.選擇適當的開發工具,縮短與NativeApp的差距 當然,你有選擇自由 Hybrid和Native的爭論,就好像比較着蘋果和橙子哪樣較好,都是沒有贏家的。

就拿開發AppleiOSNativeApp來打過比例,你毋須思索都會自動想到用IDE(XCode),一系列的程式庫和Object-C編碼程式設計工具(CocoaTouch,CoreGraphics,CoreData等)的開發工具來編寫iOSNativeApp。

如果我們把這些豐富的資源去和Hybrid用的HTML,JavaScript和CSS來作比較,這根本就是一件不公道的事!你還沒有把Hybrid的跨平台這種優點包括在內呢! Hybrid除了能夠單碼跨平台外,還能夠讓你自由地選擇你喜歡的應用程式組合,如整合開發環境(IDEs),程式框架(Frameworks),程式工具(tools)和應用程式服務(Services)。

比起只支援單一平台NativeApp,HybridApp無疑是更自由和更有彈性的首選。

性能是其中的一個設計重點 程式的性能對所有的Apps來說是非常重要的一環,可是Developers常常把這部份留到最後。

就是先把整個應用程式做好再慢慢調整它的性能。

對一般的桌上電腦還可以接受,可是在資源和電能都有限的行動裝置上調整性能就會非常困難了。

如何解決這問題呢?答案就是將性能引入初步設計策劃裏,而不是留到最後才開始慢慢調整。

例如你在編碼前已預先計劃了你的App將會以60fps(Framespersecond)運行,那麼你大概需要17millisecondsperframe去執行程式碼和更新用戶界面(UI)。

這樣的時間根本不能提供流暢的運行,還很可能會令你的幀(Frame)出現問題呢。

為求HybridApp有更好的穩定性,建議採用30或40fps比較自然的運行速度。

另一個影響Apps性能的因素就是用戶界面設計。

影子效果,漸變色層,仿真的修飾設計是可以提高用戶界面仿真度,但也會同時消耗了很多裝置的資源啊。

所以在設計用戶界面前先問問自己,這些資源消耗量大的仿真設計是必要的嗎?或是可以用消耗量較少的平面設計呢? 從Native中學習 想拉近和你對手的距離,就要向他學習和熟悉他的招數。

設計HybridApps也應如此的向NativeApps學習,嘗試熟悉NativeSDK的環境反應和模擬它的設定。

就拿AppleiPhone的滾動屏幕做例子,當你用手指頭在屏幕上下滾動,屏幕上的東西也隨著手指滾動的方向快速地移動。

這樣的高性能和反應速度是怎樣做到的呢?就是用iOS的UITableView,它能夠重複地使用被移出屏幕的單元格(Tablecell),載入新的資料,然後再次在屏幕的另一邊出現。

這種不斷重複利用單元格的技術叫做『用戶界面虛擬化』。

這種技術給使用者在一個在龐大的資料庫中滾動的假象,其實真正用到資料單元格是很少的。

因為用到的單元格不多,所以這種技術能令App的運行速度更快速和更節省電力。

你能從上面學到什麼關鍵能用在Hybrid上嗎?很多呢!當中就是UITableView的單元格滾動技術。

把UITableView變成HTMLDOM的元素,用這方法去仿效UITableView來用在HybridApp上,那麼Developers就能以類似的方式來重複使用或把DOM虛擬化來改進HybridApp的滾動體驗了。

Hybrid的開發是非常吸引的,因為能夠採用你熟悉的網頁技術來建造你的App。

可是這同時也是一個陷阱呢!記住不要把HybridApp當成一個迷你和獨立的網頁來設計啊。

建造理想HybridApp的最佳守則就是細心研究和觀察Native平台和SDK的設計,學以致用再HybridApps的開發上。

你需要適當的Hybrid開發工具 雖然開發HybridApps的程式設計工具有很多,但一個優良的工具是會把網頁平台和NativeSDK之間的的功能差距拉近。

這樣子你就不需要擔心性能的問題了,因為這類的工具會在建設HybridApp時把程式的性能元素包括在內。

所以利用優良的工具能夠得到與Native模式相同的好處。

當然,你也可以自由地選擇適合你的開發工具並成功地建造你的HybridApp,但當跨平台式和App的出品時間為你的首要條件時,你就應該選擇更優良開發工具來建造你的Apps。

一個好的HybridApp是不會在無意間產生的。

就如同NativeApp一樣,建造優良的HybridApps是需要把設計焦點放在性能和手機獨特的設計模式上。

隨著手機網頁技術在近期不斷的提升,現已有很多很棒的跨平台開發工具。

只要有稍微的性能設計和有合適的工具,要打造一個華麗的跨平台式HybridApp已是一件輕而易舉的事了。

如果你還在做NativeApp的開發,何不試試跳槽到Hybrid來個全新的開發體驗呢? ( 資料來源:VentureBeat ; 圖片來源:SiemensPLMSoftware,Janitors,Johanl、jenniferconley,CCLicensed) Share 馬上訂閱CONNECT▼ NowReading 開發App用Native語言還是Hybrid好?Coder你怎麼看? 3minread 最新文章 2022科技大勢,訂閱先機 雲端運算人工智慧 雲端服務 數位轉型應用 資訊安全 資訊科技 新經濟新零售 數位金融 虛擬貨幣 數位行銷 通訊科技5G/6G 太空 低軌道衛星 電信通訊 新科技 供應鏈智慧製造 半導體 IoT 未來生活電動車 能源創新 智慧城市 觀看影音新工作進行式 以人為本,醫療新服務 線上教育,素養學習篇 線上教育,數位落差篇 0% ✕ Close 徵才 最新文章 2022科技大勢,訂閱先機 雲端運算 人工智慧 雲端服務 數位轉型應用 資訊安全 資訊科技 新經濟 新零售 數位金融 虛擬貨幣 數位行銷 通訊科技 5G/6G 太空 低軌道衛星 電信通訊 新科技 供應鏈 智慧製造 半導體 IoT 未來生活 電動車 能源創新 智慧城市 公共服務 數位醫療 線上學習 數位政府與未來治理 網路民主與公民 投資創新 新投資 新人才 創業故事 觀看影音 科技橘子 品牌簡介 ABOUTUS 聯絡我們 ✕ 徵才 最新文章 2022科技大勢,訂閱先機 雲端運算 人工智慧 雲端服務 數位轉型應用 資訊安全 資訊科技 新經濟 新零售 數位金融 虛擬貨幣 數位行銷 通訊科技 5G/6G 太空 低軌道衛星 電信通訊 新科技 供應鏈 智慧製造 半導體 IoT 未來生活 電動車 能源創新 智慧城市 公共服務 數位醫療 線上學習 數位政府與未來治理 網路民主與公民 投資創新 新投資 新人才 創業故事 觀看影音 新工作進行式 以人為本,醫療新服務 線上教育,素養學習篇 線上教育,數位落差篇 品牌簡介 ABOUTUS 聯絡我們 LatestPosts 【開發者看過來】NianticAR工具開放使用!自己打造元宇宙的機會來啦 拆解黃仁勳眼中的元宇宙,NVIDIA如何用超炫技術帶動下個網路革命? NFT、加密貨幣將成Discord未來?使用者哀號成一片:先不要 【誰是柴犬幣創辦人?】推出神幣一度漲幅達777%,只留一句我是Nobody 電動車變身「分散式小電廠」,V2G技術如何改善缺電問題? 為提供您更好的網站服務,本網站會使用Cookies及其他相關技術優化用戶體驗,繼續瀏覽本網站即表示您同意上述聲明了解隱私權政策同意並關閉視窗Manageconsent Close PrivacyOverview Thiswebsiteusescookiestoimproveyourexperiencewhileyounavigatethroughthewebsite.Outofthese,thecookiesthatarecategorizedasnecessaryarestoredonyourbrowserastheyareessentialfortheworkingofbasicfunctionalitiesofthewebsite.Wealsousethird-partycookiesthathelpusanalyzeandunderstandhowyouusethiswebsite.Thesecookieswillbestoredinyourbrowseronlywithyourconsent.Youalsohavetheoptiontoopt-outofthesecookies.Butoptingoutofsomeofthesecookiesmayaffectyourbrowsingexperience. Necessary Necessary AlwaysEnabled Necessarycookiesareabsolutelyessentialforthewebsitetofunctionproperly.Thesecookiesensurebasicfunctionalitiesandsecurityfeaturesofthewebsite,anonymously. CookieDurationDescriptioncookielawinfo-checkbox-analytics11monthsThiscookieissetbyGDPRCookieConsentplugin.Thecookieisusedtostoretheuserconsentforthecookiesinthecategory"Analytics".cookielawinfo-checkbox-functional11monthsThecookieissetbyGDPRcookieconsenttorecordtheuserconsentforthecookiesinthecategory"Functional".cookielawinfo-checkbox-necessary11monthsThiscookieissetbyGDPRCookieConsentplugin.Thecookiesisusedtostoretheuserconsentforthecookiesinthecategory"Necessary".cookielawinfo-checkbox-others11monthsThiscookieissetbyGDPRCookieConsentplugin.Thecookieisusedtostoretheuserconsentforthecookiesinthecategory"Other.cookielawinfo-checkbox-performance11monthsThiscookieissetbyGDPRCookieConsentplugin.Thecookieisusedtostoretheuserconsentforthecookiesinthecategory"Performance".viewed_cookie_policy11monthsThecookieissetbytheGDPRCookieConsentpluginandisusedtostorewhetherornotuserhasconsentedtotheuseofcookies.Itdoesnotstoreanypersonaldata. Functional Functional Functionalcookieshelptoperformcertainfunctionalitieslikesharingthecontentofthewebsiteonsocialmediaplatforms,collectfeedbacks,andotherthird-partyfeatures. Performance Performance Performancecookiesareusedtounderstandandanalyzethekeyperformanceindexesofthewebsitewhichhelpsindeliveringabetteruserexperienceforthevisitors. Analytics Analytics Analyticalcookiesareusedtounderstandhowvisitorsinteractwiththewebsite.Thesecookieshelpprovideinformationonmetricsthenumberofvisitors,bouncerate,trafficsource,etc. Advertisement Advertisement Advertisementcookiesareusedtoprovidevisitorswithrelevantadsandmarketingcampaigns.Thesecookiestrackvisitorsacrosswebsitesandcollectinformationtoprovidecustomizedads. Others Others Otheruncategorizedcookiesarethosethatarebeinganalyzedandhavenotbeenclassifiedintoacategoryasyet. SAVE&ACCEPT



請為這篇文章評分?