Skip to main content

· One min read

在學 Android 1.0 版的地圖應用方面碰到很多麻煩。

其一是 Android 1.0 版的地圖功能,在開發中就需要由金鑰申請 Map Key。 其二是各種版本 (M3、M5、0.9、1.0) 下來幾乎很難確認哪本書、哪段 Tutorial 到現在還是正確的。

SQLite 資料庫應用亦是有相同問題。

雖然遇到很多挫折,但看看 Android Map 的實際功能影片,會覺得不管怎樣,還是該學會這麼強悍的東西呀 :D

Update: 地圖部分已經搞定了。草稿也寫了些。接著來搞定 SQLite 資料庫吧 :D

· 3 min read

在「Android Market」開放給開發者上傳應用程式的第一天(美國時間 10/27),我就將「深入淺出 Android -- Google 手持設備應用程式設計」電子書中的兩個範例程式「aBMI」(英制)(還沒釋出的範例)、「gBMI」(公制)(基礎、中階的範例)「身高體重指數計算」程式上傳到「Android Market」上。考慮到當時使用者 (美國) 主要集中在使用英制的國家,因此我預期「aBMI」應用程式會得到比較好的評價。

果然,在第一天結束之後,截圖如下

「aBMI」(英制) 得到 732 次下載,目前「active installs」(仍安裝在機器上) 的人數為 452 人(比率 61%)。共有 25 個人平均給予 3 顆星的評價。就一個運作相當簡單的應用程式而言,比起其他書籍範例的完成度,3 顆星的評價還是算相當可接受的。至於「gBMI」(公制) 則因為不是針對目標使用者設計,得到 602 次下載,「active installs」的人數為 193 人 (比率 32%)。只有 11 個人平均給 2 顆星的評價。因此可以明顯看到,「gBMI」不論是下載的人數、安裝後繼續使用的比率,或是整體評價都要比「aBMI」差一個檔次。當 Android 手機在使用「公制」的國家開賣後,相信比例或評價會再次變化。

在設計兩個應用程式時,同樣需花上差不多的時間,但是卻得到有相當明顯差別的結果。由此可以看出,手機應用程式需針對使用者的特性來設計的重要性。

· One min read

前幾天 Android 平台 開放了原始碼,同時也提供了 RoadMap。裡面有很值得玩味的訊息。

在 Q1 2009,Android 平台將會加入以下支援:

1. Localization

French, Italian, es_es, zh_TW, Ja, NL, CZ

2. IMF & IME (輸入法框架、虛擬鍵盤)

如果照著 Android 系統之前隨機子釋出的慣例來看,2009 Q1 很可能會有繁體中文版的 Android 手機喔。

· One min read

不管是專屬軟體還是開放源碼軟體,除錯絕對不會是免費的。即使沒有實際付錢,還是有機會成本和時間成本。投入開放源碼計畫的志願性程式人力是有限的,所有開放源碼計畫都在爭取同一群有限的程式設計資源,只有最具吸引力的計畫才能擁有超過需要的志願開發者。 -- Joel on Software

· 3 min read

開發過 Google App Engine 網頁應用程式的 Python 開發者,可能都有種被縛手縛腳的感覺。因為現成 Python 的網頁框架在 Google App Engine 上,有些地方因為 Google App Engine 的限制而無法作用,因此用起來不是很順手。

GAEO (Google App Engine Oil) 是個專門作用在 Google App Engine 上的框架,免去 Google App Engine 一切得自己手動建造的麻煩。

安裝

使用

easy_install gaeo 命令就可以安裝好。

安裝完提供 gaeo 跟 gaeogen 兩個命令。

建立新專案

使用

gaeo <專案名稱> 來建立一個新專案,新專案中除了基本 Google App Engine 的設定檔案外,還複製了一個 gaeo 檔案夾,提供 gaeo 相關的函式庫。

建立後進入專案,啟動 Google App Engine 開發工具的 server 就可以看到運行的網站。

還可以改使用

gaeo --eclipse <專案名稱> 來順便建立 pydev+eclipse 開發環境用的專案資訊。

程式碼組織方式

GAEO 組織程式碼的方式一樣是網頁框架常見的 Controller/Model/Templates 組織方式。剛建立的資料夾主要內容如下:

main.py application/controllers/welcome.py application/template/welcome/index.html

main.py 中可以透過 initRoutes () 函式來修改 url 對應的類別 (class)。 template 中的 welcome 資料夾則是直接對應到 controllers 中的 welcome.py。

新增函式

要新增一個 url 處理函式,可以用

gaeogen controller blog view post 命令,會在 application/controllers 中建立 blog.py 檔案,裡面有一個 'blog' class,class 中包含 'view' 和 'post' 兩個 method。另外 application/template 中也會建立一個 blog 資料夾,裡面包含 view.html 和 post.html 兩個 Django template 檔案。

技術

技術上 gaeo 樣板使用 django template,而整個 routing 是採用「一頁樣板 (template) 對應一個方法 (method) 」的組織方式,可以用類似 route 的方式添加新方法。0.2 版除了提供 scaffold (鷹架) 之外,也提供 plugin 系統,整個很有 Ruby on Rail 的感覺。

照著官方文件說明做一遍,一個多小時內就可以上手開發 Google App Engine 上的網頁應用程式啦。