Copyright ©2024 by AppCoda Limited
版權所有, 未經出版商書面許可,不得以任何方式使用,複製,存儲或傳播本書的任何內容。
AppCoda Limited 出版
好評推薦
「因為本書我找到了一個實習機會與一份工作,跟著本書學習一週後,我立即能夠開發自己的 App !四個月後,我獲得了 Ancestry 所提供的實習機會,成為一個 iOS 開發者,這真的是我做過最好的一項投資。」
- Adriana,Ancestry iOS 開發者
「 基礎與進階這兩本書的內容可以了解所有 App 的設計、程式語法、測試與發佈的觀念, 你需要的是意。」
- Rich Gabrielli
「我已經發表了 8Cafe 與 8Books App,這些App 都是啟蒙於 AppCoda Swift iOS 這本優秀的書,很高興跟你的團隊一起學習發展,事實上,我的許多App / 遊戲的靈感與技術來自於你的基礎與進階的 Swift 著作,對我與許多的開發者而言,你的才華、知識、專業與不吝分享,簡直是上天所恩賜的禮物。」
- Mazen Kilani, creator of 8Cafe
「我開發 iOS App 至今大約一年的時間,這裡非常感謝 AppCoda 團隊,我購買 Swift 一書後,快速增強了我的生產力,並瞭解了整個 Xcode 與 iOS 的開發程序。所學到的比起我在決定購買使用 AppCoda 的書籍之前,花了許多時間透過在 StackOverflow 與 Github 搜尋學習來得多。所有的資訊都會更新且精確,內容易於閱讀與遵循,書中所用的範例專案也非常棒。我迫不及待強力推薦此書,若是你想要啟動學習Swift 的話,不用再等了。」
- David Gagne,Bartender.live 作者
「AppCoda 的書令人非常激賞,內容寫得非常清楚,假設沒有任何概念,書中的內容會鼓勵你自行思考並吸收這些觀念,沒有其他比這更詳盡的學習資源了。」
- 日本 Sheehan,Ingot LLC
「這本書寫得非常好,簡潔有力,書中的範例非常棒且貼近真實的應用。幫助我完成第一個App,並於 App Store 上架,內容給我許多進一步強化與更新App 的想法。我將它作為我的參考指南,也很感謝每當Swift 與 iOS 有做變更時,都能收到更新。」
- David Greenfield,ThreadABead 作者
「非常感謝寫了這麼棒的書!這本書幫助我開發了第一個真正的App,自從在 App Store 上架後,不到兩個月就賺進了美金 200 元,我也獲得了一個在行動部門進行軟體開發的工作。再次感謝這本超棒的書,如果有人問我是怎麼學習程式的,我一定會盡力推廣此書。」
- Rody Davis,Pitch Pipe with Pitch Assistant 開發者
「這本書寫得很棒!我在 Udemy 有購買另一個課程,但是講師並沒有太多開發者的背景,而我知道作者是一個有經驗的開發者。此外,內容的說明非常清楚。」
- Carlos Aguilar,Roomhints Interior Design Ideas 作者
「多年來,我一直在尋找良好的學習資源,來幫助我加強 App 的開發技巧。而這本書真的拯救了我。這是我寫程式十年來所讀過的書中,說明得最好的一本。內容不但容易理解,且切中所有要點。說再多的謝謝,都不足以表達我對於作者撰寫本書的感激之情。」
- Eric Mwangi
「這本書以許多的範例來闡釋,對於有經驗但想入門 Swift 的開發者來說,也非常有幫助。」
- Howard Smith, Flickitt
「沒有這本書,我無法成為一個iOS 開發者。」
- Changho Lee, SY Energy
「我想要學習以 Swift 來開發 iOS 程式。而我找到了這本書,此書絕對是學習 iOS App 開發的絕佳方式,當你有些程式背景,在幾天內就能夠做出一些 App,若你不是的話,一 樣也能夠學會 App 的開發。」
- Leon Pillich
「這是我在網路上所找到的最佳書籍。內容非常容易理解,三年前我開始學習寫程式, 而今我的 App 能夠完成,都是因為這本書。」
- Aziz,Kuwait Concepts 工程師
「有見解、實用與學習動機。這本書充滿知識性與有深度的主題,書中針對 iOS 開發的各個面向提供了提示與技巧,並鼓勵學生/讀者能夠持續往前,不會害怕去深入理解觀念,真的是太棒了!」
- Moin Ahmad,Guess Animals 作者
「這本書教導我們如何建構我們想要的 App。書中的內容規劃得很好,每一章的篇幅拿捏得恰到好處,不會太過冗長而無法消化,想要學習開發第一支 App 並進階學習的話,我強烈推薦這內容超棒的好書。」
- Stephen Donnelly,Rascalbiscuit 總監
「我試過多種學習資源,包括了史丹佛的課程,雖然我已經從其他資源學過了如自動佈局、委派、Segue 等主題,但這是第一個讓我能夠真正理解這些內容的一本書。」
- Nico van der Linden,Expertum SAP 開發者
「過去三年以來,我已經購買了超過十多本有關 Objective C 與 Swift 的書。我目前在一所高中教授電腦科學先修課程,我主要是教授 Java 語言,不過我也教授其他數種程式語言,所以我會收藏大量的教科書,雖然我過去幾年所購買的其他書籍與線上教學影片的內容也很不錯,但是我發現 AppCoda 所出版的書更勝於這些教材。作者在書中對於某個主題的表達方式,就好像我在課堂上接受他的指導一樣,而不只是閱讀書面上的文字而已。最棒的是他的寫作方式就好像他正在跟你說話一樣,而不只是單純的介紹。」
- Ricky Martin,Gulf Coast 高中
「這是我最初在學習 Swift 時所找到學習書籍之一。作為一個初學者,這本書非常容易學習與理解。整本書以貼近真實生活的範例來建構App,這種學習方法真是太天才了,最後也能夠實用它。我學習了很多,也運用了很多其中的內容在我的 App 中。我發現我會常常會回去參考此書,這真是一本很棒的作品。」
- Bill Harned,Percent Off 作者
「 iOS 開發最棒的書籍之一,絕佳的內容編排,容易跟著實作,是很棒的開發學習良伴。」
- Ali Akkawi,iOS 與 Android 行動 App 自由工作者
「我喜歡本書,內容編排得非常有結構。幾乎涵蓋了最新的觀念。」
- Barath V,首席iOS 開發人員,Robert Bosch LLC
「我已經購買過 iOS 11 Swift 程式入門與進階版一書,我是由 Java 開發轉成 iOS 的行動應用開發者,這些書真的幫助我學到如何建構行動應用程式,在入門版中的 FoodPin 應用程式範例,可以學到建立一個 App 所用到的常用元件,這是一個很棒的學習方式,即使我已經從事 iOS App 開發工作三年之久,我還是常常回來參考 AppCoda Swift 的書籍。」
- Stacy Chang
「或許沒有這本書,我也能完成我的 App ,但花費的時間可能會為更久,也許自己都不會相信我可以做得這麼好,如果沒有這本書,我的 App 也不會出現在 App Store 了,以上所述為真,繼續加油吧!」
- Marc Estwick
「去年暑假時,我沒有錄取高科技公司的實習機會,因此我選擇購買了本書,並利用整個暑假期間學習SwiftUI,我很快就學會了,這本書真的超棒。我已經製作了好幾個 App,「Receipted」是我第一個在 App Store 上架的 App。當我今年我再次開始參加實習工作的面試時,我展示了自己做過的 SwiftUI App,結果獲得八家公司的實習機會!」
- Hunter Kingsbeer
序 言
多年前,人們會問:「Swift 已經適合進行 App 開發了嗎?」
現在每個人都知道 Swift 是開發 iOS App 時需要學習的程式語言。我對 Swift 程式設計有著真誠的熱情,對這門語言的欽佩不僅僅是因為作為一位 Swift 程式設計講師或推廣我的課程 / 書籍的願望所驅使。憑藉著 15 年以上的各種程式語言程式設計經驗,我可以自信地說:「 Swift 已經成為我目前最喜歡的程式語言,其精心設計的結構、簡化的語法且簡潔無瑕是其具有吸引力的關鍵因素之一。與傳統的 Objective-C 相比,Swift 易於學習並提高 iOS App 開發的效率,皆突顯了選擇它的優勢。
Swift 由 Apple 於 2014 年6 月推出,經歷了重大更新和改版。至今,蘋果公司已經隨著 Xcode 15 一起發布了Swift 程式語言 5.9 版本,並導入了豐富的功能。從第一版發布以來, 經過 9 年多的發展,Swift 不再是一個全新的程式語言,它已經發展成為強大且完善的程式語言,有望解決跨 iOS、macOS、watchOS 及 tvOS 等應用程式的開發問題。值得注意的是,Lyft、LinkedIn、Mozilla 等公司已採用 Swift 進行應用程式開發,無論你是計畫要開發下一個 iOS App,還是想從事 iOS App 開發工作,Swift 無疑都是值得學習及使用的程式語言。
本書介紹了學習 iOS App 開發所必須學會的內容。請記住,Swift 只是一個程式語言, 要開發 App,你需要的不只是學習程式語言而已,還有更多需要學習的內容。除了Swift 的介紹,本書將會教導你如何使用 SwiftUI 來佈局使用者介面,並熟悉 iOS SDK 的基本 API,最重要的是你可從無到有開發一個真正的 App,以學習 Swift 程式語言。
本書涵蓋了 iOS 應用程式開發所需學習的所有內容。然而,重要的是要記住 Swift 只是一個程式語言,要成功開發iOS App,你需要獲取 Swift 以外的知識。除了介紹 Swift 以外,本書將會教導你如何使用SwiftUI 來設計使用者介面,並掌握 iOS SDK 的基本 API, 最重要的是透過從頭開始建立一個真正的 App,你將獲得實用的 Swift 程式設計技能。
對於那些沒有任何程式設計經驗的初學者而言,你可能想知道是否可以學習 Swift 程式設計,並建立一個功能完善的 iOS App。
自從Swift 釋出以來,我就使用Swift 進行程式設計,因此我可以自信地說:「與Objective-C 相比,Swift 非常容易理解,而且對於初學者來說更容易掌握。」雖然不是每個人都能成為出色的開發者,但是我堅信任何人都可以學習程式設計,並使用Swift 開發App,這一切只需努力付出、保持毅力、主動學習與採取行動。有了正確的心態和努力, 您可以踏上一段充實的Swift 程式設計及應用程式開發之旅。
我在10 年前創辦 AppCoda,然後開始每週規律地刊登 iOS 程式設計教學,從那時起, 我已經出版了數本iOS 應用程式開發的書籍。一開始,我認為想要學習應用程式開發的是那些已經具備程式開發經驗與技術背景的人,有趣的是,來自不同背景的人們都熱衷於建立自己的 App。
我我有一位法國讀者,他的職業是外科醫生,他從零程式設計經驗開始,來推出他的第一個 App,該 App 是讓任何人都能免費分享及宣傳活動的資訊。另外一位讀者職業是飛行員,他在幾年前開始學習 iOS 程式設計,現在他已經建立了一個可以讓自己及其他飛行員使用的 iPhone App。而 Boozy 是一個能夠尋找歡樂時光、每日優惠及早午餐的 App, 這個 App 是由一位法學院輟學的學生所開發的,由於 Boozy App 的開發者在華盛頓地區找不到一個可以喝飲料的好去處,所以她決定做一個 App 來滿足實際需求,同樣的,當她有了這個想法時,還不知道如何寫程式,於是她從頭開始慢慢地跟著我們一起學習。
我時常收到有人想要建立一個 App 的 Email,這些 Email 的內容通常是像這樣:「我有一個很棒的 App 點子,但是我不知道要從哪裡開始進行?我沒有程式開發技術,我可以從頭開始學習,讓我的想法成真嗎?」
我從這些真正鼓舞人心的故事中學到,你不需要具備電腦科學或工程的學位才能夠建立一個 App,這些讀者都有一個共同點,就是他們都會堅定不移地採取行動,努力讓一切成真,而這正是你所需要的。
那麼,你已經有 App 的點子嗎?我相信你一定可以自己做出一個 App。如果你真的對建立 App 這件事充滿熱情且專心致力完成的話,絕對沒有任何事情可以阻止你學習及實現目標。在此引用《最後的演說》(Last Lecture )中我最喜歡的格言之一作為總結:
Brick walls are there for a reason: they let us prove how badly we want things.
人生中那些豎立在前面阻擋你的牆是有原因的,它讓我們證明我們有多渴望得到所想要的東西。
- Randy Pausch
最後,感謝選擇本書的朋友,我希望你會喜愛閱讀本書,前上它可以幫助你在 App Store 推出你的第一個 App。若是你願意與我分享你的應用程式開發之旅的故事,可以透過這個 Email:[email protected] 來告知我,我很高興收到你的來信,並了解你的經驗。
Simon Ng
AppCoda 創辦人
關於本書
本書是專門為有 App 點子、但不知道該如何著手的讀者所設計的,它全面涵蓋 Swift 程式設計,引導你從頭開始建立一個真正的 App。從Swift 與 SwiftUI 的基礎知識開始, 你將逐步進行原型設計及建立 App。
本書的每一章會重點介紹如何使用 iOS API 來實現不同的功能,學習完本書後,你將擁有一個功能齊全的 App。在整個程式設計的旅程中,你將學到基本技能,例如:在清單視圖中顯示資料、使用堆疊視圖進行UI 設計、建立動畫、處理地圖、開發自適應 UI、在本地端資料庫儲存資料、iCloud 資料上傳、使用 TestFlight 進行 Beta 測試等。
本書提供大量的實作練習及專案,讓你可以編寫程式碼、除錯及測試你的 App,雖然這需要付出相當的努力,但絕對是一個有益的經驗,最後你將紮實掌握 Swift 5.9、Xcode 15 與 iOS 17 程式設計,最重要的是你將能夠開發App,並將其發布至 App Store。
閱讀對象
本書專為沒有程式設計經驗的初學者所量身打造。它也適合想要學習新語言的程式設計師、想要將他們的設計轉換為 iOS App 的設計師、或想要學習程式技術的企業家。
如果你是已經熟悉使用 macOS 和 iOS 的讀者,那麼本書將為您提供踏上 Swift 程式設計之旅的所需知識。
SwiftUI vs UIKit
SwiftUI 的導入,對於現有的 iOS 開發者及有興趣學習 iOS 應用程式開發的人來說,產生了巨大的影響,這無疑是近年來 iOS 應用程式開發領域的最重大變化。然而,這個轉變可能會讓初學者應該專注於哪個UI 框架感到困惑,問題來了:「你應該學習哪一個框架或是從哪一個框架開始學起?」
決定學習哪種框架之前,你必須先思考自己學習 iOS 程式設計的動機,並且確定你的目標。你是想成為一個專業的 iOS 開發者並就業,或者你只是想學習新事物來作為一種愛好?
如果你想成為一個專業的 iOS 開發者,並以此專業來求職時,則建議你學習這兩個框架。App Store 上的大多數App 都是使用 UIKit 開發的,因此,在專業環境中,你很有可能會處理基於 UIKit 的 App,在這種情況下,從 UIKit 開始,然後再轉換到 SwiftUI,將
是一個合適的方式。另一方面,如果你將程式設計作為一種愛好,或者只是將開發 App 作為業餘專案,則我建議你直接從 SwiftUI 開始。
本書將教你如何使用 SwiftUI 框架來建立一個真正的 App,如果你計畫從 SwiftUI 開始, 則你可以繼續閱讀本書的第1 章。而我的另一本著作《快速精通 SwiftUI》適合有基本的開發經驗,其每個章節所開發的程式都是獨立的。
本文摘自《iOS 17 App程式設計實戰心法》(SwiftUI)》一書。如果你想更深入學習Swift程式設計和下載完整程式碼,你可以從 AppCoda網站 購買完整電子版。