流動應用程式

**流動應用程式**，通稱 **app**（）或者 **apps**（），係泛指設計嚟預咗專係畀流動裝置（例如智能手機或者平板電腦噉）行嘅應用程式。呢啲應用程式响功能上好多樣化－由遊戲以至畫圖等嘅多種功能，app 都有可能提供得到。

一般認為，app 最大嘅優點就係佢哋夠嗮方便：app 本質上就係設計到响細細部嘅流動裝置嗰度用嘅，所以用家只要攞住部手機又上到網，就無論何時何地都可以用 app 提供嘅功能；除此之外，app 仲有可能提供一啲傳統檯上電腦提供唔到嘅功能－例子可以睇吓 Pokémon GO 呢隻著名 AR 遊戲，運用咗玩家嘅位置呢樣資訊嚟娛樂玩家。

到咗 2010 年代，app 經已成為咗一盤大生意，唔同流動裝置作業系統都會唔同（譬如 Android、iOS 呀噉），所以同一隻 app，啲軟件工程師會同佢開發畀唔同裝置用嘅版本。呢啲咁多唔同嘅 app，可以由專屬嘅網上舖頭嗰度下載落嚟用。

## 基礎

流動裝置泛指任何設計到細細部嘅電腦，細部到可以畀正常人用手拎住嚟用，仲可以隨身攜帶，包括智能手機同平板電腦呀噉都係流動裝置，而 app 定義上正正就係指緊設計嚟預咗畀流動裝置用嘅應用程式。

App 可以按「啲數據儲咗喺邊」嚟分做三大類：
***本機 app**：一隻本機 app 會 download 同裝落部機度行；呢啲噉嘅 app 設計嚟專係為咗喺某隻流動裝置作業系統上面行，例如一隻專寫嚟預咗畀 Android 行嘅 app 响蘋果出嘅流動裝置上面就會行唔到；呢種 app 一個大好處係往往會行得明顯快啲，因為呢啲 app 會直接以隻平台用嘅程式語言同埋 API 嚟做編譯，唔使經中介軟件轉換做隻平台嘅語言。
***網絡 app**：一隻網絡 app 就唔同，會透過部機嘅網頁瀏覽器嚟行；一隻網絡 app 嘅數據會畀開發方儲喺佢哋啲伺服器度，會用到 HTML 或者 JavaScript 等嘅網頁技術嚟整，將用家嘅數據儲喺雲端嗰度；網絡 app 行起上嚟往往冇本機 app 咁快，而且因為佢哋定義上要連接住服務提供方嘅伺服器先用到，所以冇得話「唔上網都可以用」，不過佢哋又有個好處，就係佢哋製作嗰時唔使吓吓都焗住要就用家部機嘅作業系統，即係唔使同每個作業系統都整個版本，所以開發嘅成本（無論時間定資金都好）會低啲。
*亦都有啲 app 會嘗試結合呢兩種技術（hybrid），同時達致兩方嘅好處。

## 開發

跟住落嚟嘅內容，假設讀者經已識嗮程式編寫同軟件工程嗰啲基本概念。

開發流動應用程式嘅過程可以幾撈絞，主要有以下呢啲步驟：
***度橋**：任何設計同開發產品嘅過程，開頭嗰陣都係要界定好件產品「要達到咩目的」－開發者要同啲客傾掂佢，講好嗮隻 app 要達致啲乜嘢功能，亦要決定隻 app 要係靠本機定網頁嚟行。
*設計：開發者跟住就要郁手設計隻 app，包括諗吓隻 app 要有邊啲組成部份，每個組成部份要有點樣嘅 input-output 關係；除此之外，開發者仲有必要度吓隻 app 望落要係點嘅樣，亦要預想吓用家體驗會係點－「預想用家體驗」包括諗吓用家會想用隻 app 達成咩目的、每個目的會要求用家撳邊啲掣、同埋每個目的要經過嗰啲步驟係咪會令用家愉快（或者至少唔會搞到用家唔舒服）... 呀噉。可以睇埋 CG 方面嘅嘢。
***郁手**：即係實際噉郁手編寫隻 app，而呢個工序會用到好多唔同嘅整合開發環境（IDE），例如喺 2020 年代，Android Studio 就係一隻成日畀人攞嚟開發 Android app 嘅 IDE，包含咗多種功能，包括畀用家編輯隻 app 嘅用家介面，仲包括埋模擬器，開發者有得喺自己部 PC 度模擬「隻 app 喺 Android 上面行嗰陣會係點嘅樣」。
***整合**：整合由第三方提供嘅服務；有唔少 app 都要配合第三方嘅服務嚟用，開發者要試吓將隻 app 結合落去呢啲服務度，睇吓行起上嚟係點。
*測試同程式除錯 
***出街**：將隻 app 放出街畀人用；開發者跟住仲可以收集啲用家用完之後嘅意見，睇吓隻 app 有冇嘢需要改良。

