課程敘述
--- 以下課程敘述 ---
iOS 系統是Apple 蘋果公司為iPhone等行動裝置開發的作業系統,開發使用的程式語言為Swift與Objective-C,目前官方推薦語言為Swift 5,標準整合開發環境為免費的Xcode。
(iPad現在改為以iOS為基底的 iPadOS,但基本開發模式相同)
Swift 雖然以程式語言來說年紀較輕,但其語法已經相當穩定,自Swift 3以後基本語法調性沒有大的改變,有更新多半是因為作業系統有新功能或是增加語法,但向下相容相當不錯,所以學習上不會有每年都要重學的困擾。
對於完全的程式新手來說,可能會有不知道從【手機APP】或是【網站】開始學習比較好。其實很簡單,因為「有興趣」是保持學習動力的唯一方法。所以對那個有興趣就學那個才是最佳解。【網站】屬於開發與接觸使用者比較容易的方式,但是要比黏著度,還是【手機APP】會比較高。【手機APP】現在的趨勢就是【超級遙控器】與【遊戲機】,吃喝玩樂需求都可以在上面解決,更是你的聯絡通訊管道和【錢包、信用卡】。
延伸閱讀:我想寫手機程式,但我不知道該選iOS還是Android
本課程方向會偏向現在流行的與伺服器溝通的手機商業型APP,常見例子為購物、叫車APP、雲端串流音樂、影像APP、線上課程與會員訂閱APP等都需要伺服器後台來做管理。遊戲類型APP已不適合單人完成,因為單人能完成的門檻低且App store上已有大量此類型遊戲。大型遊戲通常需要遊戲引擎,在開發規劃上面完全不同。所以本課程不會著重於此方向。
另外,現在雖然有很多跨平台開發方案,但是任何號稱跨平台的方案最終皆需要有蘋果電腦的作業系統MacOS環境才能編譯,所以如果只是要避開MacOS做開發的話這些方案也是做不到的。而且跨平台方案在UI(使用者介面)多半沒有辦法避開為個別作業系統分別製作的程序,因為在底層iOS與Android的UI就是長得不一樣,UI動作行為也有差異,所以雖然個別專案情況不同,但是要完成專案可能比原生Swift / Android 還要複雜許多。
延伸閱讀:
有網站就不需要APP?放棄APP也放棄了超高價值的融入生活的再行銷方式(iOS, Android)
補充說明:
章節「iOS 進度條課程播放 APP 初版」,所使用的技術為「前面」各章節技術的統整。但因為製作上架用的 App 是需要修整滿多毛邊細節太花時間,就沒辦法向其他章節一樣逐步寫給同學看,主要是重點講解,但是一樣會展現程式碼,讓同學了解到真的使用前面章節所講的技術就可以完成 App 了。
課程難度
入門,此課程不需任何程式經驗。
請參閱課程需求
課程需求
1. 擁有Apple 蘋果系列電腦
以Macbook pro, iMac, iMac Pro, Mac mini, Mac Pro 為佳
但是Macbook air 與 Macbook 亦可,課程不會進行大量資源運算
如新購電腦,可以講師上課電腦 Macbook Pro 13", i5 8GB RAM, 256 GB SSD 做為參考
2. 使用過手機或平板
非必要,但會幫助學習
1. 擁有 iPhone 或是 iPad, 借得到也可以
課程95%以上在電腦中模擬器進行,但是如果輸入iPhone或iPad可以更有開發APP的感覺
2. 操作過iPhone、iPad
範例章節【建立iOS 購物APP - 以WooCommerce為後台】中雖然使用到WordPress與WooCommerce做為 Web API 後台,但是不需要事先了解相關的使用方式,課程有用到的操作都有錄影示範。
不過如果對完整的iOS + WordPress商業解決方案有興趣的話(多以小型專案為主,適合接案),也相當歡迎各位參加WordPress課程(但是跟「iOS工程師」沒有關係)。
課程目標
1. 學習 Swift 基礎語法
2. Xcode UI元件操作
3. 多個小型專案實作練習
4. 後台資料串接
5. 實作與伺服器溝通的APP
課程特點
課程使用 iOS 13 與 Swift 5 進行
從基礎語法與UI畫面元件開始教起,最後學會如何獨立開發iOS程式,實現製作自己的手機APP。
iOS APP 開發偏向容易上手,故自訂題目開發小型程式並不困難。對新手而言較困難的會是配合原本既有的軟體服務開發出手機版本,例如已經有網站、已經有實體線上商店...等。尤其是配合有軟體網站後台API之服務,對新手而言並不容易有此開發經驗。
本課程最終目標為實現進度條本身使用之iOS APP課程播放器簡易版。並搭配數個小型程式逐步完成功能,例如自製 WooCommerce 商店管理程式,音樂影片播放程式...等。與進度條其他後台網站課程完美銜接。
(參與此課程不需了解後台運作,純新手也可以學會,畢竟在工作中App與網站後台通常由不同工程師負責,但是如果對兩邊技術都了解會有加成的效果)
第一章 (總長0.5小時)
-
play_arrow
01. iOS Swift課程介紹
07:02 -
play_arrow
02. Xcode 安裝與開發中版本介紹
04:05 -
play_arrow
03. 展示Xcode專案與Playground, 基本的iOS模擬器使用介紹
16:59
第二章 (總長5.0小時)
-
play_arrow
01. 基礎語法章節介紹與課程進行方式
02:34 -
play_arrow
02. 專案設定、程式開發與命名的注意事項
15:04 -
play_arrow
03. Print函數與字串組成
15:49 -
play_arrow
04. 整數加, 減, 乘法
10:45 -
lock
05. 註解與命名法
10:33 -
lock
06. 小數、整數(Int)與雙精度浮點數(Double, Float)
11:01 -
lock
07. 除法、餘數與邊界條件,初探條件判斷
16:11 -
lock
08. 布林值、條件判斷式與關係運算子(if - else)
18:12 -
lock
09. let、var與數學運算的簡寫
10:44 -
lock
10. else-if 與順序問題
08:15 -
lock
11. 邏輯運算子(&&, ||)
10:30 -
lock
12. 初探Optional
12:33 -
lock
13. Array 陣列(一), 基本介紹
09:49 -
lock
14. Array 陣列(二), 加入值的幾種方式與初探Method方法 (append, insert)
15:04 -
lock
15. Array 陣列(三), 移除值與尋找值的位置(remove, removeLast, firstIndex)
08:03 -
lock
16. 迴圈 (while, for, enumerated)
18:12 -
lock
17. 利用表格練習雙重陣列與雙重迴圈
18:22 -
lock
18. Dictionary 字典(一)
13:24 -
lock
19. Dictionary 字典(二), 巢狀Dictionay
23:34 -
lock
20. 函數function(一), 基本介紹
13:37 -
lock
21. 變數範圍(Scope)
19:35 -
lock
22. 函數function(二), 利用函數整理範例
18:43
第三章 (總長5.9小時)
-
play_arrow
01. 建立專案與預覽注意事項,顯示HelloWorld
19:20 -
play_arrow
02. 專案檔案講解,程式基本運作邏輯
18:40 -
play_arrow
03. 專案支援版本設定與API版本問題
08:07 -
play_arrow
04. 按鈕介紹,新手常犯的IBAction忘記斷開連結導致閃退
18:51 -
play_arrow
05. 初探自動佈局與約束條件,簡單計數器(Auto Layout, Constraint)
15:14 -
lock
06. 增加多個按鈕,探討是否有更好的排列限制方式
16:29 -
lock
07. 初探Storyboard XML Source Code
07:26 -
lock
08. UIView與較容易整理的Constraints使用方式
22:21 -
lock
09. 加入第二個UIView Controller, Storyboard進入點與segue畫面轉換的使用
10:58 -
lock
10. 介紹Stepper, 用Button來製作Stepper功能
21:30 -
lock
11. 加入圖片Aseet,介紹UIImageView與置換UIButton圖片
20:18 -
lock
12. 客製化圖片按鈕,初探UITapGestureRecognizer與動畫
27:48 -
lock
13. 頁面排版stack view介紹
14:30 -
lock
14. UITableView基本使用(一)
23:58 -
lock
15. UITableViewCell 介紹與簡易客製化
20:39 -
lock
16. UITableView 編輯模式與增加減少欄位, 初探UITextField
30:51 -
lock
17. 利用Protocol概念讓TableViewCell與TableView溝通
12:15 -
lock
18. 利用UIViewController控制UITableView
23:14 -
lock
19. 介紹UINavigationController與操作
14:59 -
lock
20. 介紹UITabBarController與操作
04:45
第四章 (總長6.0小時)
-
play_arrow
01. Class基本使用方式(一)
11:08 -
lock
02. Class基本使用方式(二), 加入properties與init()
20:21 -
lock
03. Class基本使用方式(三), 繼承與Override
19:51 -
lock
04. Protocol的基本使用,delegate、繼承與extension.
10:01 -
lock
05. Struct的基本介紹
06:52 -
lock
06. Swiftch case 介紹,where關鍵字的使用
12:56 -
lock
07. enum 列舉的基本介紹
14:27 -
lock
08. Class基本使用方式(四), Property的setter與getter (包含 willSet, didSet).
16:26 -
lock
09. 設計模式之工廠模式 (Design Pattern factory mode)
10:36 -
lock
10. 閉包Closures語法介紹
16:29 -
lock
11. 以專案來學習,建立節奏鼓機,初探Timer
22:28 -
lock
12. 利用AVAudioPlayer播放音樂(AVFoundation, Bundle)
24:11 -
lock
13. 再包裝AVAudioplayer,建立自己的Player Class
14:35 -
lock
14. 聲音選擇播放器,解決init與didSet的問題(defer, enum)
17:15 -
lock
15. 計時節拍器,初探RunLoop(Timer)
18:44 -
lock
16. 優化聲音播放器,解決同步發聲問題
09:02 -
lock
17. 加入音符控制
13:28 -
lock
18. 用 UIPickerView 來做選擇器,讓Segue跳頁時傳參數
27:03 -
lock
19. 顯示與隱藏 PickerView
17:16 -
lock
20. 建立多個相同按鈕與資料同步
18:06 -
lock
21. 同時播放多個聲音頻道,利用UserDefaults紀錄
12:39 -
lock
22. 加入BPM選擇器,嘗試使用containerView
23:29
第五章 (總長9.8小時)
-
play_arrow
01. 影音播放APP章節介紹
06:01 -
lock
02. 建立常見影音APP基本UI(一),自製Navbar 與 TabBar 作頁面切換
30:27 -
lock
03. 建立常見影音APP基本UI(二),Navbar 動態顯示與利用TableView做切版
31:30 -
lock
04. 建立常見影音APP基本UI(三),UICollectionView與UITableView的共同使用
32:06 -
lock
05. 建立常見影音APP基本UI(四),第二種 UICollectionView 與 UITableView 的共同使用元件製作
38:39 -
lock
06. 測試APP UI 於iPhone SE 與 iPad 並且修正
09:06 -
lock
07. 用Timer模擬讀取資料,完成UI選取資料功能
23:14 -
lock
08. 建立Model層方便操作資料
10:51 -
lock
09. 巢狀Model 與 View 顯示
20:34 -
lock
10. Web API JSON格式簡介,用Youtube Data API做範例
14:18 -
lock
11. 讀取Bundle內json檔與利用VSCode建立簡易開發用Server
14:17 -
lock
12. 介紹Youtube影片資料用途與來源
08:07 -
lock
13. 建立Model URL Service
22:01 -
lock
14. 建立影片個別快取與頁面快取(Cache)
31:25 -
lock
15. 單例模式(Singleton)的運用,在UI顯示影片資料
14:59 -
lock
16. 多執行緒(Thread)下同步(Synchronized )與非同步(Asynchronized)的議題,iOS與JavaScript的不同
14:34 -
lock
17. URLSession與closure @escaping, 解決Thread UI同步問題(DispatchQueue)
25:14 -
lock
18. 加入前置ViewController控制資料讀取順序
16:40 -
lock
19. 讀取所有播放清單(Playlists)並顯示資料
26:06 -
lock
20. 修正播放清單顯示問題
11:22 -
lock
21. 多字數下UILabel的使用方式與參數調整
11:45 -
play_arrow
22. 初探WKWebView, 利用WKWebView來播放Youtube影片
15:41 -
lock
23. CocoaPods介紹與安裝使用
14:23 -
lock
24. 利用Youtube 函式庫與WKWebViewConfiguration控制影片行為
23:11 -
lock
25. 製作簡易UI控制項,監聽WKWebView iframe 即時狀態
26:42 -
lock
26. 讓Swift與WKWebView的JavaScript雙向溝通控制影片
27:21 -
lock
27. 加入向量圖檔,修正播放器控制
23:16 -
lock
28. 完成自製TabView, 用程式的方式撰寫Constraints
30:02 -
lock
29. 整理程式,完成剩餘部分
15:48
第六章 (總長6.9小時)
-
play_arrow
01. 章節介紹與前置作業講解
07:04 -
lock
02. 建立WordPress 與 WooCommerce 站台,並利用Postman取得資料
15:55 -
lock
03. 利用CocoaPods使用第三方函式庫連接WooCommerce API後台,與關閉HTTP安全防護功能
16:36 -
lock
04. APP規劃說明
07:43 -
lock
05. 浮動Menu按鈕開關動畫,利用Constraint
12:36 -
lock
06. 完成TabBar頁面切換功能
17:20 -
lock
07. 繼承與封裝(Encapsulation),5種訪問權限的示範解說
16:49 -
lock
08. 建立側邊欄(Side Bar) 功能
19:08 -
lock
09. 利用NavigationController控制跳頁功能
14:00 -
lock
10. 合併side bar與tab bar功能
10:17 -
lock
11. 加入Category tabs分頁標籤
14:08 -
lock
12. 加入Product Collection Cell 與修正於不同裝置大小的問題
18:14 -
lock
13. 建立ProductService與Model Cache機制
18:46 -
lock
14. 連結UI與資料,顯示商品
11:06 -
lock
15. 建立Category service,讀取與顯示包含預設值
14:21 -
lock
16. 完成分頁讀取功能(UIRefreshControl)
16:50 -
lock
17. 加入購物車功能(CartService, UserDefaults, Codable)
14:49 -
lock
18. 加入商品展示頁面,解決awakeFromNib與didSet optional UI 值得問題
23:18 -
lock
19. 加入購物車管理頁面
12:28 -
lock
20. 完成購物車管理頁面
16:38 -
lock
21. 商品搜尋功能(一),商品名稱搜尋
21:24 -
lock
22. 商品搜尋功能(二),商品金額大小搜尋限制
22:57 -
lock
23. 商品搜尋功能(三),商品屬性過濾排序
23:52 -
lock
24. 加入使用者登入與註冊頁面
09:50 -
lock
25. 完成使用者登入與註冊
11:59 -
lock
26. UIView 資料讀取顯示與初探 NotificationCenter
15:48 -
lock
27. 加入OrderService,建立與顯示訂單
11:19
第七章 (總長2.7小時)
-
play_arrow
01. 進度條APP範例章節介紹
03:53 -
play_arrow
02. 透過連接線下載Xcode 開發中 APP到手機測試
06:41 -
lock
03. Apple develop program 簡介
05:10 -
lock
04. app store connect 瀏覽與基本介紹
07:52 -
lock
05. 上傳版本到 app store connect 準備發行, 利用TestFlight 讓團隊做測試
09:59 -
lock
06. App store connect 版本提交與審查
04:34 -
lock
07. 【版本1.0.0】進入畫面與首頁設計邏輯
20:32 -
lock
08. 【版本1.0.0】首頁與頁面切換程式邏輯
18:51 -
lock
09. 【版本1.0.0】Service 與 Model 的設計介紹
05:34 -
lock
10. 【版本1.0.0】System 設定頁面與兩種網頁瀏覽介紹
04:46 -
lock
11. 【版本1.0.0】文章索引頁面
20:08 -
lock
12. 【版本1.0.0】文章顯示頁面與WKWebView 應用
13:10 -
lock
13. 【版本1.1.0】JWT 會員登入原理, UserService 與登入登出介紹
19:14 -
lock
14. 【版本1.1.0】我的課程影片頁面UI講解
14:11 -
lock
15. 【版本1.1.0】影音播放器製作邏輯
07:06
課程講師
縱裕
iOS 工程師 / Ruby On Rails 網站工程師
現職為iOS 工程師,但同時也在鑽研網站技術並且建立多個網站。
曾協助多個新創公司,範圍包含網站前端到桌面應用程式倉存管理與電子機關互動。
從網站架設,手機APP到系統底層都有豐富的經驗。
擅長不同系統架構的整合與創新想法的實現。
經歷:
進度條 技術顧問
Digilog.tw 網站與倉庫後台程式架構設計與建置
Zooe 線上教學平台 網站架構設計與建置
HelloStudy 楓禾留遊學網 設計與建置
Funlock 放樂工作室真實密室逃脫遊戲 - 魔鏡迷城 電子機關設計與製作
iOS App - Rock Click 節拍器
Nexcom ARM韌體與軟體工程師
Insyde BIOS工程師