小程序也屬於App的一種,那麼它和咱們如今流行的原生App(IOS、Android)相比,有什麼區別和優點呢?小程序
首先,從技術上來說,目前App的主流開發方式有三種:Web App 、Native App 和 Hybrid App。好比:緩存
在微信」發現「裏面有一個」購物「入口,點進去打開的是京東的移動購物頁面,這個頁面實際上就是一個Web App。支付寶的衆多小服務也是Web App,這類App其實就是咱們常常在PC上瀏覽的網頁,只不過加入了響應式的設計讓它適合在移動端顯示和運行,所採用的技術依然是 JavaScript、CSS 和 HTML。相對於其餘兩種APP,Web App 具備開發簡單、高效,更新靈活、跨平臺、大量的網頁應用稍做調整便可放在移動端運行。但缺點與優勢並存,Web App 性能、體驗極差,沒法使用照相機、系統通知、本地緩存等原生特性微信
Native App 也稱原生 App 。這種 App 不是採用 JavaScript、CSS 及 HTML 開發,而是使用 Objective-C (IOS) 或者 Java (Android) 開發。微信、支付寶 等都屬於這類 App,是目前主流的開發方式。Native App 具備性能、體驗很是良好,組件支持完善、接口豐富等特色。但Native App 最大的缺點在於,不能跨平臺,有多少個平臺就要開發多少版本,如今主要有 IOS 和 Android 兩個主流平臺,還好 Windows Phone 已沒了蹤跡。模塊化
Hybrid App 也稱爲混合式 App 。Hybrid App 看上去像一個 Native App,但實質上 Native 技術在這裏只是做爲一個容器,將 Web App 包裹了起來,在容器內部實質運行的仍是網頁。Hybrid App 更像是 Web App 與 Native App 的混合體。與純粹的 Web App 相比,Hybrid App 會有一部分訪問原生組件(相機、加速器)的能力。事實上,目前主流的應用中,純粹的原生的 App 不多,絕大多數都屬於混合式 App 。好比,常見的京東、淘寶等電商類 App ,因爲商品及業務變化很是頻繁,須要常常調整,因此這類 App 的主要頁面都是採用 Web 技術來構建,只是用 Native 包裝了一下。Hybrid App 具備接近於 Native App 的體驗、開發效率高、跨平臺等特性。工具
那咱們如何界定,哪些 App 屬於「原生」,哪些 App 屬於「混合」呢?這個要看 Web 頁面在 App 中所佔的比例,若是絕大多數頁面都採用 Web 技術構建,那麼咱們稱爲混合式 App ;而若是隻有少數頁面採用 Web 技術,咱們稱爲原生應用。性能
那麼小程序屬於以上三種的那一種?嚴格意義上來講,它不屬於以上三種中的任何一種,在實現的技術上小程序同傳統的 Hybrid 仍是有很大的不一樣的。小程序採用 JavaScript 和 CSS 這類常見的 Web 技術開發,但它又不使用 HTML ,它同 Web 沒有直接的聯繫。小程序其實是將一系列本身定義的組件編譯成了對應平臺(IOS、Android、PC)的相應可運行組件,以提升運行性能。若是必定要將小程序歸併到以上三類 App 中,可能 Hybrid App 更合適:非原生,但使用到了 Web 技術(JavaScript 和 CSS)。開發工具
相比於 Native App,小程序具備 Hybrid App 的一些優點:spa
同時,小程序還具備一些它獨有的特色:設計
可是,時間沒有完美的事物,計算機世界裏也沒有完美的技術,你覺得的優點在另外一方面卻成了缺點:接口
不會。連 Hybrid App 都沒法撼動 Native App 的地位,又況且小程序自己只是 Hybrid App 的一個子集,運行在微信這個 Native App 之下呢?除了 Hybrid App 自己與 Native 技術的差距,微信對小程序還附加了諸多限制和自身定位也很是明確——作低頻和業務邏輯不復雜的應用。