自 2009 年自己學習 Android 開發算起已經過了五年了,雖然在技術上自己並非頂尖,但是這幾年不管是在App 開發、App 開發教學或App 經營與行銷,或多或少都累積了一些經驗,希望能藉由這次的鐵人賽分享這些經驗。由於自己的興趣還是比較偏向「教學」的部份,也曾經出版過《Android程式設計入門與應用》這本「教科書」(http://www.opentech.com.tw/search/bookinfo.asp?isbn=9789572194126&companyID=04383129),因此這次的鐵人賽會以「教學」為主, 設定的讀者是「Android初學者」,然而跟已出版的書不一樣的是,這次會以一個 App 的開發為例,完整地介紹這個 App 的開發過程,也就是說若能寫滿 30 天,那麼不僅自己又有一個新的 App上架,讀者也可以學習到類似 App 的開發。
由於今天是第一天,先簡單地介紹自己在 Android 開發上的經驗,如先所提,在 2009 年時就感受到智慧型行動裝置會是未來一個很熱的議題,因此開始自學 Android App 的開發,在學習的過程中習慣性地把學到的東西寫下來,後來這些筆記就成了第一版的教材 (http://hscc.cs.nctu.edu.tw/~lincyu/Android/android.html),接著在 2010 年年初,就使用這份教材第一次在交通大學上課,那時教材尚未全部製作完成,可以說是邊寫邊教,壓力不小,收獲也不少。同時也開始進行 WhosCall 的開發,一個星期就完成了 WhosCall 1.0 版的開發,那時還不懂得使用 System Alert Window,因此使用 Activity來顯示來電資訊,然而收到來電的 Broadcast 之後,若直接啟動 Activity,會有一個問題就是接收來電廣播的 Broadcast Receiver 不只一個 (例如系統也會啟動一個可以接聽/掛斷電話的 Activity),我們會無法確保哪一個 Activity 先被啟動,如此來電資訊可能被「蓋在」後面,那時是使用兩個 Broadcast Receivers 來解決這問題,當然後來採用 System Alert Window 後就沒有這問題了。
2012年選擇離開 gogolook,對我而言 gogolook 只是一家沒有誠信 (答應的事永遠都是口頭說說)、不懂感恩的公司,離開前 WhosCall 的版本記得是 3.1.X (X多少已經忘了),可以這麼說 1.0 ~ 3.1.X 的主要功能都是我開發的,而我從沒因開發 WhosCall 拿取到任何利益,一塊錢都沒有。離開 gogolook 後陷入了人生的低潮,自己也在那時期結了婚,由於老婆是護理師的關係,在2013年5月開發了「班表小幫手」這個 App (https://play.google.com/store/apps/details?id=lincyu.shifttable),班表小幫手在上架 36 天後就達成10,000下載,七月多月達成100,000下載,那時幾乎每天都在回覆使用者的來信和進行程式的改版,同時熱心的國外使用者也協助翻譯的工作,目前「班表小幫手」已支援繁體中文、英文、俄文、捷克文、西班牙文、印尼文等,忙碌的結果,也讓自己不會負面思考,可以說因為開發 App 讓我陷入了人生的低潮,也因為開發 App 讓我走出低潮。
今年年初,全華出版社找我討論 《Android程式設計入門與應用》書籍的撰寫計畫,很高興出版社願意給我這個機會,讓我可以將自己寫的學習筆記整理成書,然而那本書的編寫是以一個主題搭配數個範例的形式來撰寫,與一個完整的 App 比較起來,範例程式都相當的精簡,因此這次的鐵人賽,打算換一種形式來介紹 Android 的開發,以一個較為完整的 App 為範例,介紹開發這個範例所需要用到的各種開發技巧,由於自己的小孩剛剛出生,發現寶寶的飲食、睡眠、活動狀態等,都需要有個完整的記錄,因此將以一個「寶寶生活記錄 App」為範例,來解說 Android App 的各種開發技巧與概念。