Course Details

Java + Android Studio + Eclipse + Apps Inventor + Firebase
Image

Course Introduction 課程簡介

此課程內容相當豐富。課程主要教授學員Android Apps製作等各種相關技術,課程分為面授和視像兩部分。

面授部份,由導師引領學員進行一連串的實習, 以認識製作Android Apps各種相關知識。

視像部分,學員可觀看由導師預先錄製的視像教學片段, 以了解建構 Android Apps各種相關知識。 由於Apps 製作項目實在十分繁多,實在沒有辦法在課堂內完全進行,所以學員需於家中觀看由導師預先錄製的視像教學片段, 自行實習各種製作技巧。 學員可根據自己的進度 由淺入深去熟練各種相關知識。

  • 學習Android Apps的基本架構,資源系統,生命週期及通報機制。
  • 學習Android Apps的介面設計及各種設計元件的使用。
  • 學習如何使用以事件為引發的程式設計觀念 (Event Based Programming)。
  • 學習如何使用本機 SQLite 資料庫存取資料。
  • 學習如何使用後台程式資料庫 MySQL 存取資料。
  • 學習何謂Multitask Programming以及利用多執行緒進行背景運作,例如上下載檔案及音樂。
  • 學習如何使用 Fragments 及 Material Design 新元件去打造更美麗的介面。
  • 學習如何利用電話上的各種感應器去進行不同的活動,如錄音,播歌,攝影及錄像等等。
  • 學習如何利用Apps Inventor 以砌積木的形式進行Apps製作。
  • 學習 Eclipse 及 Android Studio 兩大開發工具的使用
  • 學習製作動畫及各種動態效果
  • 學習儲存資料於檔案系統內
  • 學習使用Firebase作為 Apps 的雲端後台,例如作遙距通訊之用

Java

Java是一種廣泛使用的電腦程式設計語言,擁有跨平台、物件導向、泛型程式設計的特性,廣泛應用於企業級Web應用開發和行動應用開發。

Eclipse

Eclipse 是一個開放原始碼的 Java 開發平台,是傳統Android App開發的首選工具。

Android Studio

Android Studio是一個由Google提供為Android平台開發程式的整合式開發環境 (IDE),未來所有Android Apps將以此為開發標準。

Apps Inventor

Android App Inventor是起先由Google提供的應用軟體,現在由麻省理工學院維護及營運。 它可以讓任何熟悉或不熟悉程式設計的人用圖形化界面來創造Android Apps。

Firebase

是由Google提供的一個支援Apps後勤服務的雲端平台。 它能夠提供各式各樣的不同雲端服務, 例如資料庫儲存及通訊功能。

Course Duration 課程時數

46 hrs (18 hrs 面授 + 28 hrs 視像)(學員可於完成課程後 3個月內免費重溫及重看,使學習更具彈性)

Course Objective 課程目標

本課程目的是培訓學員掌握所有Android Apps 的相關技術 ,以打造一個實用的 Apps。

Entry Requirement 入學要求

報讀者無需任何程式設計背景,但對Apps程式設計有興趣請便可報讀

Course Features 課程特點

★ 解說詳細:循序漸進說明各種技術的使用方法。
★ 即時實習:即時實習,導師與學員一起由零開始打造系統。
★ 多元學習:了解不同技術的配搭,因應情況使用不同的技術方案。
★ 視像重溫:部分複雜的課程部分將以視像形式教授,學員可在家重複觀看方便吸收。

Course Content 課程內容

Face to Face Course Outline 面授課程內容 (18 hrs)

第一部分是由富有經驗的導師真人解說(導師曾受教育局委託開辦多個教授中學電腦導師寫Apps的課程,有6年以上教導製作Apps經驗),帶領學員克服起步時的種種障礙,為期18小時。

Lesson 1:

  • Java Foundation and Environment Setup
  • Environment Setup - Java JDK, Eclipse, Android Studio, Android SDK
  • Introduction to the Eclipse and Android Studio Interface
  • Introducing the Android Apps Project structure and various files usage (XML and Java)
  • Creating a simple Hello World apps using Eclipse and Android Studio
  • Setup the Android Phone Emulator for testing
  • Setup the Physical Device Connection for testing
  • Using Button, Toast, EditText and TextView to show the basics of Event based Programming
  • Creating Alert Dialog Box
  • Exercise: Creating a User Login Form

