---
# System prepended metadata

title: APP 開發人員學習流程
tags: [Learning Path, iOS, Android, Onboarding]

---

# APP 開發人員學習流程

## (1) Git 與 IDE 操作

### 共通
- [ ] Git 基本操作（clone / commit / push / branch / merge / rebase）
- [ ] 開發流程（Git Flow）
- [ ] `.gitignore` 與常見設定

### iOS vs Android
| iOS | Android |
|-----|---------|
| - [ ] Xcode 基本操作（Build / Run / Debug / Simulator） | - [ ] Android Studio 基本操作（Gradle build / Emulator / Logcat） |
| - [ ] 常用依賴套件：SwiftFormat、SPM | - [ ] 常用依賴套件：Ktlint、Android Lint、Gradle Plugins |
| 推薦資源：Apple Developer — Xcode docs | 推薦資源：Android Developers — Android Studio guide |

---

## (2) 語法基礎與原生操作

### 共通
- [ ] UI lifecycle  
- [ ] Figma使用及操作
- [ ] JSON API串接 (可找免費的open api)
- [ ] WebView JS ↔ Native Bridge API  
- [ ] 行銀APP框架說明(APP->Web->AP , APP->AP, Web<->APP)(不含程式碼)
- [ ] 數存APP框架說明(APP->Web->AP , APP->AP, Web<->APP)(不含程式碼)
- [ ] 推播基本概念

### iOS vs Android
| iOS | Android |
|-----|---------|
| - [ ] Swift 基礎語法（變數、常數、控制流程、函式、閉包）<br>- [ ] Struct / Class / Enum / Protocol / Extension | - [ ] Kotlin 基礎語法（val/var、function、class、lambda） |
| - [ ] UIKit 元件：UIViewController、Auto Layout | - [ ] Android UI 元件：Activity、Fragment、RecyclerView、ConstraintLayout / Jetpack Compose
| - [ ] WebView：`WKWebView` | - [ ] WebView：`WebView` |
| - [ ] JS 溝通：`WKScriptMessageHandler`、`evaluateJavaScript` | - [ ] JS 溝通：`addJavascriptInterface`、`evaluateJavascript` |
| - [ ] 推播：APNs + Firebase | - [ ] 推播：Firebase Cloud Messaging (FCM) 、本地|
| 資源：<br>• [Swift Book](https://docs.swift.org/swift-book/documentation/the-swift-programming-language/)<br>• [iOS鐵人賽教學(Day1 ~ Day 16)](https://ithelp.ithome.com.tw/users/20120243/ironman/7791?page=1) | 資源：<br>• [Android Basic(看1~5章，根據不同螢幕大小調整不用)](https://developer.android.com/courses/android-basics-compose/course?hl=zh-tw)<br>• [Material3](https://m3.material.io/) |



---

## (3) 公司 APP 業務邏輯（WebView + JS 溝通）

### 共通
- [ ] 行銀APP詳細架構說明(包含程式碼)
- [ ] 數存APP詳細架構說明(包含程式碼)

---

## (4) 打包、測試、送審

### 共通
- [ ] 後台操作  
- [ ] 送審產出差異檔腳本  
- [ ] 送審流程(電腦資源申請書，安控室進出，測試表) 

### iOS (AppStoreConnect) vs Android (GooglePlayConsole)
| iOS | Android |
|-----|---------|
| - [ ] 設定 Bundle ID / Provisioning Profile / Certificates | - [ ] Keystore / 簽署金鑰設定 |
| - [ ] Xcode Archive → Testflight → App Store Connect | - [ ] 產生 APK |
| - [ ] 上傳 TestFlight 測試 | - [ ] 上傳 Google Play Console（Internal / Closed / Open / Production） |

---

## (5) 實做一個Demo App (其中一個平台)
- [ ] 做一個登入頁並呼叫API 並呼叫指定API (會提供測試API)
- [ ] 能開啟WebView，並能 JS ↔ Native 雙向溝通 (會提供測試WebView)
- [ ] 生物辨識：FaceID / TouchID / 指紋登入  
- [ ] 推播：能做出一個本地推播
- [ ] 能完成一次送審流程