iPhone和iPad程式設計入門 零基礎學習編寫App
移動開發經典叢書
iPhone
和
iPad
程式設計入門
零基礎學習編寫
App
[美] Wendy L. Wise
著
張久修 陳樂輝 趙 勉 譯
北 京
EISBN: 978-1617292651
Anyone Can Create an App: Beginning iPhone and iPad Programming
Wendy L. Wise
Original English language edition published by Manning Publications, 178 South Hill Drive,
Westampton, NJ 08060 USA. Copyright
©
2017 by Manning Publications. Simplified Chineselanguage edition copyright
©
2018 by Tsinghua University Press. All rights reserved.
本書中文簡體字版由
Manning Publications CO.授權清華大學出版社出版。未經出版者書面許可,
不得以任何方式複製或抄襲本書內容。
北京市版權局著作權合同登記號 圖字:
01-2017-4217
本書封面貼有清華大學出版社防偽標籤,無標籤者不得銷售。
版權所有,侵權必究。侵權舉報電話:
010-62782989 13701121933
圖書在版編目(CIP)資料
iPhone
和
iPad
程式設計入門 零基礎學習編寫
App/(美) W. L.
懷斯(Wendy L. Wise)
著;張久
修,陳樂輝,趙勉 譯.
—北京:清華大學出版社,
2018
(移動開發經典叢書)
書名原文:
Anyone Can Create an App: Beginning iPhone and iPad Programming
ISBN 978-7-302-48875-0
Ⅰ.
①i… Ⅱ.
①
W…
②
張…
③
陳… ④趙 Ⅲ.
①移動終端-應用程式-程式設計
Ⅳ.
①TN929.53
中國版本圖書館
CIP
資料核字(2017)第
287728
號
責任編輯
:王 軍 韓宏志
裝幀設計
:孔祥峰
責任校對
:牛豔敏
責任印製
:沈 露
出版發行
:清華大學出版社
網 址
:
,
地 址
:北京清華大學學研大廈
A
座
郵 編
:
100
084
社 總 機
:
010-62770175
郵 購
:
010-62786
544
投稿與讀者服務
:
010-62776969,
c-service@tup.tsinghua.edu.cn
質 | 量 | 反 | 饋 : 010-62772015, zhiliang@tup.tsinghua.edu.cn |
印 裝 者
:三河市金元印裝有限公司
經 銷 :全國新華書店 開 本 : 170mm×240mm |
印 張 : 20.75 | 字 數 : 407 千字 |
|
版 次 : 2018 年 1 月第 1 版 | 印 | 次 : 2018 年 1 月第 1 次印刷 |
|
印 數
:
1~3500
定 價
:
68.00
元
產品編號:
075685-01
譯 者 序
iOS
系統誕生於
2007
年
1
月初,由蘋果(Apple)公司釋出。在
iOS
系統誕生的
同時,顛覆手機行業的
iPhone
也橫空出世,這預示著智慧手機時代從此到來。多
年來,搭載
iOS
作業系統的
iPhone
因其流暢的操作體驗以及精湛的製作工藝,一
直備受使用者的好評與青睞。每年的蘋果新品釋出會以及蘋果開發者大會也都備受
關注。
2017
年是蘋果推出
iPhone
後的第十年, 因此蘋果公司於北京時間
9
月
13
日凌
晨
1
點的新品釋出會上釋出了第一款
iPhone
全螢幕手機,並將其命名為
iPhone X,
以紀念
iPhone
誕生十週年(在羅馬數字中
X
代表
10)。這意味著
iPhone
全螢幕手
機時代的到來。一週後,於北京時間
9
月
20
日凌晨
1
點,蘋果正式釋出了最新一
代的作業系統
iOS 11,而作為
iOS
應用的整合開發工具(IDE)的最新版
Xcode 9
的
更新也同時推出,這也意味著擁有擴增實境(AR)功能和機器學習功能的應用,將
如雨後春筍般陸續出現在
App Store
中。而作為
iOS
開發者或即將成為
iOS
開發
者的你,面對如今的智慧手機時代,以及正在到來的人工智慧時代,怎能不怦然
心動、躍躍欲試?
iOS
開發的主流程式語言是
Objective-C
和
Swift,本書所使用的程式語言是
Swift,且是最新的
4.0
版本。
Swift
是蘋果於
2014
年在蘋果開發者大會上釋出的
新開發語言,它易學易用,是第一套具有與指令碼語言同等表現力和趣味性的系統
程式語言,可與
Objective-C
共同執行於
Mac OS
和
iOS
平臺,用於搭建基於蘋果
平臺的應用程式。
Swift
在釋出後短短几年間便獲得了高速發展,且於一年後便開
源,在不久的將來該語言也將在伺服器端大行其道。因此
Swift
程式語言是一名
合格的
iOS
開發者必須掌握的。
本書是一本優秀的
iOS
開發入門書籍,作者本著“人人都可以學習程式設計”的
宗旨,用最樸素幽默的文筆、淺顯易懂的語言和循序漸進的學習方式,引領初學
者一步步掌握
iOS
程式設計概念和基礎技能。不僅如此,作者還向讀者時刻傳達著一
II | iPhone 和 iPad 程式設計入門 零基礎學習編寫 App |
種學習程式設計的理念:相信自己並保持耐心。確實,不止在學習程式設計的過程中應當 |
|
如此,在實際專案開發中,保持自信和耐心尤為重要。因為在這個過程中你將遇 |
|
到各種困難、 Bug、甚至技術瓶頸,唯有擁有自信和耐心者,才能時刻保持冷靜 |
|
的頭腦去分析並制定相應的策略,最終衝破一道道關卡從而獲得寶貴的開發經驗 |
|
並不斷成長。當你決定拿起本書時,所要做的便是堅持再堅持,以及一次又一次 |
|
的實踐,在這個過程中,你要不斷鼓勵自己,相信你會在本書中獲得一次又一次 |
|
的成就感。 |
|
本書的作者有著多年的 iOS 平臺開發及專案管理經驗,即使是最基礎的程式設計 |
|
概念都有著自己的真知灼見,且講解獨到,想必讀者們定會受益匪淺!而本書的 |
|
譯者們同樣有著多年且豐富的 iOS 專案開發經驗,來自國內知名的網際網路公司。希 |
|
望這本中文版的 iOS 開發入門書籍能夠真正為你開啟一扇通往程式設計世界的大門。 |
|
這裡要感謝清華大學出版社的編輯,尤其是李陽編輯,在翻譯過程中透過遠 |
|
程溝通來耐心地指導我們翻譯上的問題。沒有你們的幫助和指導,本書中文版也 |
|
不可能這麼快與讀者見面。 |
|
作為本書的譯者,我們本著“誠惶誠恐”的態度翻譯這本入門書籍,為避免 |
|
誤導初學者,所以文中的一字一詞都會反覆斟酌。但鑑於譯者水平有限,錯誤和 |
|
失誤在所難免,如有任何意見和建議,請不吝指正。本書全部章節由張久修、陳 |
|
樂輝、趙勉翻譯,參與本書翻譯工作的還有張淼、聶家發、陳昕、劉超,在此一 |
|
並表示感謝。 |
|
序 言
終於完成了這本書,興奮之情難以言表。我期望看到更多的人學習程式設計,但
有些人面對龐大的程式設計世界心生畏懼,難以尋得一個好的學習起點。我希望本書
能夠對他們有所幫助。
在大學裡我並沒有攻讀電腦科學專業,所以我在開啟計算機生涯時的處境
與你現在的處境或許很相近。在
2007
年的第一款
iPhone
面世時,我也擁有了屬
於自己的第一部
iPhone,從此我便深深地迷戀上了它。我希望能夠建立自己的應
用,所以我找到了一個講授
iOS
程式設計的本地培訓機構,於是我便去聆聽了。從那
時起,我就一直在
iPhone
上程式設計。
自你開始程式設計後,你會注意到的一件事是,你的朋友會經常提到他們對應用
有一個很棒的主意。然後他們會詢問你是否可以為他們建立這樣的應用,並且他
們將許諾與你一起分享他們認為肯定會獲得的鉅額利潤。我收到了很多這樣的請
求,而我的一般回應是:他們應該學會自己建立應用。他們通常也會跟進一兩句
評論,如不知道從何處入手、不夠聰明、他們的大腦不適合程式設計,或者程式設計太難。
我不斷否認這些東西——編寫一個應用並不是讓火箭升空,只要擁有足夠的時間
及工具,我認為每個人都可以做到。
我也參與了很多關於女性的倡議:具體而言,就是試圖鼓勵更多女性進入科
學、技術、工程和數學(STEM)領域。為讓她們對
STEM
感興趣,同時結合上面我
所提到的對我的朋友的回應,導致我想為從零開始的初級程式設計師寫一本書。雖然
本書不是專為女性而寫的,但這絕對是我靈感的來源。
為什麼我會選擇
Manning
出版社?那是因為我以前買了
Manning
出版社出版
的很多圖書,其質量都很好。並且多年前,我自願為
Manning
出版社審閱手稿;
我已經審閱過很多手稿了,所以我對圖書出版的整個過程已經非常熟悉(在很高的
層次上)。當初我決定寫本書時,就知道必須與
Manning
出版社合作。我提交了我
IV | iPhone 和 iPad 程式設計入門 零基礎學習編寫 App |
對本書的想法,只等了幾個星期,就收到了 Manning 出版社給予的肯定答覆!這 |
|
讓我誠惶誠恐! |
|
這是一段漫長而有趣的旅程——一段免費之旅。這是一種交織著愛、樂趣、 |
|
恐慌、漫漫長夜、壓力和幸福的勞作。這是我所撰寫的第一本書,衷心感謝你的 |
|
閱讀,希望你喜歡。 |
|
請記住:你足夠聰明,並且你的大腦會理解這個主題。保持耐心——你可以 |
|
做到! |
|
作者簡介
Wendy L. Wise
在移動和應用開發方面有著廣泛的背景, 並與幾家《財富》
500
強公司進行過合作。在
17
年的技術生涯中,
Wendy
曾擔任軟體開發高階總監、國
際移動應用高階產品經理、網路和移動技術的實踐開發人員,以及其他許多技術
角色。
Wendy
完全擁抱其書呆子/極客的一面,正如你在閱讀本書時所發現的一
樣。在其業餘時間,
Wendy
喜歡啤酒、咖啡、攝影、野營以及戶外運動。
致 謝
有很多人我都需要表示感謝,因為在他們的幫助下,我的這個瘋狂夢想才得
以實現。感謝我最大的支持者:我的妻子
Jocelyn Whitfield。她相信我、支援我、
鼓勵我,在我失落時讓我重新振作。沒有她我絕對完成不了這本書。感謝我父母
的鼓勵和幫助,還有他們的養育之恩!感謝我所有的家人和朋友。或許你們並不
知道你們的愛和支援給予了我多大幫助,特別是
Clay、
Kristine、
Nancy
和
Ja。我
愛你們!
我還要感謝
Manning
出版社的優秀人物,是他們促成了這本書的出版:發行
人
Marjan Bace
以及編輯和製作團隊的所有人,包括
Christina Taylor、
Janet Vail、
Tiffany Taylor、
Corbin Collins、
Melody Dolab、
Dennis Dallinik,以及所有在幕後
默默奉獻的其他人員。
我由衷地感謝由
Ozren Harlovic
領導的非常了不起的技術審稿小組——
Stephen Byrne、
Mark Cooper、
Igor Delovski、
Olivier Ducatteeuw、
Laurence Giglio、
Pieter Gyselinck、
Marius Horga、
Jocelyn Jeriah、
Kelvin Meeks、
Drew Monrad、
Jason
Pike
和
Stuart Woodward——以及才華橫溢的論壇貢獻者們。他們的貢獻包括:捕
捉技術錯誤、術語錯誤以及打字錯誤,並提出主題建議。透過了審查過程的每一
個建議以及透過論壇主題得以落實的每一條反饋,共同形成並塑造了該手稿。特
別感謝擔任本書的技術編輯
Robin Dewson,以及技術校對員
Scott Steinman。
前 言
我假定你買這本書的原因是想要學習如何開發
iOS
應用,並且你從未有過任
何編碼經驗(好吧,或許你認識我,並且想要支援我)。無論哪種方式,你都將學
到很多東西,並樂在其中。本書適用於從未編寫過任何程式碼的人,或者編寫了一
些程式碼,但這些程式碼絕非
iOS
應用。我還假定你有耐心閱讀本書、嘗試書中的例
子,並在這些例子第一次沒有有效地工作時能夠重寫它們。這就是編碼的精髓所
在:除錯(debugging)。即使是最好的開發人員也會出錯,所以當你的程式碼在第一
次工作不正確的時候,請不要沮喪。保持耐心最重要。
為什麼選擇
iOS
應用?如果你告訴你的朋友, 你正在學習
iOS
開發(或
Swift,
或者開發
Apple
手機),他們可能會說:“哇,我聽說這很難。為什麼你不從更容易
的事情開始呢?”你的答案可以是:“我有編寫應用的想法,我有耐心並且有意願
去學習。我相信我能行。”人們可能會鼓勵你去學習更簡單的東西,比如超文字標
記語言(HTML,用於網頁等)。其實這也挺好的,但你是真的因為想學習如何為
Apple
裝置(使用
Swift)建立應用,所以你正在閱讀本書。在這裡我要告訴你,你
完全可以從
iOS
開始,並且你能夠學會編寫應用;只要付出時間、耐心和決心,
只要你敢想,終有一天你會成為這方面的專家。
在這本書中,我的目標是僅提供給你足夠的用於完成下一步操作所需要知道
的內容,而並不會以填鴨方式向你灌輸你現在所不需要知道的一些事情。換句話
說,我正在嘗試使用即時學習技巧來講授這門課程。這意味著雖然可能會有大量
資料來讓你瞭解一個主題,但你並不需要超前學習所有這些內容。我會將所有這
些資料彙總,然後將其分解成你真正需要了解的較小部分,以便開始學習。
許多人對學習程式設計心存疑慮。程式設計世界是龐大的——有太多的程式語言和首
字母縮略詞,並且有些程式設計師似乎常年不見天日。但請放心,你可以從學習基礎
知識開始,並且我將引領你瞭解首字母縮略詞和程式設計師行話。同時,可將程式設計視
VIII | iPhone 和 iPad 程式設計入門 零基礎學習編寫 App |
為另一種興趣。你可以按需要花費盡可能多的時間,投入的時間越多,收穫也將 |
|
越多。想象著在你學習程式設計的旅途中有我陪伴——我們將一起到達目的地。 |
|
每個開發人員在一開始學習基礎知識時都是循序漸進的。即使是經驗最豐富 |
|
的程式設計師也不得不從某處開始學起!沒有哪個“俱樂部”是隻允許某些特定的人 |
|
成為開發人員的。每個人都可以做到,也包括你。只要肯花時間學習基礎知識、 |
|
理解概念,並進行實踐,那麼你也將很快成為 iOS 開發人員。 |
|
本書讀者物件 |
|
本書針對純粹的程式設計初學者(從未編寫過一行程式碼, 並且不瞭解所要做的事情 |
|
的基本概念)。我做出如下假設: |
|
y 你沒有開發經驗。 |
|
y 你想學習如何建立 iOS 應用。 |
|
y 你有可以用來編碼的 Mac,或者你願意購買 Mac。 |
|
y 你有耐心。 |
|
我希望本書能成為你開始學習程式設計的最佳之地,因為我知道你可以做到! |
|
本書不適合哪些讀者 |
|
如果你已是開發人員,並且已經熟悉諸如 for 迴圈、 while 迴圈和 if 語句等概 |
|
念,而你只想瞭解有關 iOS 的更多資訊的話,這本書可能並不適合你。你可以找 |
|
到其他講授 Swift 語法以及介紹移動開發與其他平臺開發之間差異的書籍,而且 |
|
你可能很快就會覺得這本書很無聊。 但是, 如果你是一名程式設計師, 且只熟悉 HTML |
|
或 COBOL 等語言,那麼絕對可以從這本書中學到一些東西。 |
|
路線圖 |
|
本書分為三個部分: |
|
y 第Ⅰ部分(第 1~8 章)——該部分將開啟你的程式設計生涯。你將學習程式設計的 |
|
基礎知識、瞭解 Xcode 和 Swift Playground,並將從編寫一些簡單的應用 |
|
來開始學習。 |
|
y 第Ⅱ部分(第 9~16 章)——這些章節將向你介紹建立應用所需的其他一些 |
|
技能和概念,包括 while 語句、 switch 語句、陣列和集合、故事板 |
|
(storyboard)、 ViewController(檢視控制器)以及表。第Ⅱ部分的內容比第Ⅰ |
|
部分更高階,所以請先確保你已理解第Ⅰ部分內容。 |
|
y 第Ⅲ部分(第 17~27 章)——在這些章節中, 你將建立一個 LioN(喜歡或不 |
|
喜歡)應用。 LioN 應用允許使用者將專案新增到列表中,並評價他們是否喜 |
|
歡這些專案。 當我在商店裡購物時, 永遠不會記得我喜歡哪種牙膏; 所以,
我會開啟
LioN
應用並搜尋牙膏(toothpaste),該應用將顯示我所喜歡的牙
膏。這款應用將作為你繼續建立自己的應用的一個完整示例。
原始碼下載
你可以下載本書的所有專案,並隨時進行參考。其可在
Manning
網站(www.
manning.com/books/anyone-can-create-an-app)和
GitHub(
Anyone Can CreateAnApp)上找到。
另外,也可掃描本書封底的二維碼下載原始碼。
軟體/硬體要求
以下是你開始學習程式設計的必備條件:
y
Mac
電腦——如果你沒有
Mac,可根據第
1
章列出的基本要求去購置。
y
Xcode——該整合開發環境(IDE)是建立應用所需的主要工具。你可能已經
使用諸如
Microsoft Word
的程式來建立文件。而
Xcode
是你用來建立程式
的應用。附錄
A
有安裝該免費工具的說明,你將在第
2
章中開始使用它。
我還將在第
4
章中詳細介紹
Xcode。
y
蘋果開發者計劃(Apple Developer Program)的會員資格——附錄
A
說明了
如何加入。有兩個選擇:免費會員(我推薦)和
99
美元的會員資格。
線上資源
本書最能幫助到你的辦法是瀏覽其網站:
。你可以下載示例、在
Author Online
論壇上提出有關練習的問題,
並與其他讀者交流。我會盡可能回應你的論壇問題,當然你也可以告訴我你對這
本書的看法。
Apple
是另一個用於探索和學習的好地方,包括蘋果開發者中心(Apple Developer
Member Center,
)的資源。你將需要成為蘋果開發者計劃的成員;
有關更多資訊, 請參閱附錄
A。 你並不需要為了使用這本書而去閱讀那些文件——我
僅是為你提供定位。
Getting Started
的資源是開始學習的好地方,且
Guides
部分是另
一種很好的資源。
Stack Overflow()是獲取有關具體問題的答案的另一個
好地方。可以根據你的具體需求進行搜尋,幾乎可以保證該問題已被問過,且其
他人已經回答。在搜尋時應儘可能具體,否則將收到很多資訊。
目 錄
第Ⅰ部分 第一個應用
第
1
章 入門···································3
1.1
藍圖:
iPhone
和
iPad
開發····· 3
1.1.1
一些關鍵術語
··················
4
1.1.2
開發和程式設計的區別···········
4
1.1.3
客觀地看待
Swift·············
5
1.1.4
你將建立的應用···············
5
1.2
瞭解需要記住哪些內容·········· 6
1.2.1
理解並牢記關鍵概念·······
7
1.2.2
語法··································
7
1.2.3
虛擬碼的重要性···············
8
1.3
建立
iPhone
和
iPad
應用需要
做哪些準備···························9
1.3.1
你需要一臺
Mac ··············
9
1.3.2 Xcode:
iPhone
和
iPad
開發環境························
11
1.3.3
一些有用的資源·············
11
1.4
小結········································ 12
第
2
章 構建你的第一個應用········13
2.1
首次啟動
Xcode ···················· 14
2.1.1
步驟
1:啟動
Xcode ······
14
2.1.2
步驟
2:建立一個新的
專案································
14
2.1.3
步驟
3:設定你的專案
選項
·······························
15
2.1.4
步驟
4:執行空白應用
···
17
2.1.5
步驟
5:新增
Hello
World
文字·····················
18
2.1.6
步驟
6:執行應用
·········
19
2.1.7
步驟
7:回顧本章內容
···
20
2.2
小結
······································· 21
第
3
章 講解第一個應用···············23
3.1
講解
Xcode
模板··················· 23
3.2
瞭解單檢視應用
··················· 24
3.3
標籤的定義
··························· 25
3.4
模擬器的定義
······················· 27
3.5
小結
······································· 29
第
4
章 深入瞭解開發工具:
Xcode ·····························31
4.1 Xcode
皮膚說明···················· 31
4.1.1 Standard Editor···············
32
4.1.2 Utilities
皮膚
··················
34
4.1.3 Main.storyboard··············
35
4.1.4 Navigator
皮膚
···············
35
4.2 Xcode
圖示說明···················· 37
4.3
自由探索
······························· 38
4.4
小結
······································· 39
第
5
章 捕獲使用者的操作:新增
按鈕·································41
5.1
新增標籤和按鈕···················· 41
5.1.1
步驟
1:使用
Single View
App
模板開始建立新
專案································
42
5.1.2
步驟
2:向故事板新增
按鈕和標籤,然後執行
應用進行測試
················
42
5.1.3
步驟
3:將按鈕和標籤
連線到程式碼(關聯),然後
執行應用進行測試·········
43
5.1.4
步驟
4:新增程式碼以便按
鈕被點選時更改
Label
上的文字,並執行應用
進行測試························
47
5.2
改變標籤的顯示···················· 49
5.3
小結········································ 52
第
6
章 按鈕應用詳解
··················55
6.1
按鈕說明································ 55
6.1.1
建立
outlet ······················
55
6.1.2
建立
action ·····················
56
6.1.3 Xcode
有超能力
·············
57
6.1.4
應用的前端:使用者
介面································
58
6.2
文件········································ 59
6.3
註釋:儘量簡短明瞭············ 61
6.3.1
註釋是你的朋友·············
61
6.3.2
如何註釋程式碼
················
61
6.4
小結········································ 62
第
7
章 捕獲使用者的輸入:新增
文字框
·····························65
7.1
新增文字框···························· 66
7.1.1
步驟
1:建立一個新的
單檢視應用····················
66
7.1.2
步驟
2:向檢視新增一個
按鈕和一個標籤
············
66
7.1.3
步驟
3:向檢視新增一個
文字框····························
67
7.1.4
步驟
4:將按鈕、標籤和
文字框連線到程式碼(關聯),
並測試應用····················
67
7.1.5
步驟
5:新增程式碼以更改
標籤,並測試應用
········
69
7.1.6
步驟
6:程式碼註釋
·········
71
7.2
小結
······································· 71
第
8
章 玩轉
playground··············73
8.1 Swift Playgrounds:學習與
他人互動······························· 73
8.2 Framework····························· 74
8.3
變數型別
······························· 75
8.3.1
字串····························
77
8.3.2
回到數學課堂
················
78
8.3.3
雙精度浮點型
················
79
8.4
小結
······································· 81
第Ⅱ部分 理解關鍵的開發概念
第
9
章 控制應用的流程···············85
9.1
控制流程
······························· 85
9.2
簡單的
if
語句······················· 86
9.3
複合型
if
語句:或(||)··········· 88
9.4
複合型
if
語句:與(&&)······ 89
9.5 else if
語句····························· 90
9.6 else
語句
································ 92
9.7
小結
······································· 94
第
10
章
while
控制語句···············95
10.1
使用
while
語句控制
程式碼
··································95
10.1.1 while
語句的實踐
······
96
10.1.2 while
語句小結··········
97
10.2 switch
語句
·······················98
10.3
我伸出了幾根手指?
····· 100
10.3.1
將所有元件新增到
故事板中
·················
101
10.3.2
關聯故事板··············
101
10.3.3
建立變數以捕獲所
猜測的數字:
numberGuessed········
102
10.3.4
當步進器被點選時更改
變數
numberGuessed
的值·························
103
10.3.5
連線
Guess!按鈕······
104
10.4
小結
································ 106
第
11
章 集合·····························107
11.1
陣列································· 107
11.2 for
迴圈語句
··················· 109
11.3
字典································· 110
11.4
建立查詢州名的應用
····· 113
11.4.1
步驟
1:建立一個名為
StateAbbreviationLookup
的應用
·····················
113
11.4.2
步驟
2:將
UI
元件
新增到故事板
·········
113
11.4.3
步驟
3:將
UI
元件
連線到程式碼
·············
114
11.4.4
步驟
4:建立州的縮寫
和名稱的字典
·········
115
11.4.5
步驟
5:建立程式碼以實現
當使用者鍵入州名時查詢
州的縮寫
·················
115
11.5
小結································· 118
第
12
章 用故事板講故事··········· 119
12.1
故事板
···························· 119
12.2
建立一個故事板應用····· 119
12.2.1
步驟
1:建立一個名為
StoryboardExample
的
新應用·····················
120
12.2.2
步驟
2:新增第二個
場景·························
120
12.2.3
步驟
3:在第二個場景
上新增導航欄
·········
122
12.2.4
步驟
4:將
Cancel
按鈕
連結到第一場景
·····
124
12.3 segue
的轉場動畫型別··· 124
12.4
小結
································ 125
第
13
章 深入講解
ViewController····················127
13.1
繼承
································ 127
13.2
關鍵字
override ·············· 130
13.3 ViewController
的生命
週期
································ 131
13.4
應用的生命週期············· 133
13.4.1
步驟
1:建立一個名為
Lifecycle
的新專案····
133
13.4.2
步驟
2:新增第二個
ViewController ········
133
13.4.3
步驟
3:建立一個可解
約的
segue···············
134
13.4.4
步驟
4:重寫五個
函式·························
135
13.4.5
步驟
5:測試應用···
135
13.5
小結
································ 137
第
14
章 建立選項欄··················139
14.1 Tab Bar Controller··········· 139
14.1.1
步驟
1:建立一個新的
應用·························
140
14.1.2
步驟
2:刪除現有的
場景·························
140
14.1.3
步驟
3:在故事板中
新增一個
Tab Bar
Controller·················
141
14.1.4
步驟
4:在不同的選
項卡上新增標籤······
142
14.1.5
步驟
5:在應用中添
加第三個選項卡······
145
14.2
小結
································ 146
第
15
章 深入討論表檢視···········147
15.1
代理
································ 147
15.1.1
從頭開始製作
比薩餅
·····················
147
15.1.2
委託比薩餅製作······
148
15.2
協議
································ 148
15.3
資料來源
···························· 149
15.4
建立表檢視應用············· 149
15.4.1
步驟
1:建立一個
新的應用
·················
150
15.4.2
步驟
2:將表檢視新增
到
ViewController····
150
15.4.3
步驟
3:建立一個原
型單元格
·················
152
15.4.4
步驟
4:為
UITableView
設定協議
········
152
15.4.5
步驟
5:建立比薩的
資料來源
·····················
157
15.4.6
步驟
6:將資料與
表關聯
·····················
159
15.5
小結
································ 161
第
16
章 模式:學習縫紉···········163
16.1
設計模式及其定義
········· 163
16.1.1
程式碼整潔
·················
164
16.1.2
易於理解
·················
164
16.1.3
可維護性
·················
165
16.1.4
可擴充套件性
·················
165
16.2
設計模式的型別············· 166
16.2.1 Model-View-Controller
設計模式·················
166
16.2.2
代理模式
·················
168
16.2.3
備忘錄模式
·············
168
16.3
小結
································ 169
第Ⅲ部分 建立 LioN 應用
第
17
章 活學活用:
LioN
應用····173
17.1 Like it or Not··················· 173
17.2
開始
································ 174
17.2.1
建立應用
·················
175
17.2.2
新增
Navigation
Controller ················
176
17.2.3
新增
iPhone 4s
模擬器·····················
177
17.2.4
將資料與表檢視
關聯·························
179
17.2.5
實現表檢視的函式···
181
17.3
小結
································ 183
第
18
章 為
LioN
應用新增
資料
····························185
18.1
在
LioN
應用中新增硬
編碼資料
························ 185
18.1.1
建立一個包含模擬
資料的陣列
·············
186
18.1.2
透過硬編碼資料將
lionData
連線到表
檢視·························
186
18.2
新增模型
························ 187
18.3
改變表單元格的佈局····· 192
18.3.1
改變故事板中的單元
格以顯示描述
·········
192
18.3.2
更新函式以顯示
描述·························
193
18.4
小結
································ 194
第
19
章 顯示
LioN
的詳細資訊····195
19.1
捕獲被點選的索引行
····· 195
19.2
在故事板中新增
詳情頁
···························· 196
19.2.1
將一個
ViewController
新增到故事板
·········
196
19.2.2
建立一個新的
ViewController
類····
198
19.3
將資料傳遞給
DetailViewController ······ 199
19.3.1
準備
DetailView
Controller
以接受
LioN ························
200
19.3.2
更新
MainViewController
以傳遞資料
·············
201
19.4
小結
································ 205
第
20
章 為詳情檢視新增內容····207
20.1
將標籤新增到詳情
介面
································ 207
20.1.1
使用
description
將
Int
轉換成字串
·········
208
20.1.2
使用
String
將
Int
轉換
成字串
·················
208
20.2
向列表新增新的
LioN···· 209
20.2.1
在檢視中新增+
按鈕·························
210
20.2.2
建立函式以處理
action
並將二者連結
·········
211
20.2.3
將硬編碼值新增到
LioN
列表中
·····················
213
20.2.4
從列表中刪除
LioN ························
215
20.3
小結
································ 216
第
21
章
AddEditView
場景
·······219
21.1
建立新的詳情檢視········· 219
21.1.1
新增一個新的TableViewController ················
220
21.1.2
新增一個新的
AddEditViewController
類····
221
21.1.3
關聯
Cancel
和
Done
按鈕·························
223
21.1.4
檢查點
·····················
223
21.2
新增新的
LioN ··············· 224
21.2.1
禁止單元格被選中···
226
21.2.2
設定鍵盤的行為······
227
21.2.3
在使用者點選時關閉
鍵盤·························
229
21.3
小結
································ 231
第
22
章 代理無處不在
··············233
22.1
關聯檢視
························ 233
22.1.1
實現協議
·················
234
22.1.2
更新
Cancel
以及
Done
按鈕的事件
·············
235
22.1.3
捕獲使用者輸入
·········
236
22.2 MainViewController
的
一致性
···························· 237
22.3
將
LioN
物件新增到
lion
陣列中
···························· 239
22.4
設定
like
和
dislike
屬性
································ 242
22.5
小結
································ 243
第
23
章 編輯
LioN ····················245
23.1
編輯現有的
LioN ··········· 245
23.1.1
設定
AddEditViewController
以接受要編
輯的
LioN
物件·······
245
23.1.2
為文字框填充
LioN
的
名稱及其描述
·········
246
23.1.3
顯示對
LioN
的喜歡
或不喜歡
·················
247
23.1.4
將
LioN
物件傳遞給
Add / Edit
控制器
····
250
23.1.5
點選
Done
時儲存
LioN,
並非建立新的
LioN ························
252
23.2
小結
································ 256
第
24
章 儲存
LioN ····················257
24.1
玩轉沙盒························· 257
24.2
儲存資料························· 259
24.2.1
更改
LioN
物件的
類定義
·····················
259
24.2.2
儲存編碼的資料······
262
24.2.3
載入解碼的資料······
262
24.2.4
新增
loadLions()
函式·························
264
24.2.5
資料載入總結··········
265
24.2.6
新增儲存功能··········
265
24.3
測試載入與儲存功能
····· 267
24.4
小結
································ 268
第
25
章 讓
LioN
應用更美觀
·····269
25.1
基本的修復····················· 269
25.1.1
建立兩個
section······
270
25.1.2
為
Like
和
Dislike
新增圖片
·················
271
25.1.3
更改表檢視的
背景色
·····················
275
25.1.4
根據選擇來切換
圖片·························
276
25.1.5
在單元格上設定
圖片·························
277
25.1.6
讓
MainView
場景
更美觀·····················
278
25.1.7
更新導航欄
·············
279
25.2
新增圖示
························ 280
25.3
更新啟動場景················· 281
25.4
小結
································ 281
第
26
章 使用自動佈局
··············283
26.1
更改佈局以適配所有
螢幕尺寸
························ 283
26.1.1
改變
AddEditView
場景·························
284
26.1.2
更改主場景中單元
格的顏色·················
292
26.2
小結
································ 293
第
27
章 搜尋
LioN ····················295
27.1
新增搜尋功能················· 295
27.2
基於使用者的輸入過濾
LioN································ 297
27.2.1
建立過濾器函式······
298
27.2.2
使用閉包來過濾
陣列·························
299
27.2.3
更改表檢視的
資料來源·····················
301
27.2.4
潤飾應用
·················
303
27.3
搜尋其他欄位················· 304
27.4
小結
································ 305
27.5
你將何去何從?
············· 306
附錄
A
如何安裝
Xcode
以及註冊
成為蘋果開發者·············307
附錄
B
在你的裝置上執行應用··· 311
第Ⅰ部分
第一個應用
第Ⅰ部分介紹程式設計的基本概念,旨在讓你儘快涉足程式設計世界。第
2
章建立第
一個應用,然後第
3
章詳細介紹要做什麼以及為什麼這麼做。第
4
章介紹用於創
建應用的工具(Xcode)。第
5~7
章將透過在應用中新增按鈕和文字框的操作來更
深入地講解程式設計方法。最後,在第
8
章中,將介紹一個令人興奮的工具
Swift
Playground,可以透過它快速輕鬆地學習和測試程式碼。
第1章 入 門
本章涵蓋
y
概述
iPhone
和
iPad
應用的建立
y
學習策略——記住什麼
y
建立
iOS
應用需要做哪些準備
社會在不斷髮展,
mobile-first
也在其中起到推動作用。
mobile-first
是什麼?
是一種想法,即讓人們透過
iPhone
或
iPad
獲取資訊——無論是電子郵件、新
聞、社交媒體、網際網路、購物、發簡訊或電話。因此,如今一些公司正考慮如何
在移動裝置上提供這些資訊,為此首先要製作網頁,然後新增可用來訪問網頁的
移動應用。
技術的進步和發展是多麼激動人心!你將樂在其中。本書將教你如何開始
建立
iPhone
和
iPad
應用,適合於以前沒有任何開發經驗的初學者,將帶這些初
學者初次踏入應用建立的精彩世界。如果你已具備應用開發經驗,也可透過本書
複習和鞏固學過的知識,何樂而不為?
1.1
藍圖:
iPhone
和
iPad
開發
為
iPhone
和
iPad
建立應用是一件令人興奮的事情。但很多人一想到要為這
些很棒的裝置建立應用可能會望而生畏,不過請放心,我們將一起完成應用的創
建,並且你將在學完本書之後完成多個應用。為
iPhone
和
iPad
建立應用是非常復
雜的,因為它有自己的詞彙,不過對於這些你不必擔心,我都將一一傳授於你。
建立應用稱為開發軟體(developing software),當你學完本書之後,將開發出
多個應用,並將初步瞭解軟體術語和基礎知識。讓我們從零基礎開始,以確保我
們在同一頁(雙關語)。
4 | 第Ⅰ部分 第一個應用 |
1.1.1 | 一些關鍵術語 |
首先,學習開發
iPhone
和
iPad,意味著將建立只能安裝和執行在
iPhone
和
iPad
上的應用。這些應用無法在任何其他裝置上執行,因此請確保你已瞭解了
自己正在進行的事情。你將學習開發在
iOS
上執行的應用,
iOS
是在
iPhone
和
iPad
上執行的作業系統(OS)。而作業系統是在機器上執行的底層軟體,如
Windows 95(已被淘汰)、
Windows 8.1
或
Mac OS X(現為
macOS)。這些作業系統
負責與組成電腦的電子元件進行互動的所有艱鉅任務,因此,按下計算機按鍵
時,是在與作業系統進行互動,而不是在嘗試將你的意圖告訴計算機。本書前
幾章介紹
iPhone
和
iPad
開發的關鍵概念,但第一個例子將重點圍繞
iPhone
開
發。開發
iPad
的功能並不是那麼有意義,隨著我們進入後面的章節,將會展現
這兩種開發的差別。
1.1.2
開發和程式設計的區別
術語開發(development)與程式設計(programming)是同義詞,因為學習開發或程式設計
應用是為了讓計算機能夠做事情。有非常多的程式語言可供選擇,因為程式語言
(programming language)是用於與機器通訊而被正式構建的語言。當
Apple
建立
iPhone
時,也建立了一種名為
Objective-C
的語言(Swift
之前使用的程式語言),當
由程式設計師使用並被編譯器(compiler,稍後再介紹)編譯或翻譯後,可被
iPhone
理解
並執行。圖
1.1
展示了這種程式語言的實現過程。
如圖中所示,使用程式語言為
iPhone
或
iPad
建立應用時包括以下步驟:
(1)
在螢幕上鍵入單詞,這些是命令(command)或程式碼(code)。
(2)
編譯器接受這些單詞,如果程式中沒有出現錯誤,便將其翻譯成機器可
以理解的語言。
學習程式很像學習外語。首先需要了解這些詞和它們的含義,然後必須把
它們組織在一起,以正確的順序形成句子。
1.1.3
客觀地看待
Swift
如前所述,有非常多的程式語言,而它們都具有與機器通訊的相同目的,
然後讓機器按照用這些語言編寫的程式進行操作。對於
iPhone
和
iPad
的程式設計,
現在有兩種程式語言可選擇:
y
Objective-C
y
Swift
本書並不打算告訴你這兩種語言的歷史,也不會試圖讓你相信哪一種更
好。自從
iPhone
誕生以來,
Objective-C
就作為
iPhone
和
iPad
程式設計的首選語言。
Apple
公司在
2014
年釋出了
Swift,與
Objective-C
完全不同,
Swift
採用了不同
的方法開發
iPhone
和
iPad。相對於許多其他語言的複雜性,
Swift
簡化了許多,
從而更容易學習。而這些差異並不是本書的重點,本書甚至不會討論為什麼
Apple
建立了一種新的語言。最基本的一點就是你將會學習
Swift,而在這本書
裡你會用
Swift
編寫程式碼。
值得慶幸的是,你和所有人一樣,都是剛開始學習
Swift。因為這是一種新
的語言,所以沒有任何一個人已經擁有五年的
Swift
經驗。想想看:如果你願
意,就可以在五年內成為那樣的專家!相對於
Objective-C
語言,在
Swift
中更
容易學習語法的編寫。如果想了解有關
Objective-C
的更多資訊,可以透過蘋果
開發者(Apple Developer)網站(developer.apple.com)獲取。
1.1.4
你將建立的應用
接下來是令人興奮的部分:透過閱讀本書,你將建立自己的應用。我們將
從一些較小的應用開始,以幫助你瞭解基礎知識,但最終將構建
LioN
應用,你
現在也可以從
App Store
免費下載它。以下是本書開發的內容:
y
Hello World——這是每個開發者踏入程式設計世界的成人禮。應用啟動後將
顯示“Hello World”。此應用很簡單,但它的成功啟動確保了所有設定的
正確性,並且讓你知道如何建立應用。
y
Hello Button——該應用允許你按下一個按鈕來更改應用內標籤的文字。
y
Textbox——該應用允許你在文字框中輸入內容,然後在螢幕上列印出所
輸入的文字。
y
How Many Fingers——該應用會讓你玩遊戲:一個人(指此應用)將舉起的
手指藏在身後,你要猜出其舉起了多少根手指。
y
State Abbreviation Lookups——該應用允許你輸入國家的名稱,然後將顯
示國家的縮寫。
y
LioN——一款非常有用的應用,能夠幫助你記住“Like it or Not.”。我創
建此應用,是因為我容易忘記自己喜歡或不喜歡的品牌——比如牙膏。
我去雜貨店買一個品牌,是因為我記得,但事實證明,是因為我不喜歡
它我才記得。但現在我可以開啟我的
LioN
應用並搜尋牙膏,它可以告訴
我,我不喜歡的品牌以及喜歡的品牌都有哪些。非常方便!此應用具有搜
索功能,因此可以根據名稱或描述搜尋你的
LioN
專案。除了螢幕底部
的廣告和一些注意事項外,你構建的
LioN
應用將與
App Store
中的完全
一樣。
在我們開始學習
Swift
語言及其語法之前,將介紹一些學習策略,以使程式設計
更容易。
1.2
瞭解需要記住哪些內容
你將開始明白,程式設計世界也是浩瀚無邊的。儘管在網際網路上有大量的可
用資源,卻要麼無處著手,要麼無跡可尋。本書內容將盡最大可能做到通俗
易懂。
學習概念的關鍵是完成整個程式設計練習。可以先閱讀概念,然後做相應的練
習:全部的。要達到學習並理解的目的,沒有比親自動手更好的方法了。
做練習時,難免會犯錯。即使是世界上最好的程式設計師也會犯錯。關鍵是要
有耐心,能從錯誤當中汲取經驗和教訓。請確保完全按照練習來做,否則它們可
能不會按照你所期望的方式來工作。起初你可能不會明白為什麼這麼做,但隨著
我們講解的繼續,一切都會變得清晰起來。
你可以隨時檢查你的成果
你可以隨時從
Manning
網站()或
GitHub(AnyoneCanCreateAnApp)上的本書
頁面中下載練習和原始碼,以瞭解我的程式碼是如何寫的,並將其與你所寫的
程式碼進行比較。
1.2.1
理解並牢記關鍵概念
現在,你需要在程式設計的海洋中記住哪些內容呢?最重要的是記住我教你的
概念(concept)。此時,在一開始就記住基本概念,比起要記住確切的語法(程式設計
中使用的單詞和符號的組合)內容更重要。
為什麼?你可以隨時寫下語法或輕鬆線上查詢它,但如果你不瞭解基本概
念,知其然而不知其所以然,那麼你只是在做無用功。只學習語法將類似於我要
求你用德語複製一個句子(假設你不懂德語)。你可以把它複製下來並記住它,但
是除非你懂德語,否則它對你沒有任何意義。當我們一起踏上這趟學習之旅時,
我會說清楚哪些主題是概念(concept),而哪些是語法(syntax)。你對概念的理解
越多,你的程式設計經驗就越豐富。一些關鍵概念將在頁面上單獨的框中給出,而語
法主題將形如:
Syntax:example。
1.2.2
語法
如果檢視語法(syntax)的定義,將看到一些諸如“在語言中透過組織單詞來
建立格式良好的句子”的內容。你將學習
Swift
語言的語法——如何編寫出組成
iPhone
或
iPad
程式碼的“句子”。正如我所說,這與學習外語相似。在某些語言
(包括英語)中,習慣上這樣說或寫:
y
首先是句子的主語
y
然後是動詞
y
之後是物件
例如,
I read a book yesterday
在英文中很好理解。如果用德語(例如)來表達
或者寫同一句話,將形成這樣一個句子
Ich habe gestern ein Buch gelesen.(I have
yesterday a book read.)。這就是不同語言間的語法差異。
每種語言都有語法規則,以使撰寫者或演講者能夠輕鬆地形成句子,並使
讀者或聽者能夠理解這種語言。程式語言也有語法規則,以使計算機能理解你
要試圖做什麼。當建立應用時,能夠編寫格式良好語法正確的程式碼是很重要
的——但理解基本概念更重要。隨著你記住語法的程式碼越來越多,記憶“句
子”將變得越來越容易。本書中講授的基本概念很重要,因為這將成為你理解
程式設計的基石。
那麼該如何學習程式設計的基本概念呢?我很高興你這麼問。
8 | 第Ⅰ部分 第一個應用 |
1.2.3 | 虛擬碼的重要性 |
程式設計師必須理解他們所要實現的任何程式碼的基本概念或計劃。一種理解和
學習程式的基本概念的方式是,先將任何你想要程式實現的程式碼寫成虛擬碼
(pseudocode)。
虛擬碼——在本書中意指“假程式碼”——這種方法將概念和想法簡化並分
解成邏輯上的步驟,以便更容易理解。編寫虛擬碼有助於自己對將要實現的程式
程式碼有進一步的理解和規劃,而不是為了告訴計算機你要做什麼。想象一下第一
次在房子的牆上作畫。你顯然希望自己能創作出一幅漂亮的牆畫,但是要從哪裡
開始呢?如果從心中預想的最終結果開始(牆畫已經完成)並試圖弄清楚如何實現
結果,那麼你將為了實現最終結果而需要去考慮明確的步驟。花點時間想想你創
作出這幅牆畫的步驟,然後把它們寫下來。
下面是我寫下的步驟:
(1)
去當地的五金店,瀏覽塗料的樣品晶片。
(2)
選擇一個或多個塗料樣品晶片併購買樣品塗料。
(3)
將樣品塗料塗抹在牆上的幾個區域。
(4)
在白天多次檢查已塗抹的區域,看看它們在不同光線下的效果。
(5)
選擇其中一種顏色,做出使用與否的決定。
(6)
回到當地的五金店,購買更多所選的塗料。
(7)
拿出滾筒、罩布、油漆刷和工作服。
(8)
為所有東西的邊緣貼上膠帶。
(9)
繪畫。
你可能比我寫下來的步驟少了幾步或者多了幾步,但這並不意味著我們的
任何一個列表都是“更正確”或“更不正確”。當你看著自己的列表時,便清楚
了繪畫所需的步驟。這難道對你沒有意義嗎?它是否足夠完整到你可以正確閱讀
並理解它?如果是,那麼很好,你寫出了繪畫的虛擬碼。除非你最終沒能創作出
一幅漂亮的牆畫,否則虛擬碼便沒有正確與錯誤之分。可以根據實際需要多次完
成步驟,以達到預期結果。
步驟裡說:“拿出滾筒、罩布”等。而不是說“拿出滾筒、罩布,確保它們
乾淨,將它們放入房間,如果是新的,就將包裝物從滾筒上取下”等。畫了這麼
多牆畫後,我認為“拿出滾筒”已經包括了這部分。這對於我是有意義的。你需
要確保你的步驟對你也是有意義的。本書中含有大量的虛擬碼示例的練習以及代
碼,透過這些你將能進行充分的實踐和學習。記住:最關鍵的一點是列出的最終
步驟是對你有意義的。只要是以符合邏輯、有序的方式實現最終結果,做法就沒
有正確或錯誤之分。
現在你掌握了一些如何有效學習的方式,接下來讓我們談一談如何開始程式設計。
1.3
建立
iPhone
和
iPad
應用需要做哪些準備
那麼,怎樣開始呢?
y
首先,你需要一臺
Mac
電腦。
y
Xcode,它是一個整合開發環境(IDE,
Integrated Development Environment),
是建立應用的主要工具。你可能使用過像
Microsoft Word
這樣的程式來
建立文件。而
Xcode
是用來建立其他程式的一種程式。附錄
A
中有安裝
此免費工具的說明。我們將在第
2
章開始使用它。
y
加入蘋果開發者計劃(Apple Developer Program)。附錄
A
中說明了如何加
入。有兩種選擇:免費計劃(推薦)或
$99
計劃。可以檢視附錄
A
瞭解更
多相關資訊。
在此之前,先概覽
Mac
和
Xcode,並介紹一些有用的資源,之後再帶你到
附錄
A
中檢視如何安裝
Xcode
並閱讀有關蘋果開發者計劃的更多資訊。
1.3.1
你需要一臺
Mac
Apple
要求
Mac、
iPhone
和
iPad
的所有開發都要在
Mac
上進行。然而一些
野心勃勃的開發人員已經找到了解決這個問題的方法——不用在
Mac
上也可以
進行開發,但需要掌握很多技術訣竅。請相信我——如果你還沒有一臺
Mac
的
話,那就去購置一臺吧。並不一定需要一個超大型的、全新的、高效能的
Mac,
但如果有一臺更快的
Mac,你將更容易編寫和測試程式碼。這臺
Mac
至少應滿足以
下幾點:
y
硬碟上有大量可用的磁碟空間。
y
至少
8 GB
的
RAM,越多越好。
y
OS X 10.12.x
或
Sierra
或更高版本(在撰寫本文時,
macOS Sierra
是最新
版本)。重要的是使用最新版本的
Mac OS——它與最新版本的
Xcode
最
相容,並將支援最新的
iPhone
功能。
通常可在
Craigslist
或
eBay
這樣的網站上買到相當不錯的
Mac,但在購買之
前請先確保你知道自己想要得到的是一個什麼樣的
Mac。我建議從賣家那裡獲
10 | 第Ⅰ部分 第一個應用 |
取要購買的 Mac 的序列號(如果不是新的),並在 Apple 網站上進行檢查以確保它 |
|
是正牌產品,並檢視是否仍在保修範圍內(CheckCoverage.Apple.com)。你可以使 |
|
用 iMac、 MacBook(Pro 或 Air)或 Mac Mini 進行開發。線上 Apple Store 可以讓你 |
|
輕鬆選擇和配置 Mac,如圖 1.2 所示。 |
|
Apple 提供了一個方便的比較工具,可以在 上
輕鬆地檢視不同配置之間的差異。還可以透過
specialdeals/mac
從
Apple
購買翻新的
Mac,這樣可以節省一些錢。翻新的
Mac
與新
Mac
一樣具有一年保修期。如果你是在校學生,還可以透過從
Apple
Education
商店購買來節省開支。開啟蘋果商店主頁(),一直
滾動到頁面的底部,找到連結
For Education,即可進入
Apple Education
商店。
請確保執行在
Mac
上的是最新作業系統(macOS)。如果你的
Mac
比較陳舊
且在上面執行的不是最新作業系統,可透過
App Store
進行升級。根據
Mac
操作
系統的版本而定,升級可能需要付費,但許多更新是免費的。
本書的練習需要
Sierra OS X 10.12.4
或更高版本
為與本書中的練習保持一致,至少需要安裝
Sierra(OS X 10.12.4
或更高
版本)。這些練習都是使用
macOS Sierra
編寫的。
如果你不知道現在安裝了什麼版本的
OS X,很容易找出來。單擊螢幕左上
角的
Apple( ),然後選擇
About This Mac(中文系統:“關於本機”
)。可在圖
1.3
中看到,我的 MacBook 正在執行 macOS Sierra,版本是 10.12.6。
圖
1.3
單擊
Apple
圖示( ),然後單擊
About This Mac(關於本機),來確定作業系統的版本
1.3.2 Xcode:
iPhone
和
iPad
開發環境
有了
Mac
後,接下來就需要安裝
Xcode。此
IDE
是用於建立應用的主要工
具。可將
IDE
看成是
English
和
iPhone
或
iPad
之間的翻譯器。
IDE
的行為有點
像
Google Translate():
(1)
在你所知道的語言框中輸入單詞。
(2)
選擇一種你不懂的語言,然後單擊
Translate。
(3)
給出譯文。
如果英文單詞拼寫有誤,
Google Translate
便不知道該怎麼做,從而顯示錯誤。
如果輸入格式不正確的句子,翻譯器可能會給出一個錯誤或不是你所期望的答案。
IDE
以同樣的原則行事。當鍵入格式正確的“句子”時,
IDE
將其翻譯為
iPhone
或
iPad
可以理解的機器語言。當拼寫錯誤的單詞或格式不正確的“句
子”時,將出現錯誤,或者裝置的行為方式與你所期望的不一樣。許多程式語言
都有自己的
IDE。
Apple
使用
Xcode
進行所有開發,包括
iPhone
和
iPad。
附錄
A
中包含了
Xcode
的安裝說明和有關注冊蘋果開發者(Apple Developer)
賬戶的詳細資訊。完成本章後並在開始第
2
章之前,你應該參閱附錄
A
完成這
些步驟。
接下來,我們來看一些有用的資源,以使
iPhone
和
iPad
的程式編寫更加簡便。
1.3.3
一些有用的資源
本書將為你提供建立多個應用所需的所有步驟,並講解實現這些步驟的基
本概念。在某些情況下,你可能想要了解有關特定主題的更多資訊,或者可能想
深入瞭解一個主題。下面這些很好的資源可幫助你實現這一點:
y
本書的網站——可以在這裡下載示例,在
Author Online
論壇中提出有關
練 習 的 問 題 , 並 與 其 他 讀 者 聊 天 。 網 站 地 址 是
books/anyone-can-create-an-app。我會盡可能地回覆你在論壇上的問題,
你還可以提出對本書的看法。
y
Apple——這是一個開始學習和探索的好地方,但起初你可能無從下
手。可以在蘋果開發者中心(Apple Developer Member Center,
https://
developer.apple.com)
中 查 看 一 些 “ 入 門 ” 資 源 。 但 首 先 需 要 成 為
Developer Program
的成員(更多相關資訊請參閱附錄
A)。你並不需要為
了使用本書而去閱讀這些文件。如果你想了解有關主題的更多資訊,我
將會為你提供定位。首頁頂部的
Develop
連結是開始進入蘋果開發者中
心的入口;然後網頁跳轉後選擇
Guides
連結。
y
Stack Overflow——此網站()是獲取有關具體問題
的答案的另一個好地方。可以根據你的具體需求進行搜尋,幾乎可以保
證該問題已被問過且其他人已經回答。在搜尋時應儘可能具體,否則將
收到很多資訊。
記住,學習編寫
iPhone
和
iPad
應用可以說是一項艱鉅的任務,不要幻想一
次就會成功。本書會在你需要的時候給你提供資訊,如果你想了解有關主題的更
多資訊,也會給你提供進一步資源的建議。想想古老的格言:
How do you eat an
elephant? One bite at a time。你無法一口吃成個胖子。你需要一步一個腳印地前
進。這就是為什麼我要你學習“just in time”的重要主題(所以我們很清楚,我無
法容忍這種一蹴而就的事)。為能在第
2
章中開始開發,現在是時候轉到附錄
A
來安裝你需要的工具了。
要牢記的概念
y
希望你為建立
iPhone
和
iPad
應用而感到興奮,並意識到你可以在本
書的幫助下不斷提高水平。
y
你學到了虛擬碼就是“假程式碼”。你將建立自己的虛擬碼,並作為一
種路線圖,來幫助你開發應用。
y
你學到了語法(syntax)是編碼“句子”
形成的方式。你必須使用正確
的語法,以使計算機按照你的指令去工作。
y
你學到了
Xcode
是用於建立程式碼的
IDE。
IDE
可將程式碼編譯(翻譯)
為
iPhone
和
iPad
可以理解的語言。
y
你學到了要成為
iPhone
或
iPad
開發人員需要什麼型別的機器(Mac)。
y
你學到了需要記住的內容,將來可以參考什麼以及可以線上查詢什麼。
y
你學到了去哪裡尋求更多幫助。
1.4
小結
恭喜——你剛剛學完了本技術書中的第
1
章!記住一定要腳踏實地地去學
習。本書將在你需要時為你提供需要的內容。在本書結束時,你將熟練掌握編碼
術語。你會知道一些編碼行話,你將為
iPhone
和
iPad
建立多個應用。讓我們趕
緊開始吧,你將在下一章建立第一個應用(但首先請參閱附錄
A)。
購買地址:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/26421423/viewspace-2219928/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Go Web 程式設計入門--深入學習用 Go 編寫 HTTP 伺服器GoWeb程式設計HTTP伺服器
- 如何以零基礎學習Python程式設計?Python程式設計
- 零基礎學習Alfred(一):入門操作Alfred
- 程式設計零基礎應當如何學習Python?Python學習程式設計Python
- 零基礎學it怎麼學?Python開發程式設計學習Python程式設計
- Go Web 程式設計入門--編寫 Web 中介軟體GoWeb程式設計
- 程式設計好學嗎?零基礎能學程式設計嗎?程式設計
- 零基礎學程式設計要花多久?程式設計
- java零基礎入門(jdk安裝配置及第一個java程式的編寫)JavaJDK
- 2023年零基礎怎麼學習Java入門?Java
- 前端零基礎入門學習!前端真簡單前端
- 程式設計零基礎應當如何開始學習 Python?程式設計Python
- 程式設計零基礎應該如何開始學習Python?程式設計Python
- 好程式設計師Java培訓分享零基礎快速入門Java程式設計師Java
- 深入學習Netty(4)——Netty程式設計入門Netty程式設計
- 零基礎入門深度學習-dive in to pytorch 的程式碼報錯記錄深度學習PyTorch
- 程式設計和網路程式設計入門程式設計
- 學程式設計要什麼基礎,零基礎呢?程式設計
- 基礎入門: 編寫第一個 Go 語言程式Go
- Java入門之基礎程式設計Java程式設計
- 組合語言零基礎入門學習筆記(一)組合語言筆記
- Web前端開發零基礎入門學習路線圖Web前端
- 零基礎人工智慧入門-限時免費學習人工智慧
- iOS-零基礎學習OpenGL-ES入門教程(一)iOS
- 專為程式設計師編寫的英語學習指南程式設計師
- 零基礎學習程式設計,Java、Python你會選擇哪個?程式設計JavaPython
- 學習筆記 -《量子計算與程式設計入門》- 量子計算機硬體基礎筆記程式設計計算機
- 入門程式設計學習,適合學python語言嗎?程式設計Python
- 好程式設計師大資料影片教程從零基礎入門到精通程式設計師大資料
- 程式設計入門學什麼?程式設計
- FLAG-學完JAVA教程:Java入門基礎影片教程,java零基礎自學就選黑馬程式設計師Java入門教程(含Java專案和Java真題)Java程式設計師
- 零基礎學大資料程式設計需要哪些基礎?大資料程式設計
- 【編測編學】零基礎學python_02_字串(大小寫轉換)Python字串
- 零基礎學習UI設計到底需要學些什麼?UI
- Salesforce 整合篇零基礎學習(一)Connected AppSalesforceAPP
- MATLAB程式設計與應用系列-關於MATLAB程式設計入門教程的總體編寫安排Matlab程式設計
- Linux-shell程式設計入門基礎Linux程式設計
- 【Python入門基礎】網路程式設計Python程式設計