> For the complete documentation index, see [llms.txt](https://docs.f5ezcode.in/cs-basic/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.f5ezcode.in/cs-basic/di-shi-yi-zhang-cheng-shi-ji-fang-yan-wei/11.4-hybrid-app.md).

# 11.4 來認識App吧！

&#x20;        講到App，你第一個想到的一定是從Google Play或是從App Store下載的應用程式，沒錯！App就是應用程式（application）的縮寫，廣義上來說包含電腦上的各種軟體都可以說是App，但由於電腦以外的行動裝置普及，現今提到的App多半是指行動裝置（手機、平板等）應用程式（Mobile App）。

### App的分類

* **原生型：Native App**，目前**最常見**的應用程式，就像是在電腦上安裝使用的軟體一樣（ Word、Excel 等），原生App是專為特定作業系統（手機目前以 iOS、Android為主）所開發的應用程式，換句話說它**無法跨平台**操作（比如同樣的Facebook App，Android版本無法在 iOS上使用），必須針對不同的作業系統開發相應的App，因此開發與維護都比較麻煩。可以最直接、高效地發揮硬體效能（包含手機的拍照、錄音、定位等功能），有的App不必連上網路也能使用。
* **網頁型：(Mobile) Web App**，與電腦上的網頁並沒有太大的區別，只不過到了行動裝置上多了**響應式設計**（RWD，在第11.3章有相關介紹）。由於是透過**瀏覽器開啟應用程式**，因此具備**跨平台操作**的特性，也不需要在意更新問題，但因為要透過瀏覽器連上網路才能使用，運行速度與整體效能比較受限。

![](https://3362868160-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-L_r09305cCOiVsKX4GC%2F-LdcWmnlMxlUcSzyBrzK%2F-LdcX4OfuHkmcadkQDHO%2F11.4.1.png?alt=media\&token=42e17e82-806a-4c7f-a8d9-ed5f47b8bd65)

&#x20;       原生型（左）與網頁型（右）Facebook App畫面比較（Android版本)，若撇除使用體驗與運行速度來看，兩者最大的差異在於原生App不依賴瀏覽器運作，所以最上面不會出現網址列。

* **混合型**：Hybrid App，前兩者的**綜合發展體**，降低了原生App的開發成本，利用Web App的跨平台開發特性也方便維護，運行流暢度與成本則介於Native App和Web App之間。

#### 三者的比較

![](https://3362868160-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-L_r09305cCOiVsKX4GC%2F-LdcWmnlMxlUcSzyBrzK%2F-LdcXcD1TbhLW4dVtj6O%2F11.4.2.png?alt=media\&token=55173a82-7a0c-4ced-8e63-976ec4188076)

{% code title="補充：開發原生App的特定語言：" %}

```
Android版本使用Java，iOS版本則使用Objective-C或者Swift。
在這兩大作業系統為主流的手機世界中，一款App多半都會有這兩種版本，
分別由熟悉不同語言的工程師開發與維護，因此才會說開發原生App的成本比較高，也無法跨平台使用。
```

{% endcode %}

{% code title="補充：HTML5技術" %}

```
開發網頁型或混合型App有時會說使用HTML5技術，其實是廣義稱HTML、CSS以及JavaScript
三者的技術組合。
```

{% endcode %}

### 小結

&#x20;       混合型App的出現主要是為了結合原生App與網頁App的優點，可以用HTML5技術方便開發，又不用依賴瀏覽器使用。開發者能以較低的成本進行開發，又能透過審核上架至App商店，觀察使用者下載情形與偏好，可以說是同時也具備方便開發與商業考量的意義。\
\
&#x20;     其實不單是App，越來越多技術都希望有整合多方優點的發展，達到以最少的資源完成最多事的最高效益，畢竟科技最終的目的還是使生活更便利，不管是對使用者還是開發者皆然。\
\
&#x20;延伸閱讀：[開發 App 用 Native 語言還是 Hybrid 好？Coder 你怎麼看？](https://buzzorange.com/techorange/2013/11/28/native-app-or-hybrid/)<br>
