一個 app 是怎麼跑進 App Store 的(上:程式的部分)

Loyi Yu-Sung Hsu
#蘋果宅
Published in
5 min readJul 24, 2019
Image by FunkyFocus from Pixabay

在現在,不論是使用 iOS 裝置,或者是 macOS 裝置,主要的程式來源之一就是 App Store 或者 Mac App Store。這個「程式庫」基本上就是 Apple 幫你確保程式的來源沒有問題、經過審核得到「正字標記」的程式。那麼你有沒有好奇過一個程式到底是怎麼跑進 App Store 的?今天這篇文章就讓我們簡單敘述一下一個 App Store 程式,大致上是怎麼樣送到你的面前的。

先從「程式語言」開始說

我們之前有說過很多關於用跨領域框架(如 Qt 、Electron)寫的 Mac 的話題,我們今天把火力集中在使用 AppKit(macOS)、UIKit(iOS)以及 Project Catalyst (iOS Apps on macOS) 的程式。

基本上如果是使用這三個 Apple 的框架寫的程式,比較古早的程式用的語言就是 Objective-C 語言,它基本上是一種變造版的 C,早期的 Mac OS X 的程式或是比較先前版本的 iOS 程式都是用這種語言寫出來的。

2014 年的時候 Apple 發佈了一個新的程式語言 Swift。這個程式語言主打的是快速、安全、好學。自從 Swift 發佈之後,藉由自學學會程式開發的開發者與日俱增, Apple 也不遺餘力在 Apple Store 中開了很多學習 Swift 程式設計的課程。

再來說說「開發環境」

基本上使用上面說的三個框架開發 macOS 跟 iOS 的程式,你必須要有一台 Mac。這原因是因為要開始使用以上所提及的框架,你需要使用一個叫做 Xcode 的開發環境。因為 Xcode 是一個免費、很巨大的 Mac App Store 程式,沒有 Mac 沒有辦法開始進行開發。

這個 Xcode 開發環境基本上涵蓋了所有你想要開發 Mac 跟 iOS 程式所需要的工具,不論你是要開發 Cocoa 程式(也就是 GUI 程式)或是命令列程式(這種程式可以使用 Objective C, Swift 甚至 C 或 C++ 進行開發),Xcode 都有你需要的工具,包含開發 iOS 程式使用的 iOS 模擬器(Simulator)、測試 Swift 程式碼的遊樂場(Playground),以及畫出 UI 的故事板(Storyboard)。

不要說太深入的簡單程式觀念

基本上因為我們再深入下去就會進入很複雜的話題,我們這邊盡量用人話跟大家說明你在用一個程式的時候,到底背後發生了什麼事。

基本上任何一個 GUI 程式打開來,都會看到一堆按鈕跟框框。這個被稱為使用者介面的東西,在某些開發術語中,被稱為視圖 (view),也就是一大堆讓使用者可以跟程式互動的東西。大家印象中那種一行一行的程式,每一個函數 (function) 完成一個特定功能的東西,在術語上稱為模型 (model)。

所以我們術語大噴發之後,現在有在使用者面前、在開發者面前的兩個部分。但是光是只有這兩個東西還是不夠。就像是你現在有一個水瓶(view)、有一桶水 (model),雖然材料都有了,但是你還是沒辦法用水瓶喝水啊!

因此在視圖跟模型之間,還要有一個控制器 (controller),控制器的工作就是把使用者介面 (view) 跟程式碼 (model) 綁在一起的東西,用它來做連結,就可以讓使用者介面依照程式碼的定義動起來!用我們前面的水瓶比喻,就是「裝水」(controller) 的動作!

好的,恭喜大家在這個很奇怪的比喻之下學會了 iOS 開發者的基本題:「Model — View — Controller 模式」是什麼(笑)。

好像在上面隔靴搔癢

對,上面這樣講有一點隔靴搔癢,我們稍微舉一個具體一點的例子。

用一個很簡單的程式概念來說,假設我們有兩個框框跟一個按鈕,兩個框框只接受數字,按鈕按下去之後,會有一行字說,兩者相加的結果。

這個簡單的程式概念中,屬於視圖 (view) 的部分是兩個框框、一個按鈕、一行字;屬於模型 (model) 的部分是將兩個數字相加的功能。最後屬於控制器 (controller) 的工作,就是把模型運算出來的結果,呈現在視圖 (view) 上。

因此我們簡單處理一下這個例子,首先我們可能會做出使用者介面。

這就是我們的視圖 (view)。再來我們要寫一個很簡單的函數,吃進兩個數字,輸出一個數字。

好的,我們的模型也準備好了,再來我們要把上面的框框、按鈕、結果全部放進我們的控制器。

完成了以上的部分之後,就剩下臨門一腳了,我們要做一個「動作」把功能連動起來。

最後,我們試跑一下我們的程式:

雖然還有很多可以精進的地方,但是一個基本的程式,其實就是我們上面所寫的這些步驟就夠了。

好的,今天的內容先到這邊,下一週再緊接著跟大家介紹,程式跑進 App Store 的過程!

--

--