基礎技術 · 20 小時
先親手理解一個完整 App 由介面、資料儲存到雲端服務的運作方式。
- Android:Kotlin、Activity、SQLite、RecyclerView 及 Firebase
- React Native:元件、導航、裝置功能、API 及跨平台發佈
- 真正能力:能閱讀、執行、測試及手動除錯自己的 App
使用 AI 開發 App 之前,你需要先掌握程式碼的基礎,學會閱讀、理解及判斷介面、導航、資料儲存、API 與 Firebase 如何運作;然後才使用 AI 協助產生介面和程式碼、尋找錯誤及提出改善方案。課程亦提供 AI 整理的時間章節和課後測驗,讓你按需要跳到任何重點,並檢查自己是否真正掌握所學。
從基礎 Apps 技術,到可控制、可驗證的 AI 輔助開發
整個學習路徑分為兩個清楚階段。第一階段刻意不依賴 AI,第二階段才把 AI 加入真實 Apps 開發流程。
先親手理解一個完整 App 由介面、資料儲存到雲端服務的運作方式。
有了基礎後,再以 AI 作為開發助手,提高速度而不失去控制。
如果不明白程式碼,便無法判斷 AI 是否製造了錯誤、漏洞或不適合的設計。完成兩個階段後,你不只懂得叫 AI 寫 App,更懂得審查、修正及延伸它。
免費觀看課程介紹及實際教學內容,了解講解方式、技術深度,以及 Android、React Native 與 Firebase 的實作流程。
按播放鍵即可觀看;選擇右方片段可切換內容。
先用 Android Kotlin 與 React Native 建立真正的流動應用開發基礎,再學習如何運用 AI 產生、檢查、除錯及改善 App 程式碼。AI 可以加速工作,但理解程式的人才有能力判斷結果是否正確。
Android Kotlin 原生開發與 React Native 跨平台開發,先學懂介面、資料及雲端服務如何真正運作。
4 LESSONS · 10 HOURS
以 Kotlin 及 Android Studio 建立原生 Android Apps,掌握介面、頁面導航、SQLite、RecyclerView、Volley API 與 Firebase。
以下內容直接取自每段完整課堂錄影及已建立的 AI 學習資料。
本課堂為Android開發入門教學。導師首先指導安裝Android Studio,並介紹專案的基本結構,包括活動檔、佈局檔、設定檔及資源檔的作用。接著講解Kotlin物件導向基礎,示範建立類別、定義變數與函數,並透過LogCat進行除錯。後半部分帶領學生實作介面設計,加入ImageView與Button等元件並設定約束條件,最後結合程式碼學習findViewById及setOnClickListener,透過撰寫條件判斷式完成一個可切換圖片與文字的互動式應用程式,讓學生完整體驗由介面繪製到邏輯控制的開發流程。
導師介紹Android開發模式,並指導學生搜尋、下載及開啟Android Studio工具。
講解如何選取Empty Views Activity範本建立專案,並設定專案名稱與最低API要求。
介紹Android專案內的Manifest設定檔、Kotlin程式碼檔案以及裝載版面配置的Layout檔。
解釋類別作為容器的概念,並示範建立Student類別與定義其專屬的屬性變數與函數。
在MainActivity中宣告變數並基於類別建立學生實體物件,設定屬性值後呼叫輸出函數。
指導開啟虛擬機執行應用程式,並介紹使用LogCat面板作為觀察程式狀態的除錯工具。
示範如何透過Log.d語法輸出帶有自訂標籤的訊息,並學習如何過濾日誌以便追蹤。
在類別中加入包含if/else條件判斷的函數以檢查年齡,並將結果回傳至主程式列印。
建立專注於介面設計的新專案,並指導如何將下載的圖片資源複製到drawable資料夾中。
示範在佈局檔中拖曳ImageView與TextView,並為元件加入約束條件以正確定位。
指導在介面中加入三個按鈕元件,並為所有介面元件設定易於辨識的ID以便程式控制。
於程式碼中宣告與介面元件對應的變數,並透過findViewById指令將程式變數與介面綁定。
講解透過setOnClickListener設定事件,使按鈕點擊後能動態改變畫面上的圖片及文字。
加入Toggle按鈕,利用狀態變數與if判斷式來實作單擊按鈕輪流切換兩張圖片的效果。
實作左右切換邏輯,利用計數器增減與條件限制,達到連續切換圖片且不超出範圍的功能。
答案:B
導師在提到,要設定一個監聽器(setOnClickListener),才能捕捉點擊事件來改變圖片。
答案:B
導師在提到,要留意下方藍色的狀態列,必須等它跑完沒有藍色條了,才可以有效率地按東西,以免搶資源導致系統變慢。
答案:C
導師在明確提到,選擇「Empty Views Activity」最簡潔,裡面沒有多餘的東西,最適合目前的學習。
本節課程主要教授 Android 應用程式開發中多頁面切換與資料傳遞的實作技巧。首先介紹了在最新版本 (Meerkat) 的 Android Studio 中建立專案,並開啟手機的開發者模式以進行實機 Wi-Fi 偵錯。課程詳細講解如何建立第二個 Activity 頁面,利用 Intent (意圖) 實作跳轉 (startActivity) 與返回上一頁 (finish)。資料傳遞方面教授了兩種方法:第一種透過 Intent.putExtra 將 EditText 輸入的資料傳至下一頁,並以 Toast 或 TextView 顯示;第二種利用 SharedPreferences 進行持久化儲存,結合 RadioGroup 與 RadioButton 實作性別選擇,並透過 Device File Explorer 檢視本機儲存檔案。最後,課程介紹了隱含意圖 (Implicit Intent) 的應用,示範如何觸發手機撥號、發送簡訊及開啟瀏覽器,全面掌握基礎頁面互動與系統功能。
導師介紹最新 Meerkat 版本的 Android Studio,並指導如何設定手機開發者模式以進行 Wi-Fi 連線測試。
示範如何在專案中建立第二個 Empty Views Activity 作為新的頁面。
在 Layout 中加入 TextView 與 Button,並示範如何設定 Constraint 避免元件跑位。
講解如何宣告 Intent 物件,並透過 startActivity 方法從第一頁跳轉至第二頁。
在第二頁使用 finish 方法結束當前活動,讓畫面退回至上一頁。
加入 Plain Text (EditText) 讓使用者輸入姓名與電郵,並設定 Hint 提示文字。
透過 Intent 傳遞輸入資料至第二頁,並使用 Toast 彈出訊息視窗印出內容。
開啟新專案示範如何使用 SharedPreferences 將資料儲存為本機檔案。
在介面上加入 RadioGroup 來包裝 RadioButton,確保性別選項能夠單選。
在程式碼中開啟 Editor 編輯模式,將輸入的姓名等資料 putString 後 commit 儲存。
在第二頁直接開啟 Shared Preference 並利用 getString 讀取先前儲存的資料顯示。
使用 Device Explorer 工具進入手機系統資料夾,實際查看剛儲存的 XML 檔案內容。
透過 Log.d 將選擇的 RadioButton ID 輸出至 Logcat,以確認使用者的選擇狀態。
介紹 Implicit Intent 的概念,並實作觸發手機撥號、發送簡訊及開啟瀏覽器的功能。
總結今日學習的意圖與資料儲存技巧,並預告後續將進入更複雜的網路連線與列表應用。
答案:C
導師在影片初期提及『看到一個新版本,叫做Meekat』。
答案:B
導師介紹這是一個儲存機制,稱為『Share the Preference (SharedPreferences),是最簡單的一個機制,完全是一個檔案來的』。
答案:C
導師教學『this.開啟活動,這個功能或者method... startActivity』來讓頁面開始動起來。
本節課主要涵蓋了三個核心 Android 開發主題:Activity 生命週期、SQLite 資料庫操作以及 RecyclerView 的基礎建構。課程首先示範如何透過 Logcat 追蹤 OnCreate、OnStart、OnResume、OnPause、OnStop 等生命週期狀態,讓學員理解應用程式在前景與背景切換時的運作機制。接著,課程進入 SQLite 資料庫教學,從介面設計、將寫死的文字轉移至 strings.xml 開始,逐步引導學員建立 Student 資料類別,並深入探討 Kotlin 中主要建構子 (Primary Constructor) 與次要建構子 (Secondary Constructor) 的差異。隨後,講師示範如何繼承 SQLiteOpenHelper 建立 DB Helper,執行 CREATE TABLE 指令,並透過 ContentValues 新增資料,以及使用 Cursor 配合 ArrayList 讀取資料。在實作過程中,講師也示範了如何透過 Device Explorer 檢查資料庫檔案,以及如何排解 SQL 語法錯誤。課程最後階段,講師帶領學員開啟新的 RecyclerView 專案,逐步建立自訂的項目介面 (MyItem.xml)、Fruit 資料類別,以及最具挑戰性的 Adapter 與 ViewHolder 架構,為下節課結合資料庫與 RecyclerView 的綜合應用打下堅實的基礎。
講解應用程式啟動時會依序觸發 OnCreate、OnStart 與 OnResume。
介紹 Android 開發中的 SQLite 資料庫架構與 CREATE TABLE 指令應用。
示範如何解決 Hardcode 警告,將介面文字抽離至 strings.xml 統一管理。
比較 Java 寫法,說明 Kotlin 類別建構子的簡潔語法及繼承規則。
建立管理資料庫的 DB Helper 類別,並實作 onCreate 與 onUpgrade 方法。
撰寫新增學生資料的方法,透過 writableDatabase 寫入資料庫。
示範在 Android Studio 透過 Device Explorer 工具尋找與匯出 SQLite 實體檔案。
除錯建立資料表時漏打的指令,強調必須呼叫 execSQL 才能執行 SQL 字串。
建立讀取清單的方法,使用 rawQuery 查詢資料庫中的學生紀錄。
利用 Cursor 的指標功能逐筆讀取欄位,並實體化學生物件存入 ArrayList 中。
在 MainActivity 使用 findViewById 綁定按鈕,並設計迴圈於 Logcat 印出資料庫結果。
新開專案並在主佈局中加入 RecyclerView 元件與設定 ID。
建立專屬清單項目的 Layout 檔,配置 ImageView 與 TextView,並設定高度為 wrap_content。
建立用來供給資料給 RecyclerView 的 Adapter 類別。
完成 ViewHolder 內部類別及必須覆寫的三個方法,統整清單應用架構。
答案:B
講師引導學員從檢視選單開啟 Device Explorer 工具,進入 data/data/.../databases/ 目錄來尋找建立出的 myschool 資料庫檔。
答案:C
講師提到 Context 參數就是提供應用程式本身的環境資訊,通常在 Activity 中會直接傳遞 this。
答案:B
由於新增資料牽涉寫入動作,講師明確說明需要使用 getWritableDatabase 來取得資料庫。
本堂課重點教授如何運用 AI 工具 (例如 POE) 加速 Android 應用程式的開發流程。課程首先示範使用 AI 生成 RecyclerView 的程式碼,並在 Android Studio 中建立對應的 Layout、Data Class 及 Adapter,以清單方式展示產品圖文。接著進階講解如何透過 Intent 將資料傳遞至第二個 Activity 頁面。課程中段介紹了 Fragment 的概念,並實作一個包含表單與資料統計的客戶回饋 App,學習利用 Shared Preferences 儲存本機資料及加入 Tab Layout 切換頁面。最後,指導學員透過 Volley 函式庫連線至 JSON Placeholder 下載網路資料,並實作 Firebase Realtime Database,完成包含建立專案、設定權限及與雲端資料庫即時同步的完整 CRUD 應用程式。
課程開場介紹如何使用 AI 工具加速 Android 應用程式的開發與佈局。
示範在瀏覽器開啟 POE,輸入提示詞以生成建立 RecyclerView 的 Kotlin 程式碼。
將 AI 生成的 XML 程式碼複製並貼上,取代原有的 ActivityMain 版面結構。
新增 ProductAdapter 類別,並匯入 AI 產生的程式碼以處理清單項目綁定。
發送提示詞產生 Second Activity 程式碼,透過 Intent 將點擊的商品資料傳遞至下一頁。
介紹 Fragment 碎片的觀念,規劃兩個 Fragment 用於收集回饋與顯示評分統計。
利用 Shared Preferences 寫入並累積計算使用者的評分資料。
在專案中實際產生 Blank Fragment 檔案,並將對應的 Layout 及程式碼覆蓋貼上。
實作頂部標籤列,讓使用者能不需依賴按鈕,直接切換不同 Fragment 頁面。
介紹如何使用 Volley 函式庫,連接至 JSON Placeholder 下載並解析網路資料。
將 Volley 套件名稱加入 build.gradle 並執行 Sync Now 下載函式庫。
開啟 AndroidManifest.xml 加入 INTERNET 權限,確保應用程式能順利存取網路。
前往 Firebase 官方網站建立新專案,並選擇測試模式開啟 Realtime Database。
在 Android Studio 的 Tools 選單使用 Firebase 助理工具,直接與雲端專案進行綁定。
展示上傳資料與網頁控制台的即時同步,並驗證監聽事件的回傳結果。
答案:D
導師強調最難做的部分是 Adapter,負責重用視圖並綁定各項資料 (包含 onCreateViewHolder 和 onBindViewHolder)。
答案:B
導師在 Firebase 的 Build 功能選單中,點選了提供即時同步機制的 Realtime Database。
答案:B
導師在 POE 提示詞中明確指定使用 Volley 函式庫來下載 JSON 資料。
4 LESSONS · 10 HOURS
使用 React Native 及 JavaScript 以一套程式碼開發 iOS 與 Android Apps,掌握元件、導航、裝置功能、API 與 Firebase。
以下內容直接取自每段完整課堂錄影及已建立的 AI 學習資料。
本課程主要介紹 React Native 跨平台手機應用程式(Hybrid Apps)的基礎開發流程與環境建置。課程一開始,導師帶領學員安裝必備的開發工具,包含執行環境 Node.js、用於建立專案的 Expo CLI、程式碼編輯器 VS Code 以及提供手機模擬器的 Android Studio。完成安裝後,導師示範如何使用 Windows 命令提示字元 (CMD) 建立資料夾,並透過 npx create-expo-app 指令搭配 JavaScript 模板來初始化 React Native 專案。接著,課程進入實作階段,講解 App.js 的核心結構,包括如何匯入 View、Text、Button 與 Image 等內建組件。學員學習了如何使用 StyleSheet.create 定義與套用樣式,並深入探討 Flexbox 排版技巧,如 justifyContent、alignItems 以及外距 (margin) 與內距 (padding) 的設定。在互動功能方面,課程重點介紹了 React 的狀態管理概念,示範如何透過 useState Hook 宣告狀態變數與更新函數,配合按鈕的 onPress 事件來動態改變畫面內容。最後,導師演練了如何透過 require 語法載入本地端圖片資源,讓學員完整體驗從環境設置到基礎介面與互動開發的完整過程。
介紹 React Native 是一個跨平台開發軟件,並說明混合式應用程式的基本概念。
比較 Expo 與 React Native Command Line 的差異,並建議新手使用 Expo 建立環境。
總結課程前段安裝的 Node.js、Expo CLI、VS Code 與 Android Studio 等四個主要工具。
使用 npx create-expo-app 指令在命令提示字元中建立全新的 React Native 專案資料夾。
輸入 npm run web 啟動本地伺服器,並於瀏覽器上即時預覽應用程式畫面。
介紹 React Native 的核心入口檔案 App.js,包含引入函式庫與輸出主程式結構。
學習如何宣告樣式表,並透過 style 屬性將文字大小與背景顏色等設定套用到組件上。
講解 justifyContent 與 alignItems 如何分別控制元件在垂直主軸與水平交錯軸的對齊。
實際測試 flex-start、center 與 flex-end 屬性對於畫面元件上、中、下位置的影響。
說明 margin (外部邊距) 與 padding (內部填充) 在元件排版與撐開空間時的作用與差異。
示範 space-between、space-around 與 space-evenly 在多個元件時如何自動分配剩餘空間。
在畫面上加入 Button 組件,並設定 onPress 事件來觸發按下按鈕後的互動反應。
解釋為何單純修改一般變數無法讓畫面跟著變動,帶入 React 狀態變數的核心設計邏輯。
實作 useState 掛鉤,宣告狀態變數與 setter 函數,讓按鈕點擊後能即時更新畫面文字。
示範如何匯入 Image 元件,並正確使用 require 語法將專案內的本地圖片載入至應用程式中。
答案:A
導師強調所有的物件都需要 import 才能支援,要建立專屬樣式表必須先匯入 StyleSheet。
答案:C
導師解釋在終端機中打 dir 指令,目的就是要顯示資料夾裡面有什麼內容。
答案:B
導師發現預設安裝產生了 TypeScript (TS) 版本,由於課程主要教 JavaScript,因此需加上 template 參數重新建立空白 JS 專案。
本節課為 React Native 開發的第二堂課,主要講解了 React Native 與 Android 開發的差異,強調其純程式碼的特性。課堂從建立 Expo 專案開始,教授如何使用 create-expo-app 指令建立專案,並透過 npm 啟動網頁與模擬器測試。隨後深入探討 Component 的核心概念,示範如何建立自訂元件,並運用 View、Text、Image 及 Button 等內建元件建構介面。課程詳細解說了 Props 的傳遞與解構機制,展示如何將文字、圖片路徑甚至是外部函式由父元件動態傳遞給子元件。接著,講師介紹了 useState 狀態變數的應用,透過三元運算子實作動態渲染,讓使用者點擊按鈕即可切換不同元件的顯示。課程後半段更進一步探討資料陣列的處理,示範利用 map 函式將陣列資料迴圈輸出成多個元件,並點出動態組合 require 圖片路徑時容易遇到的編譯錯誤。最後總結本堂學習要點並簡介了未來將學習的 FlatList 概念,為下一堂課串接資料庫與換頁功能打下基礎。
介紹 React Native 純程式碼特性,並開始學習使用指令建立專案環境。
講解如何使用指令啟動 Web 伺服器並安裝 React Native Web 所需的相關套件。
示範如何建立自訂 Component,並學習匯入與匯出模組的語法。
引導將網路下載的圖片存放至專案的 asset 資料夾以便後續使用。
介紹如何使用 Image 元件,並透過 require 語法將本機圖片顯示於畫面上。
講解元件如何透過 Props 接收外部傳入的參數,使內容能根據參數改變。
示範在元件中加入 Button,並學習如何將父元件的函式傳遞給子元件觸發。
開啟新的 Expo 專案,為學習更進階的排版與動態渲染做準備。
示範如何啟動 Android 模擬器,並說明實體手機使用 Expo Go 測試的方法。
說明如何透過三元運算子與條件判斷,讓畫面根據不同情況顯示不同元件。
學習使用 React 的 useState Hook,建立可改變元件狀態的變數。
完成點擊按鈕即可更改狀態變數,進而動態切換畫面上顯示的貓狗元件。
再次建立新專案,準備講解如何將陣列資料轉換為列表元件。
詳細示範如何利用 JavaScript 的 map 函式,將陣列內的文字資料逐一渲染至畫面。
總結本日學習的 Component、Props、State 等核心觀念,並預告下一堂課將串接資料庫。
答案:B
腳本中提到「就要打了,打什麼呢,就要require,然後就打一個路徑」。
答案:B
腳本提及「我們可以用另一招,就是更加prefer的,叫做de-structuring,直接用大括號包住」。
答案:A
腳本提到「import new state (useState) from react,這個就是用狀態變數的手段」。
本堂課為 React Native 課程的第三課,主要教授多個核心開發概念與實用技巧以取代純手動編碼的傳統作法。課程首先複習如何建立專案與指令操作,並深入講解 Component(組件)的概念,特別是父子組件之間的資料傳遞(Props),包括傳遞變數與函數,並示範了如何透過子組件呼叫父組件的函數來實現資料反向傳遞與解構賦值 (Destructuring) 的寫法。接著,課程引入了 FlatList 組件的使用方法,說明其優於傳統列表的渲染效能,並實作了 data、renderItem 與 keyExtractor 三個核心屬性。隨後,課程結合網路請求 fetch API 與 React Hooks(useState 與 useEffect),示範如何從遠端 API 獲取 JSON 資料並動態顯示於列表中,詳細解釋了非同步操作與狀態管理(副作用及依賴陣列)的結合運用。最後,課程探討了多頁面切換的實作邏輯,展示如何透過狀態變數與條件渲染來控制頁面的顯示與隱藏,達到動態載入組件的效果。雖然課程中實作手動轉頁時遇到了一些資料傳遞的困難,但講師也預告下一堂課將會引入 useNavigation 導航套件,為後續的應用開發奠定重要的基礎理解。
回顧如何開啟命令提示字元並使用 npx create-expo-app 指令建立空白專案。
講解如何建立獨立的子組件,並將其引入到主程式中渲染顯示。
示範如何將變數及 JavaScript 函數透過 Props 傳遞給子組件,並讓子組件呼叫。
介紹在接收 Props 時使用解構賦值語法,直接提取出需要的變數與函數。
講解類似 Android RecyclerView 的 FlatList 組件,並說明其基礎渲染屬性設定。
使用 JavaScript 內建的 fetch 函數發送網路請求,並取得 JSON 格式的資料。
把網路上獲取的資料存入狀態變數,並綁定為 FlatList 的 data 屬性進行渲染。
解釋 useEffect 第二個參數 (Dependency Array) 的功能,如何根據變數變化觸發函數。
說明在單一畫面 App 中實現多頁面切換效果的重要觀念與基本做法。
示範透過判斷 currentPage 的狀態值,使用三元運算子決定渲染哪個 Component。
在頁面中加入 TextInput 組件,並設定預設顯示文字 (placeholder)。
說明 TextInput 必須配合 value 與 onChangeText 屬性,才能持續更新狀態變數。
嘗試實作按下按鈕後將表單資料從第一版傳回父組件,再轉至第二版顯示的流程。
總結手動設計轉頁機制的困難點,預告後續將使用 useNavigation 套件簡化開發。
答案:C
設計表單時提到「入資料就叫做test input (TextInput)」。
答案:C
課程中使用「touchable opacity 去包住一個文字...好像hyperlink那樣用」。
答案:B
腳本解釋動態載入元件的打法「如果這個狀態變數是一,就會印出Page1...否則就印出Page2」。
本節 React Native 課程主要教授如何結合 AI 工具來加速開發流程,並深入探討應用程式的導航機制、資料管理以及表單處理。課程前半段,導師指導學生建立及清理 Expo 專案,示範傳統透過父組件傳遞函數與狀態來切換頁面的方法,隨後引入更強大的 React Navigation,涵蓋堆疊導航 (Stack Navigation)、抽屜導航 (Drawer Navigation) 以及底部標籤導航 (Bottom Tab Navigation)。接著,課程介紹了如何使用 FlatList 元件來渲染清單,以及如何透過 fetch 從 JSON Placeholder 獲取遠端資料。在本地端資料儲存方面,導師詳細講解了 AsyncStorage 的實作方法,示範將使用者輸入的表單資料轉換為字串後儲存並在需要時讀取,也能在瀏覽器開發者工具中檢視。課程後段的實作環節包含一個具備 CRUD 功能的待辦事項 (To-Do List) 應用程式,並處理了複雜的表單控制項與刪除確認彈出視窗 (Modal Dialog)。最後,導師簡介如何使用 Expo Application Services (EAS) 將應用程式打包並部署上傳至雲端,以便在實體手機或模擬器上進行測試與安裝。
回顧上一節課的專案並使用命令提示字元準備開發環境與資料夾。
示範如何下達指令建立全新的 Expo 專案並啟動網頁伺服器進行測試。
透過提示詞要求 AI 生成不含導航套件的兩個基本頁面以了解資料傳遞原理。
安裝 React Navigation 套件並使用堆疊導航來實現頁面切換與參數傳遞。
透過 AI 生成 FlatList 結構,展示如何將陣列資料渲染為可點擊的清單。
結合 useEffect 從 JSON Placeholder 獲取遠端資料並更新至清單狀態中。
安裝 AsyncStorage 並示範如何將使用者的輸入資料轉為字串後存入本地端。
教導如何開啟瀏覽器的開發者工具,在 Local Storage 標籤中確認儲存的資料。
重新建立專案並匯入抽屜式導航套件,製作可以從側邊滑出的導航選單。
加入單選按鈕 (Radio Button) 與下拉選單 (Picker) 等表單控制項來收集使用者資料。
處理第三方單選按鈕產生的問題,並改用更為穩定的 Picker 控制項替代。
介紹 Bottom Tab Navigation,在應用程式下方加入分頁切換按鈕。
利用狀態管理與陣列展開運算子實作待辦事項的新增、讀取、更新與刪除功能。
加入刪除確認的 Modal Dialog Box,並設定編輯模式的切換與取消機制。
介紹 Expo Application Services,安裝 EAS CLI 並將應用程式打包上傳至雲端提供下載。
答案:B
導師說明,有了 Navigation 物件後,可以直接由 `navigation.navigate` 加上頁面名稱跳轉,不需要再經過媽咪(父組件)。
答案:A
導師解釋說,JSON 方面的 Data 一定要變成一個字串才能 Save 到 AsyncStorage,因此使用了 stringify。
答案:C
課程後半段要求使用 Tab navigation (Bottom Tabs),在底層放置 Tab 讓使用者可以在頁面間切換。
把已掌握的技術結合 ChatGPT、Claude、Copilot 與 Gemini,生成、檢查和改善 App 程式碼。
4 LESSONS · 10 HOURS
運用 AI 輔助 Kotlin 與 Android Studio 開發,掌握多頁 App、SQLite、RecyclerView、網絡 API、Firebase Database 及相片上載。
以下內容直接取自每段完整課堂錄影及已建立的 AI 學習資料。
本課程帶領學員了解如何利用AI輔助工具(如Poe與Copilot)大幅提升Android應用程式的開發效率。課程初期詳細示範了Android Studio的介面、建立Empty Views Activity專案的流程,以及XML介面檔與Kotlin程式檔的基礎架構與關聯。隨後,導師講解了虛擬機(Emulator)的設定方法與Logcat除錯工具的使用,並實作自定義的Student與Teacher類別,學習物件實體化的概念。課程後半段著重於AI提示詞的撰寫技巧,示範如何讓AI快速生成程式碼以及指定的介面佈局(如LinearLayout)。最後,學員學習了UI元件在ConstraintLayout的定位原理、設定元件ID,以及使用findViewById與setOnClickListener將介面按鈕與程式邏輯進行綁定,並透過AI進一步完成按鈕的Toggle切換狀態功能,完整體驗從無到有的AI輔助開發流程。
介紹透過AI輔助進行Android開發的全新模式,並示範正確選擇Empty Views Activity建立專案。
講解如何使用Android內建的模擬器或實體手機測試開發中的應用程式。
說明Class類別的結構,包含變數區與Function區,以及覆寫(Override)等基本概念。
示範如何手動建立一個Student類別,定義名稱、年紀與電郵等變數及列印函式。
在MainActivity中呼叫建立好的Student類別,宣告變數並寫入實體資料。
說明如何過濾標籤並使用Logcat來查看程式中Log.d印出的Debug資訊。
介紹Poe.com與Copilot等AI工具,為後續生成程式碼做準備。
示範提供範例給AI,讓其快速生成Teacher類別的完整程式碼,並貼回專案執行。
開新專案開始學習UI介面設計,認識Test View等元件與畫面的縮放。
學習在UI介面中拉定位線,避免元件在執行時全部集中在左上角。
編寫提示詞讓AI自動生成包含特定顏色、字體大小與線性佈局(LinearLayout)的程式碼。
將AI生成的XML程式碼貼入Code View中,並觀察Design View的變化與除錯。
替畫面上每個Button與Test View設定唯一ID,以便在程式端進行呼叫綁定。
撰寫程式碼透過findViewById綁定介面,並加入setOnClickListener來觸發文字變更。
向AI提出新需求,利用布林值變數將按鈕升級為可在兩種狀態間切換的Toggle功能。
答案:C
導師在示範調整大小與教導寫AI提示詞時,特別強調單位是SP(如50SP)。
答案:B
導師說明每一個元件都需要一個獨立不重複的編號(ID),例如tv1或bt1,程式才能找到它。
答案:C
導師強調傳統做法應選擇「Empty Views Activity」,避免選錯導致介面架構不同。
本堂課程主要教授Android應用程式開發,涵蓋介面設計、頁面跳轉與資料庫建立。首先,導師指導學生在Android Studio中開啟新專案,並示範如何清理多餘的程式碼以保持專案整潔。接著,介紹如何使用介面編輯器建立包含文字輸入框、按鈕及文字顯示區的表單,並完成元件的ID命名與版面定位。課程重點講解了如何在程式碼中宣告變數並使用findViewById綁定介面元件,以及設定按鈕監聽器來收集使用者輸入的資料。隨後,導師示範了如何建立第二個Activity,並利用Intent物件實現頁面之間的跳轉與資料傳遞。在課程後半段,教學重點轉向SQLite資料庫的應用。導師引導學生建立SQLiteOpenHelper與資料模型類別,學習撰寫SQL指令來建立資料表,並實作新增與查詢功能。最後,課程展示了如何結合使用者輸入表單與資料庫,將收集到的姓名與電子郵件存入SQLite,並透過Logcat工具過濾與驗證資料是否成功儲存,為後續的資料庫進階操作打下基礎。
建立新專案並調整API版本與清理多餘的預設程式碼以保持專案整潔。
在Layout加入文字輸入框、按鈕與文字顯示區並進行排版與定位。
在MainActivity宣告變數並利用findViewById找出介面元件。
設定OnClickListener以擷取使用者輸入的文字並顯示於畫面上。
將版面與程式碼提供給AI工具,快速產生包含多種輸入欄位的介面。
新增DataActivity與設計對應的介面以準備接收從主頁傳來的資料。
編寫Intent程式碼讓按鈕觸發後能切換至第二個頁面。
在第二頁使用finish方法關閉當前頁面,讓畫面返回至主頁。
使用putExtra將收集到的人名資料打包,準備傳送至第二個頁面。
利用getIntent和getStringExtra解析傳入的資料並顯示在畫面上。
開啟全新的資料庫專案,修正API版本問題並清理多餘程式碼。
解說資料庫基礎結構並撰寫Create Table的SQL指令來定義資料表。
繼承SQLiteOpenHelper並實作onCreate與onUpgrade等必要方法。
新增Staff類別以明確定義資料庫內每一筆紀錄的結構與屬性。
利用AI修改MainActivity以收集姓名及電郵並寫入SQLite,透過Logcat驗證。
答案:B
導師解釋從EditText取出的text屬於Character Sequence型態,必須加上toString()轉換為字串。
答案:C
導師在課程最後示範打開左下角的Logcat視窗,並輸入標籤過濾條件來查看資料庫印出的測試資料。
答案:B
課程中示範按右鍵選擇New -> Activity -> Empty Views Activity來建立名為DataActivity的第二個頁面。
本堂課詳細講解了在Android Studio中開發應用程式的進階功能,主要涵蓋三個核心部分。首先,教授如何建立及運用出名難處理的RecyclerView,包含設定Data Class、Item Layout以及Adapter Class,將資料以清單方式呈現,並介紹將圖片放入drawable資料夾的處理技巧。接著,教學深入探討結合SQLite資料庫進行CRUD(新增、讀取、更新、刪除)操作,示範如何建立DBManager管理資料,以及設計新增與更新資料的介面,並處理頁面跳轉與生命週期。最後,引入網路連線概念,指導學員使用Volley函式庫從遠端伺服器(如JSONPlaceholder)下載JSON資料,設定網路權限,並將擷取到的真實網路數據整合至RecyclerView中顯示。
介紹 RecyclerView 這個用來呈現資料清單的重要介面與其建立專案的流程。
講解 RecyclerView 需要配備的三樣基礎檔案:Data Class、Item Layout 與 Adapter Class。
手把手示範如何利用 TextView 與 ImageView 等元件排版每一行資料的外觀,並設定合適的元件屬性。
進入最困難的步驟,透過 AI 輔助建立 Adapter,將資料源與排版物件進行綁定及生成。
解說如何從網路下載相片素材,並提醒命名規範,將檔案放入專案的 drawable 資料夾中。
使用 AI 輔助工具快速生成員工清單系統所需的各種檔案與程式碼,提升開發效率。
將 AI 生成的 Data Class、Layout 及 Adapter 程式碼依序貼入 Android Studio 專案並解決錯誤。
使用 SQLite 替換靜態資料,建立 DBManager 來管理新增、讀取、更新與刪除 (CRUD) 的操作。
建立全新的 Activity,包含填寫表單的介面,用以將新的員工資料儲存進資料庫。
解說如何點擊清單進入詳細資料頁面,並在該頁面實作附帶確認對話框的刪除與更新功能。
解決資料修改後主畫面未及時更新的問題,透過 Android 生命週期 onResume 重新讀取資料庫。
介紹透過 Google 提供的 Volley 函式庫,輕鬆解決 Android 應用程式的網路連線與資料下載需求。
示範如何利用免費的測試 API (JSONPlaceholder) 來取得遠端的 JSON 格式假資料。
在 AndroidManifest 設定網路權限,完成資料下載並於 Logcat 中確認回傳的網路數據。
答案:B
Prompt 中特別註明當刪除按鈕被點擊時,需彈出一個 confirmation dialog box 來取得使用者的確認。
答案:C
導師特別向 AI 與學員強調要使用 JPEG 作為照片副檔名,並避開 WEBP 格式以免發生讀取問題。
答案:C
導師指示要開啟 app level 的 build.crypto.kts,拉到最下方將 implementation 加進去然後 Sync Now。
本節課程主要教授如何在Android Studio中整合Firebase服務,並透過AI輔助生成Kotlin程式碼來開發應用程式。前半部重點在於Firebase Realtime Database的實作,涵蓋建立專案、設定測試模式權限、寫入單純字串,以及使用push()方法寫入具備自動產生ID的產品物件(包含名稱、數量與價錢)。隨後引導學生使用AI設計輸入介面,並透過RecyclerView即時顯示資料庫內容,進而實作更新與刪除功能,同時強調Realtime Database即時更新的優勢。後半部則轉入Firebase Cloud Storage,指導學員建立新專案以準備上傳相片,說明如何在AndroidManifest中開啟相機權限、設定FileProvider機制,處理Android新版的執行時權限(Runtime Permission)問題,並比較模擬器與實體機在硬體測試上的差異。
導師介紹Firebase Realtime Database並引導學員登入Google帳號建立新的Firebase專案。
示範在Android Studio建立新的Empty Views Activity專案,並提醒選擇Kotlin作為程式語言。
說明預設資料庫權限為鎖定狀態,為了開發測試必須將權限放寬為Test Mode以允許讀寫。
撰寫程式碼取得Firebase Reference,並成功將Hello World與自訂名稱寫入雲端資料庫。
利用AI產生程式碼,在專案中建立一個包含名稱、數量與價錢等欄位的Product資料類別。
解說並示範使用push()方法將產品資料寫入資料庫,由Firebase自動產生唯一的資料ID。
透過向AI輸入Prompt,快速生成包含產品名稱、數量、價錢欄位及儲存按鈕的UI佈局檔與程式碼。
請AI協助建立RecyclerView、Adapter與ItemLayout,將儲存在Firebase的產品清單顯示在畫面上。
示範在雲端直接修改產品數值,手機端App畫面會立刻同步更新,展示即時資料庫的優勢。
要求AI在每筆資料旁加入更新與刪除按鈕,並在刪除前加入確認對話方塊(Dialog Box)。
解決刪除時清空整個資料庫的錯誤,原因是缺少ID,需將Firebase ID加入Data Class中。
關閉原專案,建立全新的Cloud Storage專案,準備學習如何呼叫相機拍照並上傳檔案。
在AndroidManifest.xml中加入相機使用權限,並新增FileProvider以支援較新的相機呼叫機制。
針對較新Android版本,實作在應用程式執行時動態跳出視窗詢問使用者是否授予相機權限。
導師強烈建議針對相機拍照等硬體功能,使用透過Wi-Fi連線的實體手機進行測試會比模擬器穩定。
答案:B
導師指出要開xml資料夾裡面加個file,名稱叫filepath.xml,以提供檔案路徑給Provider使用。
答案:C
導師示範在雲端把數值改為99,手機畫面立刻update,這就是Real-time Database會broadcast變更給所有手機的特色。
答案:C
導師提醒有device feature的(尤其是拍照功能)最好用實體機使用比較好,模擬器會出現很多麻煩的錯誤。
不只是跟隨影片完成練習,而是真正理解技術、獨立解決問題,並把 AI 變成可控制和可驗證的工作助手。
掌握 Android Kotlin、React Native、介面、導航、資料儲存、API 及雲端服務如何配合運作。
能夠由畫面設計開始,完成原生及跨平台 App 的主要功能與資料流程。
能閱讀錯誤訊息、追蹤程式流程,處理裝置權限、Firebase 及跨平台問題。
運用 AI 產生、檢查、重構及改善 App 程式碼,同時自行驗證答案是否合理。
把所學整合成可展示及繼續擴充的 Android、React Native 與 AI Apps 專案。
擁有豐富的商業網頁及應用程式系統開發經驗,以及超過 25 年教學經驗。教學方式清晰直接,擅長把複雜技術拆解成容易理解、可以實際應用的步驟。
曾為知名企業、政府部門及本地大學提供培訓,涵蓋辦公室自動化、數據科學、數據分析,以及商業網頁和 Apps 系統開發;並擔任 NCC Education 及 University of Greenwich 的主要講師。
一次掌握 Android Kotlin 原生開發、React Native 跨平台開發及 AI 輔助 Apps 開發,共 12 節、30 小時完整錄影課。
本頁所有課程均為錄影課程;報名後即可開始,無需等待開課。
Copyright © 2025 Unisoft Education Centre. All Rights Reserved