大部份的技術可以被分為兩大類,一個是使用者真正想要的並且會主動尋求的,而另一種只是為了解決某些問題而推出的基本解決方案。 > 後者經常流於行銷噱頭而最終引不起消費者實際購買的興趣。
使用Jenkins持續集成與發佈Android應用程式
這是上週在Coscup 2011活動中演講的主題與投影片。
介紹:
Jenkins (http://jenkins-ci.org/) 是個廣為使用的持續集成(Continue Integration)框架,可以協助軟體工程師統合處理各種圍繞著「寫程式」之外的程式開發工作(如版本控制、環境設定、編譯、測試、發佈)。
在這個議程中將和大家分享實際使用 Jenkins 持續集成與發佈 Android App,讓管理多應用程式變得更容易的經驗。
View more presentations from gasolin
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 就算了吧)
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,不然大可不必揣測我會隨意砍誰的回覆。
樂手與程序員
想要找一份穩定安逸工作的音樂人成不了音樂家。音樂這行很殘酷,壓根也不可能安逸。能成為專業樂手的人都想成名。一名樂手要不就努力想成名,要不就根本別踏進這一行。 > 經常有人問我為什麼很多優秀的樂手同時又是很棒的軟體開發工程師。 這絕對不是因為這兩種職業使用一樣的腦部功能,也不是因為他們都是追求細節和創造力的工作,而是因為一個渴望成功的人肯定要比那些只是單純完成工作的人更有可能成功。 > 即使我們不能成為 Linus Torvalds 那樣的人,但確定高目標至少可以讓我們不再平凡。 > -- Chad Fowler , The passionate Programmer