Lesson 2:

  • Introduction to Activity and its Life-cycle
  • Using Android Logging for debugging
  • Managing Various Resources in Android (String, Images, Layout, Menu, Styles)
  • Layout design using various LayoutManager (LinearLayout, RelativeLayout, TableLayout and FrameLayout)
  • Understanding the Menu System and the Action Bar
  • Use of Common Widgets like ImageView, CheckBox, RadioButton, Spinner
  • Understanding Adapter for Spinner
  • Event Handling usin anonyonmous class
  • Exercise: Creating a Login Form or User Registration Form

Lesson 3:

  • Using SharedPreferences for simple key-value based storage
  • Introducing the Intent system in Android (Explicit and Implicit)
  • Using Explicit Intent to start another Activity, send and receive data
  • Using Implicit Intent to send SMS,call phone and access Internet
  • Introducing the Permission model in Android
  • Requesting Run-time Permissions dynamically
  • Exercise: Creating a Simple Questionnaire or Quizing system

Lesson 4:

  • Using SQLite Database for database storage
  • Creating a student database and adding sample records to the database
  • Using ListView for showing data in Array
  • Using ListView for showing data in SQLite Database
  • Using GridView for showing data with Custom Layout and Adapter
  • Loading Images from various sources (SDCard, Project, Internet)
  • Loading and Handling the Images using Bitmap and Matrix
  • Exercise: Creating a Student Score Report using ListView

Lesson 5:

  • Setup a web server for interacting with the Apps
  • Understanding WebView for presenting web pages
  • Web Server Communication using Background Thread
  • Understanding JSON data format for communications
  • Handling various data format (text, image and JSON data)
  • Downloading text, image and JSON data using Handler
  • Exercise: Creating a News Apps getting information from the Web Server.

Lesson 6:

  • Introduction to Apps Inventor
  • Playing with Apps Inventor to build a login form
  • Playing with Apps Inventor to build the photo taking and drawing apps
  • Overview of Gradle Build System
  • Handling Different Android Devices and Displays
  • Signing and Preparing an Android Application for Release

Online Videos Course Outline 視像課程內容 (28 hrs) - 3個內月無限重複觀看

Foundation: Java Language using Eclipse(03h:27m:56s)

TopicsDuration
Java JDK installation 03m:00s
Setup Environment Variables for Java 03m:18s
Write a Simple Java Program 05m:21s
Compile and Run the Java Program 08m:00s
Java Basics (Program Structure) 06m:43s
Java Basics (Variables) 12m:07s
Java Basics (Decision Making) 03m:44s
Java Basics (Looping) 10m:09s
Java Basics (Methods) 15m:09s
Java Basics (Array for Numbers) 12m:17s
Java Basics (Array for Strings) 09m:15s
Eclipse IDE Installation 03m:01s
Using Eclipse to Write a Simple Java Program 05m:03s
Java Class (Java Class Basic Structure) 06m:06s
Java Class (Constructor Methods) 03m:59s
Java Class (Getter/Setter Methods) 04m:21s
Java Class (Auto Generate Methods) 02m:24s
Object-Oriented Concepts (Inheritance Basics) 02m:24s
Object-Oriented Concepts (Use of Inheritance) 07m:09s
Object-Oriented Concepts (Class with Inheritance) 04m:16s
Object-Oriented Concepts (Further Class Examples) 06m:57s
Object-Oriented Concepts (Array of Objects) 03m:31s
Object-Oriented Concepts (Abstract Class) 13m:31s
Object-Oriented Concepts (ArrayList) 08m:49s
Object-Oriented Concepts (Polymorphism) 05m:48s
Object-Oriented Concepts (Interface) 05m:53s
Object-Oriented Concepts (Use of Interface) 06m:28s
Object-Oriented Concepts (Further Interface Examples) 06m:55s

1 - Getting Started(58m:36s)

