查看完整版本: html5跟原生app開發比較?
頁: [1]

eva19452002 發表於 2017-2-4 02:15 PM

html5跟原生app開發比較?



小弟不才,想要研究手機app開發,目前大概知道手機app開發約略可分為

html5和原生app(object-c,java),目前是比較傾向於用html5開發,因為

跨平台,但是不知道用html5開發,對於使用者體驗來說,會不會速度很慢?

對於開發者來說,會不會開發很困難?比如說有沒有方便好用又免費的IDE工

具和容易偵錯的debug工具,謝謝大家。
<div></div>

CoNsTaRwU 發表於 2017-2-4 05:35 PM

本帖最後由 CoNsTaRwU 於 2017-2-4 05:40 PM 編輯

其實不是因為跨平臺,只是因為比較方便(簡單)而已?{:4:}

用 html 開發就像是去餐廳吃飯
優點是你只要負責點菜就好了,不用學煮飯
缺點是你只能點菜單上有的東西,而且你也不知道廚師是怎麼料理的

用原生的方式開發就像是自己煮來吃
優點是你可以自己決定食譜,自己料理
缺點是門檻較高
就看你要怎麼投資啦


...<div class='locked'><em>瀏覽完整內容,請先 <a href='member.php?mod=register'>註冊</a> 或 <a href='javascript:;' onclick="lsSubmit()">登入會員</a></em></div>

eva19452002 發表於 2017-2-5 12:13 AM

CoNsTaRwU 發表於 2017-2-4 05:35 PM static/image/common/back.gif
其實不是因為跨平臺,只是因為比較方便(簡單)而已?

用 html 開發就像是去餐廳吃飯


謝謝,我再評估看看。

sheauren 發表於 2017-2-5 07:07 AM

如果原本就會web設計
html5開發會比較快上手
不過相對就是app底層功能的使用上會比較不方便一點
有些開發工具會包裝讓你可以使用
但是如果沒有包到的 就還是需要你自己去使用原生的語法開發

我是覺得要看你想開發的app是什麼用途來決定是否能夠用html5就滿足
用原生的嵌一個webpart放網頁說不定就可以滿足的話,
說不定連開發工具都可以用原生的去測試就好了

eva19452002 發表於 2017-2-5 08:45 AM

sheauren 發表於 2017-2-5 07:07 AM static/image/common/back.gif
如果原本就會web設計
html5開發會比較快上手
不過相對就是app底層功能的使用上會比較不方便一點


"但是如果沒有包到的 就還是需要你自己去使用原生的語法開發"

請問上面那段話是指html5可以跟原生語法結合開發,還是只能兩者擇一?謝謝。...<div class='locked'><em>瀏覽完整內容,請先 <a href='member.php?mod=register'>註冊</a> 或 <a href='javascript:;' onclick="lsSubmit()">登入會員</a></em></div><br><br><br><br><br><div></div>

sheauren 發表於 2017-2-5 07:37 PM

eva19452002 發表於 2017-2-5 08:45 AM static/image/common/back.gif
"但是如果沒有包到的 就還是需要你自己去使用原生的語法開發"

請問上面那段話是指html5可以跟原生語法結 ...

這樣想好了
純粹html5應該只能寫網頁,包成app還是網頁
如果要用到一些app才有的功能(如:推播、取得網路狀態),這部分是app的api有提供的功能
如果htm5的工具有包好現成的,那使用上就很簡單,如果沒有包好現成的。
那就要看該工具怎麼定義直接呼叫原生API的方法,
你也要稍微了解原生API怎麼寫,才有辦法滿足該功能的開發
...<div class='locked'><em>瀏覽完整內容,請先 <a href='member.php?mod=register'>註冊</a> 或 <a href='javascript:;' onclick="lsSubmit()">登入會員</a></em></div>

eva19452002 發表於 2017-2-5 07:42 PM

