【好評推薦】
「AppCoda的書令人非常激賞,內容寫得非常清楚,即使沒有任何概念,書中的內容會鼓勵你獨立思考並吸收這些觀念,沒有其他比這更詳盡的學習資源了。」
──日本Sheehan,Ingot LLC
「這本書寫得非常好,簡潔有力,書中的範例非常棒且貼近真實的應用,它真的幫助我完成第一個App,並於App Store上架,內容給我許多進一步強化與更新App的想法。我將它作為我的參考指南,也很感謝每當Swift與iOS有做變更時,都能收到更新。」
──David Greenfield,ThreadABead作者
「這本書教導我如何建立我想要的App,書中的內容規劃得很好,每一章的篇幅拿捏得恰到好處,不會太過冗長而無法消化,想要學習開發第一個App並進階學習的話,我強烈推薦這本內容超棒的好書。」
──Stephen Donnelly,Rascalbiscuit總監
「這是我在學習Swift時所找到的學習書籍之一。作為一個初學者,這本書非常容易學習與理解,整本書以貼近真實生活的範例來建立App,這種學習方式真是太天才了,最後也能夠實用它。我學習了很多,也運用了很多其中的內容於我的App中。我發現我會常常回來參考此書,這真的是一本很棒的作品。」
──Bill Harned,Percent Off作者
「這是有關iOS開發最棒的書籍,內容編排絕佳且容易跟著實作,是很棒的開發學習良伴。」
──Ali Akkawi,iOS與Android行動App自由工作者
【本書特色】
從零開始掌握SwiftUI框架與開發技巧
快速強化你的iOS App開發實戰能力
輕鬆成為專業程式設計師
♚使用Xcode 15 & iOS 17 & Swift 5.9開發
♚了解Xcode開發工具
♚使用清單視圖、堆疊視圖設計UI與深色模式
♚快速學習Swift App程式編寫、物件導向與SwiftUI程式設計
♚運用SwiftData與CloudKit存取資料
♚使用地圖與相機
♚實作動態視覺效果
♚開發使用者通知
♚App本地化
♚App測試與上架程序
【內容簡介】
作者分享多年來的iOS開發經驗,並集結廣受歡迎的iOS教學文章,以SwiftUI框架重新編寫,精心設計出30個章節。由基礎入門開始,逐步實作出具有精美UI及實用功能、支援雲端資料傳輸與深色模式的FoodPin App,而且FoodPin App完全支援新推出的iOS 17以及iPhone 15/15 Pro、iPad Pro。
本書首先介紹Swift語言的觀念,再教導你使用Swift與SwiftUI建立你的第一個App,然後你會學到規劃App的原型,並且本書每一章中會針對iOS開發的各個面向提供提示、技巧以及許多需要親手操作的作業,最後你可以從無到有來開發出一個真正的App。本書也會教導你如何使用Xcode來佈局使用者介面,並熟悉iOS 17 SDK的基本API,跟著本書的內容學習,將可獲得真實開發App的體驗,且打好Swift程式語言的基礎,掌握程式開發的訣竅。
本書是專為Swift與iOS程式設計的初學者而撰寫,不論你是想學習新程式語言的程式設計師,或是想要將你的設計轉換為iOS App的設計師,這本書絕對是你的首選。
【本書精采內容】
✪Swift基礎介紹。
✪利用Playground快速學習Swift。
✪使用Swift與SwiftUI從無到有打造第一個App。
✪學習App原型設計與前置規劃。
✪建立App與SwiftUI的常用元件。
✪了解堆疊視圖建立自適應UI。
✪設計適合所有螢幕尺寸的App,讓UI相容最新的iPhone 15/15 Pro與iPad Pro。
✪設計導覽列大標題。
✪自訂表格視圖儲存格來打造更優美的App。
✪學習自訂清單視圖。
✪運用導覽視圖。
✪了解物件導向程式設計。
✪建立動畫與視覺效果。
✪使用相機與相片庫。
✪運用地圖並學會最新的標註功能。
✪使用搜尋列做關鍵字搜尋。
✪建立導覽畫面來讓使用者迅速熟悉App。
✪使用Searchable加入搜尋列。
✪在App嵌入瀏覽器與網頁視圖。
✪運用使用者通知來提升App黏著度。
✪運用觸覺觸控及內容選單。
✪使用SwiftData儲存資料至資料庫。
✪整合運用CloudKit。
✪App多國語系化。
✪在實機上部署與測試App,並且學會WiFi部署功能。
✪使用TestFlight安排Beta測試。
✪在App Store上架你的App。
作者簡介:
Simon Ng
軟體工程師&AppCoda創辦人。畢業於香港中文大學電子工程系,曾任職於HSBC、FedEx等公司,專責軟體開發、系統設計。2012年創立AppCoda技術部落格,定期發表iOS程式教學文章,其部落格每月吸引20多萬名讀者點閱。現在致力於iOS程式教學、產品設計及開發,希望幫助更多人進入iOS的程式世界。
【英文網站】
www.appcoda.com
【中文網站】
www.appcoda.com.tw
【AppCoda開發者社群】
facebook.com/groups/appcodatw
目錄
|CHAPTER 01| 開發工具、學習方法與App點子
1.1 開發App的所需工具
1.2 學習App的方式
1.3 發想App好點子
1.4 UIKit與SwiftUI
1.5 本章小結
|CHAPTER 02| 使用Playground來首次體驗Swift
2.1 Swift的歷史
2.2 開始學習Swift
2.3 在Playground中試驗Swift
2.4 常數與變數
2.5 型別推論
2.6 處理文字
2.7 流程控制
2.8 陣列與字典
2.9 可選型別
2.10 玩玩UI
2.11 本章小結
|CHAPTER 03| 使用Swift與SwiftUI建立你的第一個App
3.1 SwiftUI介紹
3.2 宣告式程式設計 vs 指令式程式設計
3.3 使用SwiftUI建立你的第一個App
3.4 熟悉Xcode工作區
3.5 首次執行你的App
3.6 處理文字
3.7 變更字型與顏色
3.8 運用按鈕
3.9 自訂按鈕樣式
3.10 加入按鈕動作
3.11 堆疊視圖介紹
3.12 了解方法
3.13 你的作業:按鈕與方法的應用
3.14 本章小結
|CHAPTER 04| 使用堆疊視圖設計UI
4.1 VStack、HStack與ZStack介紹
4.2 範例App
4.3 建立新專案
4.4 加入圖片至Xcode專案中
4.5 使用堆疊視圖佈局標題標籤
4.6 使用留白與間距
4.7 使用圖片
4.8 使用水平堆疊視圖來排列圖片
4.9 在圖片下方加入標籤
4.10 使用堆疊視圖佈局按鈕
4.11 設定預覽名稱並橫向預覽
4.12 取出視圖使程式碼有更好的結構
4.13 使用尺寸類別調整堆疊視圖
4.14 保存向量資料
4.15 你的作業:建立新UI
4.16 本章小結
|CHAPTER 05| 原型設計
5.1 在紙上繪出你的App點子
5.2 繪出App線框圖
5.3 使你的草圖 / 線框圖可互動
5.4 常用的原型設計工具
5.5 本章小結
|CHAPTER 06| List與ForEach
6.1 建立一個SimpleTable專案
6.2 建立一個簡單的清單
6.3 使用項目的陣列顯示清單
6.4 將縮圖加到清單視圖
6.5 變更清單視圖的樣式
6.6 顯示清單的另一種方式
6.7 你的作業:各個儲存格顯示不同的圖片
6.8 本章小結
|CHAPTER 07| 自訂清單視圖
7.1 建立Xcode專案
7.2 準備餐廳圖片
7.3 建立基本的清單視圖
7.4 顯示不同的餐廳圖片
7.5 重新設計列佈局
7.6 圖片圓角化
7.7 隱藏清單分隔符號
7.8 使用深色模式測試App
7.9 你的作業:修正問題並重新設計列佈局
7.10 本章小結
|CHAPTER 08| 顯示確認對話方塊及處理清單視圖選取
8.1 建立更優美的列佈局
8.2 查閱文件
8.3 使用狀態管理列的選取
8.4 偵測觸控並顯示確認對話方塊
8.5 了解綁定
8.6 顯示提示訊息
8.7 實作「標記為最愛」功能
8.8 預覽列佈局
8.9 你的作業:支援新功能與移除圖示
8.10 本章小結
|CHAPTER 09| 結構、專案組織與程式文件
9.1 物件導向程式設計的基礎理論
9.2 類別、物件及結構
9.3 結構
9.4 複習FoodPin專案
9.5 建立Restaurant結構
9.6 初始化器的說明
9.7 self關鍵字
9.8 預設初始化器
9.9 使用Restaurant物件的陣列
9.10 組織你的Xcode專案檔
9.11 使用註解來記錄與組織Swift程式碼
9.12 本章小結
9.13 進階參考資料
|CHAPTER 10| 清單刪除、滑動動作、內容選單與動態控制器
10.1 執行列的刪除
10.2 使用滑動動作
10.3 建立內容選單
10.4 SF Symbols介紹
10.5 運用動態控制器
10.6 本章小結
|CHAPTER 11| 運用導覽視圖
11.1 建立導覽視圖
11.2 新增餐廳細節視圖
11.3 從一個視圖導覽到另一個視圖
11.4 使用色調
11.5 自訂返回按鈕
11.6 移除揭示指示器
11.7 本章小結
|CHAPTER 12| 改進細節視圖、自訂字型及導覽列
12.1 快速瀏覽起始專案
12.2 使用自訂字型
12.3 改進細節視圖
12.4 忽略安全區域
12.5 在導覽視圖中預覽細節視圖
12.6 自訂導覽列
12.7 作業:修復錯誤
12.8 本章小結
|CHAPTER 13| 顏色、Swift擴展與動態型別
13.1 自訂顏色
13.2 Swift擴展
13.3 為深色模式調整顏色
13.4 動態型別
13.5 本章小結
|CHAPTER 14| 運用地圖
14.1 了解SwitUI的地圖視圖
14.2 建立自己的地圖視圖
14.3 使用地理編碼器來將地址轉換為座標
14.4 新增標記至地圖
14.5 嵌入MapView
14.6 顯示全螢幕地圖
14.7 禁用使用者互動
14.8 作業①:禁用使用者互動
14.9 作業②:修正導覽列透明度問題
14.10 本章小結
|CHAPTER 15| 動畫與模糊效果
15.1 加入圖片素材
15.2 使用列舉來顯示評分
15.3 實作評分視圖
15.4 應用視覺模糊效果
15.5 顯示評分畫面
15.6 應用動畫來關閉評分視圖
15.7 以滑入動畫為評分按鈕設定動畫
15.8 本章小結
|CHAPTER 16| 運用可觀察物件與Combine
16.1 目前設計的問題
16.2 使用可觀察物件
16.3 在細節視圖中顯示評分
16.4 本章小結
|CHAPTER 17| 運用表單與相機
17.1 了解SwiftUI的文字欄位
17.2 為使用者輸入建立通用表單欄位
17.3 實作餐廳表單
17.4 使用相片庫與相機
17.5 新增工具列按鈕
17.6 顯示新餐廳視圖
17.7 本章小結
|CHAPTER 18| 運用資料庫與SwiftData
18.1 何謂SwiftData
18.2 使用程式碼建立及管理資料模型
18.3 定義FoodPin專案的模型類別
18.4 使用@Query取得紀錄
18.5 從資料庫中刪除紀錄
18.6 修復餐廳細節視圖
18.7 修復評分視圖
18.8 設定模型容器
18.9 處理空清單視圖
18.10 將資料加到持久性儲存器
18.11 更新餐廳記錄
18.12 你的作業:修復錯誤
18.13 本章小結
|CHAPTER 19| 使用Searchable加入搜尋列
19.1 使用Searchable
19.2 將搜尋列加入餐廳清單視圖
19.3 搜尋列的位置
19.4 執行搜尋並顯示搜尋結果
19.5 搜尋建議
19.6 你的作業:加強搜尋功能
19.7 本章小結
|CHAPTER 20| 使用TabView建立導覽畫面
20.1 快速瀏覽導覽畫面
20.2 建立導引視圖
20.3 加入Next及Skip按鈕
20.4 顯示導引視圖
20.5 使用UserDefaults
20.6 本章小結
|CHAPTER 21| 使用標籤視圖及自訂標籤列
21.1 使用TabView建立標籤介面
21.2 調整標籤列項目的顏色
21.3 設定初始視圖
21.4 本章小結
|CHAPTER 22| 使用WKWebView與SFSafariViewController顯示網頁內容
22.1 設計About視圖
22.2 準備連結
22.3 使用連結開啟Safari
22.4 使用WKWebView
22.5 使用SFSafariViewController
22.6 本章小結
|CHAPTER 23| 運用CloudKit
23.1 了解CloudKit框架
23.2 在App中啟用CloudKit
23.3 在CloudKit儀表板中管理紀錄
23.4 使用便利型API從公共資料庫取得資料
23.5 使用操作型API從公共資料庫取得資料
23.6 使用動態指示器來優化效能
23.7 下拉更新
23.8 使用CloudKit儲存資料
23.9 依建立日期來排序結果
23.10 你的作業:顯示餐廳的位置與類型
23.11 本章小結
|CHAPTER 24| App本地化以支援多種語言
24.1 Xcode 15導入字串目錄功能
24.2 加入支援的語言
24.3 使用字串目錄
24.4 測試本地化App
24.5 使用預覽來測試本地化
24.6 為你的文字加入註解
24.7 對通用文字使用String(localized:)初始化器
24.8 本章小結
|CHAPTER 25| 觸覺觸控
25.1 主畫面的快速動作
25.2 使用自訂URL協定處理快速動作
25.3 如果App沒有執行怎麼辦?
25.4 本章小結
|CHAPTER 26| 開發使用者通知
26.1 善用使用者通知來提升客戶參與度
26.2 使用者通知框架
26.3 請求使用者許可
26.4 建立與排程通知
26.5 加入圖片至通知中
26.6 與使用者通知互動
26.7 處理動作
26.8 本章小結
|CHAPTER 27| 在iOS實機上部署與測試App
27.1 程式碼簽章與描述檔
27.2 檢視你的Bundle ID
27.3 在Xcode 中自動簽署
27.4 透過USB部署App至你的裝置
27.5 透過Wi-Fi部署App
27.6 本章小結
|CHAPTER 28| 使用TestFlight進行Beta測試及CloudKit生產環境部署
28.1 在App Store Connect建立App紀錄
28.2 App資訊
28.3 定價與供應狀況
28.4 App隱私權政策
28.5 準備送審
28.6 更新建置版本字串
28.7 準備App圖示
28.8 建立啟動畫面
28.9 App的打包與驗證
28.10 上傳你的App到App Store Connect
28.11 管理內部測試
28.12 管理外部使用者的Beta測試
28.13 CloudKit生產環境部署
28.14 本章小結
|CHAPTER 29| App Store上架
29.1 做好準備與充分測試
29.2 上傳你的App至App Store
29.3 本章小結
|APPENDIX A| Swift基礎概論
A.1 變數、常數與型別推論
A.2 沒有分號做結尾
A.3 基本字串操作
A.4 陣列
A.5 字典
A.6 集合
A.7 類別
A.8 方法
A.9 控制流程
A.10 元組
A.11 可選型別
A.12 為何需要可選型別?
A.13 解開可選型別
A.14 可選綁定
A.15 可選鏈
A.16 可失敗初始化器
A.17 泛型
A.18 泛型型別約束
A.19 泛型型別
A.20 計算屬性
A.21 屬性觀察者
A.22 可失敗轉型
A.23 repeat-while
A.24 for-in where子句
A.25 Guard
A.26 錯誤處理
A.27 可行性檢查
|CHAPTER 01| 開發工具、學習方法與App點子
1.1 開發App的所需工具
1.2 學習App的方式
1.3 發想App好點子
1.4 UIKit與SwiftUI
1.5 本章小結
|CHAPTER 02| 使用Playground來首次體驗Swift
2.1 Swift的歷史
2.2 開始學習Swift
2.3 在Playground中試驗Swift
2.4 常數與變數
2.5 型別推論
2.6 處理文字
2.7 流程控制
2.8 陣列與字典
2.9 可選型別
2.10 玩玩UI
2.11 本章小結
|CHAPTER 03| 使用Swift與SwiftUI建立你的第一個App
3.1 SwiftUI介紹
3.2 宣告式程式設計 vs 指令式程式設計
3.3 使用SwiftUI建立你的第一個App
3.4 熟...