TopicsDuration
1 - Java JDK and Android Studio Installation (Free) 16m:40s
2 - Creating an empty project using Android Studio 06m:35s
3 - Understanding the basics project and file structures in Android Project 08m:58s
4 - Creating an Phone emulator for running Apps 05m:29s
5 - Changing the title, content and icon of the App 08m:41s
6 - Debugging Apps (Line Number, Logging, Breakpoint) 03m:24s
7 - Creating an basic project with Fragment to understand its project structure 05m:47s
8 - Learning Auto-Complete, Compiler Error and the output apk file 03m:02s

2 - Activity and LifeCycle(58m:46s)

TopicsDuration
1 - Understanding Android Architecture and Activity LifeCycle (Free) 10m:45s
2 - Demo - Activity Stack 02m:09s
3 - Understanding Android Activity LifeCycle 07m:09s
4 - Demo - Activity LifeCycle 07m:41s
5 - Creating the second Activity 04m:02s
6 - Changing Launcher Activity 02m:56s
7 - Changing the Layout for the Activity 03m:24s
8 - Using Intent to Start Another Actiivty 04m:49s
9 - Use Finish to Pop Off the Current Activity 04m:34s
10 - Passing Data between Activities 03m:49s
11 - Passing Back Data from Called Activity 07m:28s

3 - Layout and UI Components(02h:08m:14s)

TopicsDuration
1 - Introducing UI Components and Resources Files 08m:29s
2 - Understanding the View and View Hierarchy 02m:52s
3 - Use of LinearLayout Manager (Part 1) 09m:28s
4 - Use of LinearLayout Manager (Part 2) 04m:49s
5 - Use of LinearLayout Manager (Gravity) 07m:18s
6 - Use of RelativeLayout Manager 07m:06s
7 - Use of FrameLayout Manager 02m:01s
8 - Use of TableLayout Manager 02m:26s
9 - Use of GridLayout Manager 11m:09s
10 - Demo Use of GridLayout Manager 09m:35s
11 - TextView - Creating by Using Layout Editor 06m:29s
12 - TextView - Creating by Java Code Dynamically (Part 1) 06m:33s
13 - TextView - Creating by Java Code Dynamically (Part 2) 12m:53s
14 - TextView using Resource Management 04m:33s
15 - ImageView - Creating by Using Layout Editor 07m:02s
16 - ImageView - Creating by Using Bitmap 06m:58s
17 - ImageView - Creating by Java Code Dynamically 07m:49s
18 - Button - Creating by Using Layout Editor 10m:44s

4 - Events and Listeners(02h:34m:05s)

TopicsDuration
1 - Event Listener Basics - Button Click Event (Part 1) - Single Button 08m:33s
1 - Event Listener Basics - Button Click Event (Part 2) - Two Buttons 03m:06s
1 - Event Listener Basics - Button Click Event (Part 3) - Anonymous Inner Class 05m:45s
2 - Demo - Adding Images Dynamically using Button Click 22m:57s
3 - EditText - Letting User to Enter Values 08m:41s
4 - EditText - OnFocus Change Event Listener 09m:19s
5 - Other Widgets - ToggleButton, CheckBox, RadioButton, SeekBar, RatingBar, Switch 08m:57s
6 - Other Widgets - Handling the Events for ToggleButton 07m:21s
7 - Other Widgets - Handling the Events for CheckBox 02m:15s
8 - Other Widgets - Handling the Events for RadioButton 02m:22s
10 - Other Widgets - Handling the Events for RatingBar 02m:39s
11 - Other Widgets - Handling the Events for Switch 02m:37s
12 - DateTime Widgets - DatePicker 06m:32s
13 - DateTime Widgets - TimePicker 04m:39s
14 - Dialog Widgets - AlertDialog 14m:41s
15 - Dialog Widgets - DatePickerDialog 15m:25s
15 - Dialog Widgets - TimePickerDialog 06m:05s
16 - Dialog Widgets - Custom Made Input Dialog (Part 1) 09m:27s
16 - Dialog Widgets - Custom Made Input Dialog (Part 2) 04m:46s
16 - Dialog Widgets - Custom Made Input Dialog (Part 3) 07m:58s

