Saturday, August 27, 2011

技術


大部份的技術可以被分為兩大類,一個是使用者真正想要的並且會主動尋求的,而另一種只是為了解決某些問題而推出的基本解決方案。 
後者經常流於行銷噱頭而最終引不起消費者實際購買的興趣。

使用Jenkins持續集成與發佈Android應用程式

這是上週在Coscup 2011活動中演講的主題與投影片。 

介紹:

Jenkins (http://jenkins-ci.org/) 是個廣為使用的持續集成(Continue Integration)框架,可以協助軟體工程師統合處理各種圍繞著「寫程式」之外的程式開發工作(如版本控制、環境設定、編譯、測試、發佈)。 

在這個議程中將和大家分享實際使用Jenkins持續集成與發佈Android App,讓管理多應用程式變得更容易的經驗。

Thursday, August 18, 2011

AppInventor+愛無赦?(台客舞App開發心得)

AppInventor 是GoogleLab中一個有趣的工具,可以讓一般人簡單地透過像堆積木的方式寫出一個Android App。(剛好Make雜誌也出了AppInventor報導) 這週三Taipei GTUG舉辦了AppInventor Bootcamp, 由我先簡單介紹如何安裝與使用AppInventor後, 再將時間交給大家,創作具備台灣特色,或能展現台灣特色與風格的App。 首先當然是拿大家熟悉的BMI,重現在AppInventor上
接著則是介紹程式積木部分,程式積木部分做到了原BMI程式大部分的功能。 可以看到用拖拉積木的方式寫一個轉換數值程式,是蠻厚工的一件事。 (剛剛要截圖才發現這部份原始碼被覆蓋掉了Orz,等影片轉出來再把錄到的畫面嵌在這) 接著活動就進入Hacking模式。今天不少人都在問:用AppInventor寫好的App要怎麼轉換成程式碼?答案是目前沒有這樣的功能,也許年底AppInventor Open Source了之後,會有好心人寫出來吧... 昨晚Hack的成果,是「台客舞App」。 台客舞App簡介: 看過jolin的愛無赦MV嗎?
裡面的電音舞曲和掌心燈是不是很搶眼而讓人一見難忘呢? 這個AppInventor作品結合了電音舞曲播放和掌心燈的功能, 只要你擁有Android手機,就可以隨時跳一首台客舞曲~ 夠台味吧XD 這個程式很簡單,主體是兩個按鈕和一個聲音檔案。
聲音檔案的部份,AppInventor目前只接受小於2MB的檔案,因此先用Audacity工具裁減了一小段轉成MP3檔,然後加入這個專案中。 另外兩個按鈕,一個「播放」(Play)按鈕放在最上頭,按了之後即開始播放音樂。再按一次後就停止。 另一個按鈕則是佔用大部分的螢幕,並將底色改為和背景同樣的黑色, 在按下後會變換成白色,以模擬掌心燈的開、關狀態。
有興趣看現場DEMO的人,可以參加(Coscup BoF) Appinventor Hack & Show 活動(希望有人願意拿著現場秀一段台客舞XD)。 程式可以到http://showinventor.appspot.com/main/gallery下載,供大家娛樂一下。 (Android Market就算了吧)

Tuesday, August 09, 2011

Android 3.x與手機?


因為有一些人對Android 3與手機的關聯無法搭上線,在這邊記錄一些FAQ:

1. 手機應該和android 3無關吧!小弟還特別到官網讀了正式文件,確認android 3是給平板電腦用的,android 2才是給手機用的,後續或許會整合,但那是以後的事了不是嗎?

Android 3是Android最新版號,而且向下相容多數API。用Android 3.2 SDK來開發2.x版本(手機)的應用程式完全沒有問題。

第四版主要使用3.x的SDK,只有要使用手機的虛擬機器時,才使用2.x SDK提供的虛擬機器(因為3.x SDK中只附了平板虛擬機器,沒有附手機版的虛擬機器)。採用本書寫法的話,程式在平板和手機上都能正常運行。您可以拿您手邊現有的任一開發中App來測、或等拿到書的時候照著試試,看看是不是確實能在3.x SDK上開發手機應用程式。

2. 本書既然叫Android 3,卻沒有講平板用的fragment API?
首先,這是一本入門書。這本書內容和其他同類書籍不同,關注的是跨版本的基礎知識(所以書名叫「入門」)。封面說明的部份有寫,想傳達的是用這本入門,就算是更新的版本拿來一樣適用。在寫現在版本時想的是善用開發工具、與市面上主流版本相容,而非關注新功能。

而現在平板在Android系統中的市佔率 1.2%,要撐起書市還不到時機(個人意見)。一般入門的開發者(本書的預設讀者群)會專為了1.2%的使用者而開發?我認為不會。

有些開發基礎,而又看過我的書的人,應該知道我一貫建議去官方網站查這些進階的API,而不是苦苦等中文書。


平板的fragment API(將畫面分隔的API)有兩種版本,一種是向後相容版,可以跑在Android 2.x 機種上。另一種是原生版,只能跑在3.x Tablet上。根據我個人的評估,這兩種API還會有某種程度的改動,除非是專為了平板而開發,不然學習fragment API還不是時候(也許等到Ice Cream Sandwich?)

3. 看第四版的目錄好像沒有講到Android 3的特性?
其實各種新東西講了不少,但都已經整合在各個章節中,融入了整個學習過程裡。

在主要開發手機應用程式的情況下, 2.x 和 3.x 還有什麼差別哩?3.x版為了平板做很多事情,若是還繼續用 2.x SDK開發,程式放到Tablet上會有些"不太Native"的感覺,如選單會出現在平板的下方,而不是如其他內建應用程式顯示Action Bar在上方。

比起專為平板設計一份程式碼,在Android上要解決這些問題較容易。本入門書第四版的目標是「寫一次,就能在手機、平板、Google TV等設備上執行」。

因此我是以這樣的想法,以手機為主,在維持本書架構的開發過程中,加入更多實際經驗與技巧,來協助Android應用程式開發的入門者或剛接觸平板等機種的開發者。第四版除了圖片重新擷取之外,內容大概有30~40%的改動。新版加入了一些新章節,介紹了選單、關連選單、App Widget(桌面小工具)與平板相容設定。還加上了AsyncTask、Admob等章節,在主要使用者為手機的情形下,也能讓平板的使用者得到不錯的使用經驗。

「雖然平板等機種的數量少,但如果不麻煩的話,還是盡可能支援吧?」如果您贊同這樣的想法,那看這本書可以得到您想要的。


不必懷疑,這是我的誠意之作


PS: 本書歷版以來都追求和市面其他書籍不同,不求全,只追求初學者透過本書能確實理解Android應用程式開發,並能投入實用。我一直以支持入門者的想法來改版或寫作。除非是spam,不然大可不必揣測我會隨意砍誰的回覆。