sheauren 發表於 2017-2-5 07:37 PM static/image/common/back.gif
這樣想好了
純粹html5應該只能寫網頁,包成app還是網頁
如果要用到一些app才有的功能(如:推播、取得網路 ...

我大概了解了,感謝回答。

ddttdtxb 發表於 2017-2-5 08:08 PM

就個人曾經各接觸過一點點(不是每種都有實作經驗)的感覺來分析…

不管是以 web base 的 HTML 5 技術,或是以原生程式開發。
都各有各的優缺點,在發展上 HTML 5 相對變快,原生程式相對收斂的狀態下。
其實「HTML 5 技術比較簡單」這種說法,我覺得越來越不成立。
這說法有一部分是因為寫原生程式的人,看不起網頁技術,覺得上不了台面的關係。

如果本身就已經有 HTML 5 或是 Java 經驗的人,
選擇使用對熟悉的語法開發,我覺得會比較理想。

如果說要開發的專案已經設計完成,需要的功能、流程都已經明確的狀態下。
再去評估兩種作法是否能夠支援的,若都可以,那麼還是選擇自已比較熟悉的那一種。

如果是由別人開發,那麼就看看手邊的人會哪些技術囉~
其實一些比較基礎的功能,兩者都應該可以作到。
使用 app 的人,在意的是使用上的順暢性,而非背後的技術。

那種能寫一支程式,能夠一直放著不改存續 5,6 年以上的例子太少了。
不管是走哪一種技術,都會面臨到幾年後可能要重新開發過的狀況。
因此我覺得,不用太過度在意現在採用的技術。
真正重要的,是商業邏輯能否被保留下來,以及是不是提供了好的操作體驗。

除了 HTML 5 以及原生程式以外,還有一種叫 react native 的東東…
讓你用 javascript 來撰寫程式,再轉譯成原生程式。
又是另一種實現建置 app 的可能方案…...<div class='locked'><em>瀏覽完整內容,請先 <a href='member.php?mod=register'>註冊</a> 或 <a href='javascript:;' onclick="lsSubmit()">登入會員</a></em></div>

eva19452002 發表於 2017-2-6 04:19 AM

ddttdtxb 發表於 2017-2-5 08:08 PM static/image/common/back.gif
就個人曾經各接觸過一點點(不是每種都有實作經驗)的感覺來分析…

不管是以 web base 的 HTML 5 技術,或 ...

感謝大大精闢的解說,兩種我再研究評估看看了 :D

行過沒碰到 發表於 2017-3-11 10:16 AM

HTML5是包裝成app的網頁是沒有錯,但目前不少框架已經可以讓JS存取手機的原生功能(e.g. GPS/相機/背景作業等等,甚至目前已經有不少知名的app已經是採用html5去編寫(e.g. 臉書)

當然,html5效能一定沒原生的好,比如說你要寫一個有3D模組的app, 那用html5可能是會卡卡的<br><br><br><br><br><div></div>

chevylin0802 發表於 2017-3-15 11:51 AM

這是很大的錯解

HTML一直都不是程式
它只是一種XML格式的簡化版本
而且一直都是

只是因為為了網頁呈現的發展而使得HTML擴充了許多具有指向特別功能的標籤
即使是HTML5也沒有違背原本XML規格裏所設定的遊戲規則
其中所謂的特別功能的標籤
就包括內嵌物件, 比如<embed>或是微軟的<object>
除此之外也包括<javascript>以及<css>
CSS與HTML的語法就跟許多人所熟知的Java的Resource檔相似
是的
它們主要的用途就是在於版面設計以及版面與操作之間的互動功能等
也因此HTML與CSS並不被列為程式設計類
但javascript則屬於程式設計

手機程式的設計一般都由操作系統來決定
以Android而言就是採用Java
以iOS而言則是早期的objectiv-c以及近期的Swift
至於微軟的Windows Phone則是以C#為主
也因此Apache組織也就開發出一種可以跨各種平台的網頁式應用程式專案輔助設計環境
所謂的Cordorva
除了這套之外還有另一個開源專案也是以網頁式應用程式的方式開發的專案輔助環境
則被稱之為PhoneGap
目前可以直接跨Android, iOS以及微軟的應用程式開發環境就是這兩套
而事實上它並不是叫做HTML5
因為真正要使用到手機各種軟硬體資源的部份仍然是屬於javascript的開發範疇
並且還需要有相對應的內籤程式庫
這些內籤程式庫通常都需要依靠原生碼進行編譯
原生碼可能是Android的C, C++, Java或者是iOS的Objective-C
不論是Cordova或PhoneGap都可以透過命令列的方式
來打包你設計好的程式
如果是Android, 仍然需要用到Java Compiler幫你打包成APK檔
如果是iOS, 也同樣需要經過編譯以及打包成相對應的app檔

至於所謂的跨平台這事情來講
沒有辦法百分之一百的保證一定可以完全相容
更何況微軟的瀏覽器物件一向都有它一定的單獨性
幸好的是Android以及iOS的瀏覽器核心所使用的是比較相通的
即使如此
使用到手機的硬體的部份時仍然要考慮到各家手機廠商所提出的規格是否支持

採取網頁開發的缺點當然是它的運行速度會相對緩慢許多
但是至少不需要考慮會產生跳出錯誤的視窗並直接把App停止
除非程式裏面有觸及到原生程式庫的部份






...<div class='locked'><em>瀏覽完整內容,請先 <a href='member.php?mod=register'>註冊</a> 或 <a href='javascript:;' onclick="lsSubmit()">登入會員</a></em></div>

行過沒碰到 發表於 2017-3-28 09:03 PM

忘記了說一個比較大的好處, 基本上全部可以做到app內更新的手機應用程式都是用html5編寫的. 因為原生app不可能做的到, 當然啦要做到html5 app 內更新還是需要少量原生程式碼

recycle012 發表於 2017-4-19 02:47 PM

HTML5來寫app可以跨平台的確滿吸引人的我最近也在朝這個方向發展
但是因為是透過瀏覽器來跑所以效率依定比較差
而且很有可能無法存取到一些感應器的資料
不過google好像有打算在android裡面整合這個功能所以可以期待一下

play4140 發表於 2017-10-19 04:04 PM

如果是單純的 webview + html5 的組合效能非常差,真心不建議用 HTML5 寫 app,加上某些功能還是會用到原生程式,所以不如學一些跨平台轉譯的方案。

如微軟的 Xamarin 或 Unity (通語言使用 javascript 或 C#,這兩種語言都能通),還有其他方式請 google。

2010 之前就很多人再推 HTML5 來開發 App,到現在仍然成效不佳,都需要用混合或轉譯的方式。

2012年,Facebook放棄了HTML5的新聞充斥了全世界的IT媒體,HTML5瞬間被打入冷宮。

Facebook為何放棄HTML5?核心是當時基於HTML5真的做不出好的行動App。對比Twritter等競爭對手的原生App,Facebook的HTML5版本實在無法讓用戶滿意。

2025年後手機普遍效能很強的時後再說吧。...<div class='locked'><em>瀏覽完整內容,請先 <a href='member.php?mod=register'>註冊</a> 或 <a href='javascript:;' onclick="lsSubmit()">登入會員</a></em></div>

kyo22 發表於 2018-11-27 11:38 PM

會有點不相容吧 例如一些原生的功能就沒法用(eg gps) 還有一些元素 例如ios的picker也不能很好的運用<br><br><br><br><br><div></div>
頁: [1]