5 - Spinner, ListView and GridView(02h:51m:50s)

TopicsDuration
1 - AdapterView - Spinner and Adapter Object (Part 1) - Using XML files 08m:32s
1 - AdapterView - Spinner and Adapter Object (Part 2) - Using Adapter Object 08m:18s
1 - AdapterView - Spinner and Adapter Object (Part 3) - Event Handling 05m:48s
1 - AdapterView - Spinner and Adapter Object (Part 4) - Further Issues 04m:04s
1 - AdapterView - Spinner and Adapter Object (Part 5) - Layout Customization 12m:03s
1 - Demo Use of Customized Spinner with Customized Adapter (Part 1) 11m:54s
1 - Demo Use of Customized Spinner with Customized Adapter (Part 2) 11m:06s
1 - Introducing UI Components and Resources Files 08m:29s
2 - AdapterView - ListView (Part 1) - Basics 12m:06s
2 - AdapterView - ListView (Part 2) - Using ArrayAdapter 10m:40s
2 - AdapterView - ListView (Part 3) - Using Different ChoiceMode 06m:08s
2 - AdapterView - ListView (Part 4) - Using ArrayList to Store Selection 07m:36s
2 - AdapterView - ListView (Part 5) - Using Custom ListView 06m:44s
2 - AdapterView - ListView (Part 6) - Customizing ListView using Shape and Selector 09m:32s
2 - AdapterView - ListView (Part 7) - Customizing ListView using Customized Adapter and Layout 26m:05s
2 - AdapterView - ListView (Part 8) - Using SimpleAdapter and ArrayList 09m:55s
3 - AdapterView - GridView (Part 1) 07m:42s
3 - AdapterView - GridView (Part 2) 05m:08s

6 - Action Bar and Menus(54m:35s)

TopicsDuration
1 - ActionBar - Customizing using Java Codes 11m:22s
2 - ActionBar - Adding DropDown Menu on ActionBar 07m:41s
3 - Menu - Option Menu (Part 1) 13m:54s
4 - Menu - Option Menu (Part 2) 02m:32s
5 - Menu - Context Menu 06m:32s
6 - Menu - Popup Menu 06m:30s
7 - Demo Use of Menu System to Switch Activities 06m:04s

7 - Styles and Themes(36m:51s)

TopicsDuration
1 - Styles and Themes - Change Text, Color, Size using Resources Files 07m:53s
2 - Styles and Themes - Apply Common Styles to different TextViews 06m:08s
3 - Styles and Themes - Apply Themes to Applicaton and Activity (Part 1) 10m:06s
4 - Styles and Themes - Apply Themes to Applicaton and Activity (Part 2) 06m:23s
5 - Styles and Themes - Use Custom Fonts for the content 06m:21s

8 - Drawables and Bitmap(40m:23s)

TopicsDuration
1 - Drawable - Using Resources, Bitmap and Drawable to load Images 10m:01s
2 - Drawable - Creating a Bitmap Drawable 10m:10s
3 - Drawable - Creating a LayerList Drawable 04m:19s
4 - Drawable - Creating a Transition Drawable 03m:54s
5 - Drawable - Creating a Shape Drawable 07m:41s
6 - Drawable - Creating a StateList Drawable 04m:18s

9 - Fragments and Multipane Layouts(47m:47s)

TopicsDuration
1 - Fragment Basic Concepts 03m:16s
2 - Static Fragment - Adding Static Fragments to Activity 05m:14s
3 - Dynamic Fragment - Building Dynamic User Interfaces (Part 1) 08m:08s
4 - Dynamic Fragment - Building Dynamic User Interfaces (Part 2) 09m:17s
5 - Fragment Communication - Activity Calling Fragment 12m:28s
6 - Fragment Communication - Fragment Calling Activity 09m:24s

10 - Animation and Transition(01h:04m:38s)

TopicsDuration
1 - FrameAnimation - Play animation by looping static images 10m:37s
2 - TweenAnimation - Play animation by calculating state changes (Part 1) 11m:47s
3 - TweenAnimation - Play animation by calculating state changes (Part 2) 10m:25s
4 - PropertyAnimation - Play animation by altering the properties (Part 1) 07m:16s
5 - PropertyAnimation - Play animation by altering the properties (Part 2) 06m:35s
6 - Transition - Change Scenes by Animation (Part 1) 10m:04s
7 - Transition - Change Scenes by Animation (Part 2) 07m:54s

