Chapter 1
開發工具、學習方法與 App 點子

你想要自己做一個 App 嗎?太好了!做一個 App 是一件有趣且有益的經驗。我對於多年前第一次做出 App 時那種喜悅的感覺依然印象深刻,儘管我做的App是很簡單且很基礎的。

在我們深入探討iOS 程式之前,先瀏覽一下你開發 App 所需要的工具,並準備好學習 iOS App的開發。

所需工具

Apple 比較編好採用封閉系統,而不是使用開放式系統。iOS 只能在 Apple 自己的裝置,像是 iPhone 與 iPad 中運行。跟另外一個競爭對手 Google 不相同的是,Android 系統可以在由不同製造商所製作的行動裝置中運行。如果有志成為一個 iOS 開發者的話,表示你需要一台 Mac 才能進行 iOS App 的開發。

1.需要一台 Mac 電腦

一台 Mac 電腦,是 iOS 程式開發的基本要求。為了開發一個 iPhone(或iPad )App,你需要準備一台 Mac 電腦搭配 Intel 處理器,執行 macOS 10.13.4 版本(或以上版本的作業系統)。若是你目前只有 PC,最便宜的方案是購買Mac Mini。在撰寫本書時,Mac Mini 的市售價格是台幣15,900 元,你可以把它接到你的 PC 螢幕即可。最基本的Mac Mini 的配備是1.4GHZ 雙核心Intel Core i5 處理器與4GB 記憶體,這樣的配備執行 iOS 程式開發工具應該綽綽有餘了。當然,如果你有更多的預算,可以購買更高等級的型號,或搭配優秀運算處理器的 iMac。

 那麼黑蘋果(Hackintosh)呢?如果你沒有 Mac 的話,我聽過可以在 Window 電腦中使用它,或許你可能聽過一些人使用黑蘋果來進行 iOS 開發的成功案例,但這不是我們所推薦的方式。如果你認真想要學習 iOS 開發,且能夠負擔的起預付成本的話,買一台 Mac 電腦倒是一項不錯的投資 

2.註冊一個Apple ID

你需要一個 Apple ID 才能下載 Xcode,以及閱讀 iOS SDK 文件與其他技術資源,最重要的是,它可以讓你部署App 至 iPhone/iPad 來進行實機測試。

若是你有從 App Store 下載過 App,那很清楚地,你已經有了一個 Apple ID。如果你之前沒有建立過 Apple ID,則只要到 Apple 的網站:https://appleid.apple.com/account,跟著步驟來註冊即可。

3.安裝 Xcode

當要開發 iOS App 時,Xcode 是唯一需要下載的工具。Xcode 是一個由 Apple 所提供的整合開發環境(Integrated Development Environment,簡稱IDE),它提供你開發 App 所有的工具。Xcode 包含了最新版本的 iOS SDK(Software Development Kit 的縮寫)、一個內建的程式碼編輯器、圖形化使用者介面(User Interface,簡稱UI)編輯器、除錯(Debug)工具, 以及其他的工具。最重要的是,Xcode 提供了 iPhone(或iPad )的模擬器,讓你不需要用到實體裝置也能測試你的App。

有兩種方式可以安裝 Xcode,1.你可以從 Mac App Store 來下載安裝。 2. 從 Apple 的開發者網站下載安裝。

從 Mac App Store 下載 Xcode

要下載 Xcode,必須打開你的 Mac 電腦的 Mac App Store。若是你使用最新版本的 Mac OS,你應該可以在 Mac 電腦下方的 Dock 工具列找到 Apple Store 的圖示,如圖1.1 所示。如果找不到的話,你可能需要升級到新版的Mac OS。

圖 1-1. 在Dock 工具列上的App Store 圖示
圖 1-1. 在Dock 工具列上的App Store 圖示

在Mac App Store 中,只要搜尋「Xcode」並點選「取得」(Get )按鈕下載,如圖1-2 所示。

圖 1-2. 下載 Xcode 10
圖 1-2. 下載 Xcode 10

接著完成安裝程序後,電腦上的 Launchpad 就會出現一個Xcode 的圖示,如圖1-3 所示。

圖 1-3. 在Launchpad 上的Xcode 圖示
圖 1-3. 在Launchpad 上的Xcode 圖示

撰寫本書內容時,Xcode 是 10.0 版,因此本書將全部使用這個版本來建立相關的範例App。即使你已安裝過之前版本的 Xcode,我建議你仍是升級到最新版本,這樣可以讓你更容易跟著本書的課程來學習。

從開發者網站下載 Xcode

