2011 mobile app development training courses for Android 2.X @ Taiwan
在 2010 年除了 Android 入門開發課程之外,也開了一門進階課程。我個人覺得在入門課中,最重的要的是幫助入門者打好基礎,尤其是 Android 平台的架構,與在該平台上應用程式運作的基礎觀念與原理。這部分要是清楚了,日後遇到問題,要自己找資料解決,也有個方向。另外就是對 ListView 元件的運行原理,也有深入的介紹,ListView 是 Android 眾多 UI 元件中,最常用到的,也是最好用的一個。透過對 ListView 的了解,其他類似的元件如 GridView, Spinner 等由 AdapterView 所延伸的元件,自然也可觸類旁通。
至於在進階課程中,最重要的部分,就是我會用將近一天的時間來解釋與剖析 Activity & Service 的生命週期。這部分是對已入門的開發者,最最重要的一部分,卻也是最不容易全盤了解與最容易被忽視的一部分。我試玩過很多應用,也看過不少人的程式,與發問的問題,都是源自於對這部分的了解不夠透徹。
在 2011 年,除了延續 2010 的課程,並將原先的課程內容都改以 Android 2.x 平台為主之外,還加開了雲端/地圖應用開發與原碼解析這門進階課。
在這個新的進階課程中,我會先介紹如何開發存取網路的 Android 應用。行動網路是智慧型手機的重要特色之一,因此開發具有網路存取功能的應用,也是大家常常會接觸的工作之一。我會在課程中提及如何在 Android 手機平台上,正確執行這項工作。智慧型手機的另項特色,就是 GPS (location-based)。接下來,我會介紹如何開發地圖 (LBS, location-based) 應用,如何抓取經緯度座標,寫好地圖應用,都是這課程會教的事。
最後,我會花半天的時間,教大家如何讀 Android 應用的源碼,並實際拿個例子來解說。我個人覺得閱讀及追蹤 Android 的原始碼,是提昇你 Android 程式設計功力最好的方式之一。當你已具備 Android 開發基礎的情況下,想要再進一步提升你的程式設計功力,除了要想辦法讓自己多增加些程式設計經驗外,閱讀及追蹤別人寫的程式碼,更是最好的方法。不過網路上,每個人的程式功力高低不同,寫出來的程式也有好有差。讀到不良的程式,看不懂還不打緊,如果誤導你的觀念,那可就得不償失。因此,當你底子還不足以判斷好壞程式時,研讀 Android 原始碼,就是你學習 Android 程式設計時,最好的導師。
底下是 2011 年計畫開的課程,不管是內容或是其他方面,要提意見的,也都歡迎在這篇文章上留言。
有句話說的好,『師父領進門,修行在個人』。千萬不要期望說,上個課就什麼都會了。天下沒有白吃的午餐,許多東西還是要自己親身走一遭,才會明白與了解。我想上課最大的好處是,透過有系統與組織的解說,降低你學習的門檻與加快進入的速度。我個人估計是 12 個小時的課程,大概可以幫你減少約 0.5~1 個月的自我摸索時間。剩下的,還是要靠自我的練習。
入門課
首先,我將課程內容都改以 Android 2.x 平台為主。在這個 Android 入門開發課程中,最重的要的是幫助入門者打好基礎,尤其是 Android 平台的架構,與在該平台上應用程式運作的基礎觀念與原理。這部分要是清楚了,日後遇到問題,要自己找資料解決,也有個方向。另外就是對 ListView 元件的運行原理,也有深入的介紹,ListView 是 Android 眾多 UI 元件中,最常用到的,也是最好用的一個。透過對 ListView 的了解,其他類似的元件如 GridView, Spinner 等由 AdapterView 所延伸的元件,自然也可觸類旁通。
課程大綱
- 熟悉 Android 2.X開發環境與Android平台知識
- 瞭解Android 2.X程式框架
- 如何有效率的偵錯程式
- 功能選單之設計與應用
- 各式使用者介面元件之設計與應用
- 如何支援多國語言與不同的硬體設備
- Intent 的使用
- 深入剖析 Activity 之運作行為
- 喜好設定之存取
- 發佈應用程式與參考資料
進階課 I
這個課程先帶領你深入研究 Android 三大重要元件 (Actiovity, Service, BroadcastReceiver) 的運作原理,與建立正確的使用觀念。其中我會用將近一天的時間來解釋與剖析 Activity & Service 的生命週期。這部分是對已入門的開發者,最最重要的一部分,卻也是最不容易全盤了解與最容易被忽視的一部分。我試玩過很多應用,也看過不少人的程式,與發問的問題,都是源自於對這部分的了解不夠透徹。BroadcastReceiver e也是最常被使用的元件,在學如何開發桌面小工具之前,如何使用這元件的正確觀念是一定要先建立的。接下來,我會介紹如何開發桌面小工具和多媒體應用。對於已熟悉 Android 應用開發,而想進一步提昇您自身應用開發實力與建立正確觀念的您,這個課程是一定要上的。
課程大綱
- 深入研究Android生命週期
- 如何開發自訂使用者元件
- 各式繪圖功能之使用與應用
- BroadcastReceiver之使用與應用
- 深入研究Service之使用與應用
- 如何建立桌面小工具
- 重力加速感應器的使用與應用
- 如何播放與錄製多媒體影音
進階課 II
在這個進階課程中,我會先介紹如何開發存取網路的 Android 應用。行動網路是智慧型手機的重要特色之一,因此開發具有網路存取功能的應用,也是大家常常會接觸的工作之一。我會在課程中提及如何在 Android 手機平台上,正確執行這項工作。智慧型手機的另項特色,就是 GPS (location-based)。
接下來,我會介紹如何開發地圖 (LBS, location-based) 應用,如何抓取經緯度座標,寫好地圖應用,都是這課程會教的事。
最後,我會花半天的時間,教大家如何讀 Android 應用的源碼,並實際拿個例子來解說。我個人覺得閱讀及追蹤 Android 的原始碼,是提昇你 Android 程式設計功力最好的方式之一。當你已具備 Android 開發基礎的情況下,想要再進一步提升你的程式設計功力,除了要想辦法讓自己多增加些程式設計經驗外,閱讀及追蹤別人寫的程式碼,更是最好的方法。不過網路上,每個人的程式功力高低不同,寫出來的程式也有好有差。讀到不良的程式,看不懂還不打緊,如果誤導你的觀念,那可就得不償失。因此,當你底子還不足以判斷好壞程式時,研讀 Android 原始碼,就是你學習 Android 程式設計時,最好的導師。
在這課程中,也會教授 Android 的第四大重要元件 ContentProvider 的用法,當然也會提及 SQLiteDatabase 這個主題。
課程大綱
- Android雲端應用開發
- - 如何開發以網頁(WebView)為基礎的 Android 應用
- - Android與WebView間的互相呼叫
- - 如何開發Android端網路應用程式,及該注意的要點
- - URL, IntentService, HttpClient, AndroidHttpClient
- - XML 與 JSON parsers 的使用
- Android LBS (地圖)應用開發
- - 如何擷取各式地理座標資訊
- - 如何開發地圖(MapView)應用
- Android原始碼徹底研究
- - 如何研讀Android原碼
- - 深入研讀Android原碼實例
- - SQLiteDatabase, ContentProvider
底下是 2011 年計畫開的課程:
日期 | 地點 | 課程名稱 | 難易度 |
5/4,5 星期三四 | 新竹 | Android 2.X 手機應用開發實務 工研院 | 基礎 |
5/18,19 星期三四 | 台北 | Android 2.X 手機應用開發實務 工研院 | 基礎 |
6/1,2 星期三四 | 台北 | Android 2.X 手機應用開發實務 工研院 | 進階 I |
6/29,30 星期三四 | 台北 | Android 2.X 手機應用開發實務 工研院 | 進階 II |
7/20,21 星期三四 | 新竹 | Android 2.X 手機應用開發實務 工研院 | 進階 I |
9/14,15 星期三四 | 台北 | Android 2.X 手機應用開發實務 工研院 | 基礎 |
10/12,13 星期三四 | 台北 | Android 2.X 手機應用開發實務 工研院 | 進階 I |
11/9,10 星期三四 | 台北 | Android 2.X 手機應用開發實務 工研院 | 進階 II |
10 則留言:
請問,費用的話…?
收費的部分都是由開課單位負責的,請自行點選相關課程連結,裡面有說明費用等資訊。
明年也會開課嗎? 請問一下 謝謝
今年才剛開始,就問到明年啦?
不確定,要等到明年才知道。
老師..請教您service的部分會教到binder或aidl嗎
會的,你講的 binder, aidl 都有講到。
進階 I 中的 service 部分,我自認應該教得很完整。
能否請問"基礎"課程適合完全沒寫過程式的人嗎?
不適合。基礎課程建議修課條件是需具備Java 語言,或是其他物件導向語言基礎。
感謝您回答!因為有看到您在2010/04有開過很基礎的課程,只是現在都沒有看到您開基礎課程了。不知道能不能推薦幾本書給初學者參考?希望看完此書後,可以去上您目前開的基礎課程
請問2012年的課表已經規劃出來了嗎?
張貼留言