11 - Touch and Gestures(34m:45s)

TopicsDuration
1 - Touch - Detecting Multi-Touch and Resizing Image (Part 1) 06m:53s
2 - Touch - Detecting Multi-Touch and Resizing Image (Part 2) 07m:33s
3 - Gesture - Detecting Gesture and Use Fling to change screens (Part 1) 11m:44s
4 - Gesture - Detecting Gesture and Use Fling to change screens (Part 2) 08m:35s

12 - Working with Files and Preferences(01h:21m:16s)

TopicsDuration
1 - Using SharePreferenes to Save Key and Value Pairs (Part 1) 08m:41s
2 - Using SharePreferenes to Save Key and Value Pairs (Part 2) 12m:30s
3 - Using AssetManager to read Image and Text Files 13m:02s
4 - Saving and Reading Files in Internal File System (Part 1) 12m:47s
5 - Saving and Reading Files in Internal File System (Part 2) 08m:50s
6 - Saving Files in External SD Card (Part 1) 07m:16s
7 - Saving Files in External SD Card (Part 2) 08m:35s
8 - Request runtime permission to save file to SDCard 09m:35s

13 - Working with Databases(58m:59s)

TopicsDuration
1 - Creating SQLite Database and Tables (Part 1) - Creating Database 11m:00s
2 - Creating SQLite Database and Tables (Part 2) - Using Command to Interact with Database 09m:20s
3 - Creating SQLite Database and Tables (Part 3) - Using Cursor to Show Data 10m:10s
4 - Creating SQLite Database and Tables (Part 4) - Using ListView and SimpleCursorAdapter 06m:57s
5 - Creating SQLite Database and Tables (Part 5) - Using SQLiteOpenHelper 13m:20s
6 - Creating SQLite Database and Tables (Part 6) - Using Customized CursorAdapter 08m:12s

14 - Intents and Broadcast Receiver(01h:12m:29s)

TopicsDuration
1 - Implicit Intent - Open Web Page and Dial Phone 10m:54s
2 - Implicit Intent - Call Phone, Run-Time Permission and Send SMS 09m:40s
3 - Intent Receiver - Adding Intent Filter and Web View to display web request (Part 1) 07m:50s
4 - Intent Receiver - Adding Intent Filter and Web View to display web request (Part 2) 09m:26s
5 - Broadcast Intent - Creating a Broadcast Sender and a Broadcast Receiver (Part 1) 11m:15s
6 - Broadcast Intent - Creating a Broadcast Sender and a Broadcast Receiver (Part 2) 05m:50s
7 - System Broadcast - How to receive System Events 06m:06s
8 - Notification - Build a Notification with Pending Intent 11m:28s

15 - Async Task and Handlers (01h:32m:30s)

TopicsDuration
1 - Threading - Basic Concepts and Applications 09m:16s
2 - Threading - Creating a new Thread for long running tasks 03m:26s
3 - Handler - Passing Message from Thread to Handler 11m:26s
4 - ProgressBar - Using Handler to update progress 17m:06s
5 - AsyncTask - Basic Concepts 07m:06s
6 - AsyncTask - Using AsyncTask for long running tasks 14m:50s
7 - Using Handler to download image from web server 17m:20s

16 - Services and IntentServices (48m:10s)

TopicsDuration
1 - Services - Basic Concepts 06m:57s
2 - Services - Understanding Services Concept and LifeCycle 13m:31s
3 - IntentServices - Understanding IntentServices Concept and LifeCycle 07m:55s
4 - BindServices - Understanding BindServices Concept and LifeCycle (Part 1) 09m:55s
5 - BindServices - Understanding BindServices Concept and LifeCycle (Part 2) 09m:52s

17 - Multmedia (Photo, Video, Music) (01h:02m:40s)

