快速精通 iOS 15 程式設計:從零開始活用 Swift 與 SwiftUI 開發技巧 Beginning iOS Programming with Swift and SwiftUI

Simon Ng 著 王豪勳 譯

  • 快速精通 iOS 15 程式設計:從零開始活用 Swift 與 SwiftUI 開發技巧-preview-1
  • 快速精通 iOS 15 程式設計:從零開始活用 Swift 與 SwiftUI 開發技巧-preview-2
  • 快速精通 iOS 15 程式設計:從零開始活用 Swift 與 SwiftUI 開發技巧-preview-3
  • 快速精通 iOS 15 程式設計:從零開始活用 Swift 與 SwiftUI 開發技巧-preview-4
  • 快速精通 iOS 15 程式設計:從零開始活用 Swift 與 SwiftUI 開發技巧-preview-5
  • 快速精通 iOS 15 程式設計:從零開始活用 Swift 與 SwiftUI 開發技巧-preview-6
  • 快速精通 iOS 15 程式設計:從零開始活用 Swift 與 SwiftUI 開發技巧-preview-7
  • 快速精通 iOS 15 程式設計:從零開始活用 Swift 與 SwiftUI 開發技巧-preview-8
  • 快速精通 iOS 15 程式設計:從零開始活用 Swift 與 SwiftUI 開發技巧-preview-9
  • 快速精通 iOS 15 程式設計:從零開始活用 Swift 與 SwiftUI 開發技巧-preview-10
  • 快速精通 iOS 15 程式設計:從零開始活用 Swift 與 SwiftUI 開發技巧-preview-11
  • 快速精通 iOS 15 程式設計:從零開始活用 Swift 與 SwiftUI 開發技巧-preview-12
  • 快速精通 iOS 15 程式設計:從零開始活用 Swift 與 SwiftUI 開發技巧-preview-13
  • 快速精通 iOS 15 程式設計:從零開始活用 Swift 與 SwiftUI 開發技巧-preview-14
快速精通 iOS 15 程式設計:從零開始活用 Swift 與 SwiftUI 開發技巧-preview-1

買這商品的人也買了...

商品描述

【本書特色】
從零開始掌握最新推出的SwiftUI框架與開發技巧
快速強化你的iOS App開發實戰能力
逐步實作出具有精美UI、實用功能及支援雲端資料傳輸的「FoodPin」App


♚使用Xcode 13 & iOS 15 & Swift 5.5開發
♚了解最新版Xcode開發工具
♚使用清單視圖、堆疊視圖設計UI與深色模式
♚快速學習Swift App程式編寫、物件導向與SwiftUI程式設計
♚運用Core Data與CloudKit存取資料
♚使用地圖與相機
♚實作動態視覺效果
♚開發使用者通知
♚App本地化
♚App測試與上架程序


【內容簡介】
作者分享多年來的iOS開發經驗,並集結廣受歡迎的iOS教學文章,以SwiftUI框架重新編寫,精心設計出30個章節。由基礎入門開始,逐步實作出具有精美UI及實用功能、支援雲端資料傳輸與深色模式的「FoodPin」App,而且「FoodPin」App完全支援新推出的iOS 15以及iPhone 13/13 Pro、iPad Pro。

本書首先介紹Swift語言的觀念,再教導你使用Swift與SwiftUI建立你的第一個App,然後你會學到規劃App的原型,並且本書每一章中會針對iOS開發的各個面向提供提示、技巧以及許多需要親手操作的作業,最後你可以從無到有來開發出一個真正的App。本書也會教導你如何使用Xcode來佈局使用者介面,並熟悉iOS 15 SDK的基本API,跟著本書的內容學習,將可獲得真實開發App的體驗,且打好Swift程式語言的基礎,掌握住程式開發的訣竅。

本書是為了Swift與iOS程式設計的初學者而撰寫,不論你是想學習新程式語言的程式設計師,或是想要將你的設計轉換為iOS App的設計師,這本書絕對是你的首選。

【本書精采內容】
✪Swift基礎介紹。
✪利用Playground快速學習Swift。
✪使用Swift與SwiftUI從無到有打造第一個App。
✪學習App原型設計與前置規劃。
✪建立App與SwiftUI的常用元件。
✪了解堆疊視圖建立自適應UI。
✪設計適合所有螢幕尺寸的App,讓UI相容最新的iPhone 13/13 Pro與iPad Pro。
✪設計導覽列大標題。
✪自訂表格視圖儲存格來打造更優美的App。
✪學習自訂清單視圖。
✪運用導覽視圖。
✪了解物件導向程式設計。
✪建立動畫與視覺效果。
✪使用相機與相片庫。
✪運用地圖並學會最新的標註功能。
✪使用搜尋列做關鍵字搜尋。
✪建立導覽畫面來讓使用者迅速熟悉App。
✪使用Searchable加入搜尋列。
✪在App嵌入瀏覽器與網頁視圖。
✪運用使用者通知來提升App黏著度。
✪運用觸覺觸控及內容選單。
✪儲存資料至資料庫。
✪整合運用CloudKit。
✪App多國語系化。
✪在實機上部署與測試App,並且學會WiFi部署功能。
✪使用TestFlight安排Beta測試。
✪在App Store上架你的App。