通常針對初學者是建議從 Mac App Store 下載 Xcode ,如果你不想要使用 Mac App Store 來下載的話,你可以手動下載 Xcode 10,你必須先登入 Apple 開發者網站(http://developer.apple.com/register/),然後選取Download Tools 然後點選 Download 按鈕來下載 Xcode 10 GM。

下載完成之後,點擊兩下來進行安裝。

4. 申請 iOS Developer Program(可自行選擇)

進行 iOS App 開發時, 最常被問到是否需要申請 Apple 開發者計畫(https://developer.apple.com/programs/),簡短答覆你:「可自行選擇」。首先, Xcode 已經包含了內建的 iPhone 及 iPad 模擬器,你可以在自己的 Mac 電腦上開發及測試 App,不一定要加入 Apple 開發者計畫。

從 Xcode 7 開始,Apple 改變了有關於在實體裝置上建立以及執行 App 的政策。在此之前,你需要支付每年99 美金才能夠在實體的 iPhone 或 iPad 部署與執行你的 App。而現在已經不需要先申請 Apple開發者計畫,就可以在實體裝置上做測試。不過必須要告訴你的是,當你想要嘗試更多先進的功能,例如:在應用程式內購買(In-App Purchase ) 、推播(push notifications)或者 CloudKit, 你依舊需要申請開發者計畫會員。最重要的是,如果沒有支付 99 美元年費的話,則無法將你的 App 提交至 App Store。

那麼,現在該申請開發者計畫了嗎? Apple Developer Program 每年要付 99 美元,雖然不是太貴,但是也不是很便宜。當你在閱讀這本書時,很可能你只是一個開發新手,才剛開始要探索 iOS 程式開發而已。本書是針對初學者所撰寫的。我們會從簡單的部分入手,還不會馬上觸及進階的功能直到你掌握了基本技巧。

因此,即使你沒有馬上申請 Apple 開發者計畫,你還是可以跟著絕大部分的內容在實體裝置上建構與測試 App。所以此刻不妨先節省成本,我會讓你知道何時該申請開發者計畫,屆時我會鼓勵你參加開發者計畫來發布 App 至 App Store !

學習 App 的主要方式

自2012年開始以來,我透過部落格、線上課程以及開設親自授課的工作坊來進行 iOS 程式教學,我發現了學習方法與心態對於學習能否成功會有很大的影響。在我談到 Swift 與 iOS 程式之前,我需要你調整好正確的學習心態並了解什麼才是最有效率程式學習方法。

有關如何學習寫程式中最常見的一個問題是:

學習 iOS 程式的最佳方式為何?

首先,感謝閱讀本書,可惜的是,學習程式語言不能只是看書而已,這本書中有 Xcode,Swift 與iOS 開發中所有你必須學習的內容。

但是最重要的是,採取行動

倘若必須要給這個問題一個答案的話,我會說「從做中學」,這是我教學方法的關鍵。

我來稍微改變一下這個問題:

學習英文(或任何其他語言)的最佳方式為何?

學習騎自行車(或其他各式運動)的最佳方式為何?

你或許已經知道答案,我特別喜歡在 Quora 中有關學習一門新語言的答案:

依照這個規則重複不斷:每天聽一小時、講一小時、發表一篇日誌

- Dario Mars Patible

透過練習來學習,而不是只研究文法,學習程式跟學習一門語言非常相似,你需要採取行動。你必須要做一些專案或者練習作業,你必須坐在 Mac 前面,進入 Xcode 的世界, 並寫程式,過程中如果有做錯並不要緊,要記得的閱讀本書時,要打開 Xcode,並開始寫程式。

學習動機

為什麼你需要學習開發 App 呢?是什麼樣的動機讓你願意犧牲週末假日來學習如何寫程式呢?

有些人學習 App 開發是因為錢。這沒有什麼對錯,你可能想要透過 App 來賺些外快, 最後把它變成一項真正的生意,這點完全可以理解,誰不想擁有富裕的生活呢?

不過,至2018 年三月,App Store 上已經有兩百一十萬支 App,要把 App 放上去,然後期望一夕致富已經是非常困難的事,如果賺錢是你開發 App 的唯一理由,你可能很快便會灰心並放棄,尤其是你看到像這這樣的文章:

現實是

售出199套 = 總銷售額 US$209 = 淨收益 US$135 (我的淨利)。為了讓App能夠上架,我必須要付 $99 開發費。

過了兩個月又一週之後, 我的 (稅前) 利潤是 $36。

- James

寫程式是有點難度且具挑戰性,我發現那些能夠精通程式語言的人,都富有強烈想開發App的渴望並熱衷於學習程式。他們通常都會將腦海中所浮現的想法變成真實。賺錢對他們來說並非第一要關切的事。它們知道這個 App除了可以解決他的問題外,同時也能給其他人好處。有了這樣強大的目標,他們會克服任何障礙來完成。所以想一下,你學習程式的動機是什麼吧。

教學相長

「教學相長」是一句古老的諺語,現代社會依然適用,不過你不需成為一個專家才能教學。我指的不是在大學授課或者在正式課堂上面對一群學生來教學的情形。教學不一定要透過這種方式才行,它可以像是跟同事或隔壁同學分享你的知識這麼簡單。

試著找到一些有興趣學習 iOS 程式的朋友,當你學到一些新的知識,試著跟某人解釋一下內容。舉例來說,完成你的第一個 App之後,告訴你親近的朋友,這是如何運作,並教導他們如何建立一個 App。

如果你無法找到可以分享的夥伴該怎麼辦?別擔心,你可以開始在 medium.com (或者你喜歡的部落格平台)每天寫部落格文章,並且將所有你所學習的內容做個歸納。

因為我在 Appcoda.com 發表了許多了教學文章,以及出版我的第一版書後,我發現這是最有效率的學習方法。

有時候你認為你已經很了解內容,但是一旦你需要像某人解釋一個觀念或者回答問題時,你可能會發現實際上你並不能夠完整了解,這會讓你更認真的去學習內容,當你在學習 iOS 程式設計時,不妨試試這個方法。

具備耐心

意志力是面對長遠目標時的熱情與毅力。意志力是耐力的表現,意志力是日復一日對未來依然堅信不已。不是只這週、這個月,而是年復一年。用心、努力工作來實現所堅信的未來。意志力是將生活看作是一場馬拉松,而不是短跑。

- Angela Lee Duckworth 博士

我們一些學生會問,「成為一個好的開發者,需要多少時間?」

要精通一門程式語言,並成為一個很優秀的開發者,通常需要數年之久。不是幾週或幾個月就可以達成。

本書將帶領你開始這個旅程,你將學會 Swift 與 iOS 程式設計的基礎,最後並做出自己的 App。也就是說要成為一個專業的程式設計師,並做出一些不錯的 App 需要付出時間。

具備耐心,對於第一個 App,不要把期望設想得太高,只要享受這個過程,建立一些好玩有趣的作品。持續的閱讀與寫程式,最終你將精通這個技術。

App 的點子

我總是鼓勵我的學生們在開始學習 App 開發時,能夠想出App的點子。這個點子不需要太大,你不需要馬上想出建立下一個 Uber 或者改變世界的 App。你只要由一個很小且可以解決問題的點子來開始即可。

這邊提供你一些例子吧。

我最常提及的一個經典例子是 Cockpit Dictionary 。它是由飛行員 Manolo Suarez 所開發的 App。他在學習 App 程式設計時,已經有了一個 App 的點子,這個點子並不特別,不過卻可以解決他自己的問題。有成千上萬的航空術語都是用縮寫形式。即使有超過 20 年飛航經驗的飛行員,也無法記得所有的縮詞與專業術語。與其把字典印出來,他想到建立一個給飛行員使用的簡單 App,可以利用這個 App 來查詢所有的航空術語。這個既簡單又很棒的點子,可以解決他自己的問題。

圖 1-4. Cockpit 字典
圖 1-4. Cockpit 字典

另外一個例子是 NOAA Buoy Data App,這個 App 取得來自國家海洋暨大氣總署( National Oceanic and Atmospheric Administration,簡稱NOAA) 的國家數據浮標中心(National Data Buoy Center,簡稱 NDBC)的天氣、風與波浪的最新資料。這個 App 是由 Leo Kin 所開發,他是在從手術後的復健過程中想到了這個 App。

「手術之後,我必須穿著護頸器好幾個月。在那幾個月,我不能移動太多,即使走路或舉起手臂都很困難。我的物理治療師告訴我必須要盡可能的運動來讓我逐漸萎縮的肌肉能夠回復。

有一個島離我的住家很近,我很喜歡去那邊散步。唯一的問題是它只能在退潮的時候過去。如果一旦滿潮,除了游泳之外便無法回去。因為我的身體很虛弱,我非常害怕被困在這個島上而無法回去。當我在走路的時候,我總是查詢一下 NOAA 的網站,並檢查潮汐的高低是否讓我有足夠的時間能夠返回。

在一次散步的時刻,我想到該建立一個App,即使沒有人會使用這個 App也不在意,因為它可以幫助我追蹤潮汐的狀況,讓我能及時返家。

- Leo Kin

你可能對他的 App 不感興趣,但它能夠及時解決他所面臨的問題。或許在那個島上的人,也能因為他的 App而獲得好處吧。

圖 1-5. Rare Steak Timer
圖 1-5. Rare Steak Timer

有一個 App點子可以讓你有更清楚的學習目標與動機。現在花點時間並在下面寫下三個App的點子:




本章小結

介紹到這邊,花點時間在Mac上安裝 Xcode,然後想出自己的 App 點子,或許我教學所示範的 App 的跟你的 App不盡然相同,你將學會所需的程式技巧來強化你的 App。

我們進到下一章,將開始以 Swift 來學習程式。

將一切準備好吧!

Credit:

本章的照片是由 Jeff Sheldon 所設計。

本文摘自《iOS 12 App程式設計實戰心法》一書,博碩授權轉載。如果你想更深入學習Swift程式設計,請到天瓏博客來或其他書局購買完整版本,全書範例檔皆可下載。而你亦可以從AppCoda網站購買完整電子版。

results matching ""

    No results matching ""