TopicsDuration
1.1 - Playback Video using VideoView and MediaController 07m:49s
2.1 - Record Video (Preparing the recording environment) 04m:26s
2.3 - Record Video (Create an Intent for Video Capture) 03m:11s
2.4 - Record Video (Show the Video Location after recording) 02m:16s
2.5 - Record Video (Playback the recorded video) 03m:52s
3.1 - Request Runtime Permission (Set the environment) 02m:06s
3.2 - Request Runtime Permission (Check permission granted or not) 03m:08s
3.3 - Request Runtime Permission (Request permission and check result) 04m:23s
4.1 - Record and Playback Audio (Set the environment) 07m:39s
4.2 - Record and Playback Audio (Check Microphone Availability) 03m:03s
4.3 - Record and Playback Audio (Set file path and permissions) 06m:54s
4.4 - Record and Playback Audio (Add the code for recording sound) 03m:33s
4.5 - Record and Playback Audio (Add the code to playback sound) 03m:49s
5.1 - Taking Photo using Intent 06m:31s

18 - Material Design (01h:29m:54s)

TopicsDuration
1.1 - Understanding FAB and Snackbar 04m:04s
1.2 - Customizing FAB to add new items to ListView 10m:09s
1.3 - Customizing Snackbar to remove items from ListView 04m:34s
2.1 - Understanding TabLayout and ViewPager 05m:40s
2.2 - Adding TabLayout and ViewPager 07m:48s
2.3 - Creating Adapter for the ViewPager to display Fragment 07m:47s
2.4 - Synchronizing TabLayout and ViewPager movements 03m:40s
2.5 - Customizing TabLayout and ViewPager 04m:27s
3.1 - Introduction to RecyclerView and CardView 07m:35s
3.2 - Preparing the Project for RecyclerView and CardView 03m:30s
3.3 - Design the CardView Layout for each Item 05m:55s
3.4 - Creating the RecyclerAdapter and ViewHolder 12m:11s
3.5 - Finishing the RecyclerView and CardView 02m:26s
3.6 - Customizing the RecyclerView by adding Event Listener 02m:22s
3.7 - Customizing the CardView background colors and heights 03m:44s
3.8 - Testing out the different LayoutManagers for RecyclerView 04m:02s

19 - Constraint Layout Manager (31m:43s)

TopicsDuration
1 - Introduction to Constraint Layout Manager 08m:07s
2 - Understanding Margin Constraint, Opposing Constraint and Resizing View 5m:33s
3 - Set contraints relative to other view or guidelines 03m:04s
4 - Understanding the Baseline constraints 02m:28s
5 - Using various Alignment settings to control the layout of multiple views 02m:46s
6 - Using Chain to link up different views 03m:15s
7 - Example of using Constraint layout to design an interface 05m:26s
8 - How to convert Constraint Layout back to other Layout Manager 01m:04s

20 - Remote Notification with Firebase (45m:59s)

TopicsDuration
1 - Introduction to Firebase Cloud Services 03m:50s
2 - Creating a new Firebase project 2m:16s
3 - Creating an Android project and link up to Firebase project 05m:32s
4 - Testing sending remote notification to the apps using Firebase 04m:38s
5 - Setup the Apps to receive remote notifcation in foreground 08m:37s
6 - Create local notification using Pending Intent and Notification Manager 08m:20s
7 - Adding custom data to the messages and receive them in Apps 05m:01s
8 - Setup the Apps to receive the refresh token for sending message to single device 07m:45s

21 - Deployment (17m:42s)

TopicsDuration
1 - Generate signed APK using self-generated certificate and private key 05m:30s
2 - Create a new application in Google Play Store for uploading APK file 03m:02s
3 - Fill in description and upload icons and screenshots for the Apps 03m:52s
4 - Applying Content Rating for the Apps 01m:47s
5 - Complete the remaining information for the Apps and publish to Play Store 03m:31s

Featured Video Demos

Android Demo: Drawable 1m:21s

Android Demo - Video Streaming 1m:25s

Android Demo - TabLayout and ViewPager 1m:20s

Android Demo - RecyclerView and CardView 1m:38s

Android Demo - Fragments 1m:12s

Android Demo - FAB and Snackbar 1m:19s

Navigation

Social Media

IT Design