【好評推薦】
「去年暑假時,我沒有錄取高科技公司的實習機會,因此我選擇購買了本書,並利用整個暑假期間學習SwiftUI,我很快就學會了,這本書真的超棒。我已經製作了好幾個App,Receipted是我第一個在App Store上架的App。當我今年我再次開始參加實習工作的面試時,我展示了自己做過的SwiftUI App,結果獲得八家公司的實習機會!」

— Hunter Kingsbeer


「我開發iOS App至今大約一年的時間,這裡非常感謝AppCoda團隊,我購買Swift一書後,快速增強了我的生產力,並瞭解了整個Xcode與iOS的開發程序。所學到的比起我在決定購買使用AppCoda的書籍之前,花了許多時間透過在StackOverflow與Github搜尋學習來得多。所有的資訊都會更新且精確,內容易於閱讀與遵循,書中所用的範例專案也非常棒,我強力推薦此書,若是你想要開始快速學習Swift的話,不用再等了。」

—David Gagne,Bartender.live作者


「這本書寫得非常好,簡潔有力,書中的範例非常棒且貼近真實的應用,幫助我完成第一個App,並於App Store上架,內容給我許多進一步強化與更新App的想法。我將它作為我的參考指南,也很感謝每當Swift與iOS有做變更時,都能收到更新。」

—David Greenfield,ThreadABead作者


「多年來,我一直在尋找良好的學習資源,來幫助我加強App的開發技巧。而這本書真的拯救了我,這是我寫程式十年來所讀過的書中,說明得最好的一本,內容容易理解,且切中所有要點。說再多的謝謝,都不足以表達我對於作者撰寫本書的感激之情。」

—Eric Mwangi


「有見解、實用與學習動機。這本書充滿知識性與有深度的主題,書中對於iOS開發的各個面向提供了提示與技巧,並鼓勵學生 / 讀者能夠持續往前,不會害怕去深入理解觀念,真的是太棒了!」

—Moin Ahmad,Guess Animals作者


「這本書教導我們如何建立我們想要的App,書中的內容規劃得很好,每一章的篇幅拿捏得恰到好處,不會太過冗長而無法消化,想要學習開發第一個App並進階學習的話,我強烈推薦這本內容超棒的好書。」

—Stephen Donnelly,Rascalbiscuit總監


「這是我最初在學習Swift時所找到的學習書籍之一。作為一個初學者,這本書非常容易學習與理解。整本書以貼近真實生活的範例來建立App,這種學習方式真是太天才了,最後也能夠實用它。我學習了很多,也運用了很多其中的內容於我的App中。我發現我會常常會回去參考此書,這真的是一本很棒的作品。」

—Bill Harned,Percent Off作者

作者簡介

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 使用不同的裝置預覽UI
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 準備Restaurant圖片
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 使用State管理列的選取
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 本章小結

|CHAPTER 15| 動畫與模糊效果
15.1 加入圖片素材
15.2 使用列舉來顯示評分
15.3 實作評分視圖
15.4 應用視覺模糊效果
15.5 顯示評分畫面
15.6 應用動畫來關閉評分視圖
15.7 以滑入動畫為評分按鈕設定動畫
15.8 你的作業:隱藏導覽列的返回按鈕
15.9 本章小結

|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| 運用Core Data
18.1 何謂Core Data?
18.2 Core Data堆疊
18.3 在SwiftUI專案中使用Core Data
18.4 建立持久性控制器
18.5 建立託管物件模型
18.6 定義模型類別
18.7 使用@FetchRequest來取得紀錄
18.8 從資料庫中刪除紀錄
18.9 處理資料預覽
18.10 修正餐廳細節視圖
18.11 修正評分視圖
18.12 處理空清單視圖
18.13 將資料加到持久性儲存器
18.14 更新餐廳紀錄
18.15 你的作業:修正錯誤
18.16 本章小結

|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 App國際化
24.2 你的作業:修改操作介面文字
24.3 加入支援的語言
24.4 匯出本地化檔案
24.5 匯入本地化檔案
24.6 測試本地化App
24.7 使用預覽來測試本地化
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 可行性檢查