## 手機遊戲

手機遊戲顧名思義係指整嚟預咗喺手機（或者平板電腦）上面玩嘅視像遊戲，定義上就係 app 嘅一種。呢種遊戲喺廿一世紀初開始興起，到咗 2020 年已經有龐大嘅市場，營業額以十億美金計。

例如喺 2010 年代尾風靡全球嘅 AR 遊戲 Pokémon GO 就係一隻好出名嘅手機遊戲：呢隻遊戲唔係直接將《寵物小精靈》擺落去手機度咁簡單，而係用咗手機先至做到嘅功能－畀玩家攞嚟攞去－嚟配合全球定位系統，達致畀用家喺現實世界嘅唔同位置度「捉寵物小精靈」；呢隻遊戲嘅創新取得咗重大嘅成功，仲吸引到研究者做研究，睇吓（例如）玩 Pokémon GO 可以點樣用嚟鼓勵啲人多啲郁動。

有唔少電子遊戲設計領域相關嘅工作者指，手機遊戲呢種新嘅遊戲類型，為遊戲設計帶嚟咗新嘅啟示，例如手機遊戲嘅一大特徵係唔似得電腦遊戲或者遊戲機遊戲有咁多掣畀玩家撳，所以一隻手機遊戲嘅操作系統唔可以太過複雜，於是就引起咗係噉跑遊戲等嘅創新－係噉跑遊戲係一種遊戲類型，特徵係唔使玩家控制主角前後郁，主角都會係噉向前跑，玩家淨係需要控制主角左右郁避開啲障礙物，例如 2011 年出嘅《Temple Run》就係噉。係噉跑遊戲呢種遊戲少咗「向前郁」同「向後郁」兩個掣，自然操作方式簡單咗，被指零舍適合攞嚟做手機遊戲。

## 買賣地點
*Google Play
*App Store
*Microsoft Store
## 程式語言
*JavaScript
*C++
*C♯

## 詞彙對照
以下係篇文用咗嘅詞彙嘅粵英對照，啲拼音用嘅係粵拼：

*流動裝置 /  / mobile device
***本機 apps** /  / native apps
***網絡 apps** /  / web apps
*手機遊戲 /  / mobile game
*係噉跑遊戲 /  / endless runner

## 睇埋
*人機互動
*數碼營銷（流動營銷）
*用家體驗設計
*自然語言處理
*體驗抽樣方法（ESM）：喺廿一世紀初，體驗抽樣方法通常係攞 app 做嘅－研究者會整返隻 app，隻 app 會定時定候－好似係「每日中午」噉－響，叫受試者填短嘅問卷，問佢哋（例如）佢哋嗰一刻嘅情緒狀態係點。

## 文獻

*Edwards, E. A., Lumsden, J., Rivas, C., Steed, L., Edwards, L. A., Thiyagarajan, A., ... & Walton, R. T. (2016). Gamification for health promotion: systematic review of behaviour change techniques in smartphone apps (PDF). *BMJ open*, 6(10), e012447，呢篇綜述文講到當時啲健康 app（用嚟鼓勵人做多啲運動同食得健康啲嘅 app）點樣使用遊戲化嘅設計。
*Gao, J.; Bai, X.; Tsai, W.; Uehara, T. (February 2014). "Mobile Application Testing: A Tutorial" (PDF). *Computer*. 47 (2): 46-55，呢篇文有詳盡噉講解 app 嘅測試過程做法。
*González, C. S. G., del Río, N. G., & Adelantado, V. N. (2018). Exploring the benefits of using gamification and videogames for physical exercise: a review of state of art. *IJIMAI*, 5(2), 46-52. "B. Technology for Gamification and Games for PE".

## 註釋

## 引述

## 拎
*