2008年12月8日 星期一

用 GIGI 準則來檢驗你的 Android 應用程式

Keep the GIGI guidelines for your Android applications

2008 TWJUG 11/22 活動中,我有一張投影片,標題是 The "Two G Double I" Guidelines。因為當天時間實在有限,沒法完整講完我對於這個概念的想法。今天替地另開新文,好好講一下什麼是 "Two G Double I" 原則,不過原先這詞太繞口了,我今天將他改成 "GIGI",講的是同樣的原則。希望在對你將來在開發 Android 程式時,有所幫助。

什麼是 GIGI?GIGI 就是 GSM, Internet, GPS, Intelligent 這四個字的縮寫。

  • GSM
    Communication, Movability, Suitable for handset
  • Internet
    Rich content supported, Connecting people thru' client/server or peer-to-peer
  • GPS
    Location knowledge, Location-based service
  • Intelligent
    Less taps, more functionalities

首先,第一個是 GSM ,這代表的是手機,一個讓雙方可以即時通訊的偉大發明,他是一個高度移動的載體,也是人們隨時一定攜帶在身上的 3C 產品之一。由於會隨身攜帶,螢幕一定不能太大,儘管有些螢幕解析度已經高達 800x640 ,但是實際螢幕的尺寸還是在 3.5" 左右。因此,在 3.5" 的螢幕中,要能讓肉眼看清楚,能顯示的東西還是有限。第一個你將面臨的挑戰是可用性,如何在小小的螢幕中,完整傳達使用者所想要一次看到的東西?由於手機是一個高度移動的設備,在人們的移動過程中,是不是可以簡單地用一根手指,完成所有功能的操作?這是你的第二個挑戰,易用性。另外,最重要的是,你的軟體是執行在手機之上,當你在發想,到底要做什麼樣的應用程式時,你要思考的是,什麼樣的應用軟體是使用者隨時要用到的。當然,這還不能違背前面講的可用及易用原則。在 handheld 的市場上,一直都有看到 document writer 這樣的產品,不可否認地,一定有某種程度的使用需求,可是在現實上,有多少人真的會拿手機來打文件?看這些產品賣的如何就知道答案了。

Internet, 這是 Google 手機所要傳達的最重要理念。能和 Internet 結合的 smart phone,比比皆是。不過,Gphone 卻是第一個有這個 guts ,將 Internet 列為必備的選項。你買到的 Gphone 如果不配備個 3G 吃到飽的費率,那 IM, Email, Calendar, Contact 等軟體的功力馬上大減一半。Internet 對手機軟體來說,實在是個寶庫,Internet 上有各式各樣的內容,你可以只在有需要時,才去下載必要的內容下來。而應用 Internet 這樣 thin cleint/server 的概念,剛好也可彌補手機在計算力與儲存空間不足的缺點。第二個用 Internet 的最大好處是,connectivity。手機上的語音通信,多是一對一的連結,在 Internet 上,卻是多人對多人的連結。不管是 IM 或是 social network 都是應用這些方面的佼佼者。另外,善加應用 Internet 上 server 的能力,也是提高應用程式技術門檻的好方法。在手機上的軟體,通常來說,技術門檻都不高。而創意這樣的東西,又太容易被人模仿或抄襲。但是,如果你的應用軟體可以和 Internet 上的伺服器結合,不僅可以增強程式的 functionalities,還可以將單純的一次性軟體銷售,轉成以服務為基礎的連續銷售模式,對於提高競爭力或是獲利能力,都是個不錯的選擇。

手機可以輕易地讓別人連絡上你,可是要知道你目前在哪裡,那可得靠 GPS。GPS 不一定就是要和地圖扯上關係,他只是透過天上的衛星,告訴你現在的地理座標,而地圖只是用來表達你的地理位置。有了這地理座標,似乎應用程式可以發揮的空間又大了許多。像是貼上座標資訊的相片,讓你可以回憶起這照片是在哪拍的。有了座標,應用程式可以告訴你附近哪有好吃好玩的景點,或是提醒你附近有那些待辦事項或待訪客戶。另外,像我曾舉過的高鐵/台鐵行車查詢系統例子,也是個 GPS 的好應用。例如,當你現在就急忙著,從板橋搭最近的高鐵回新竹時,如果第一個畫面,就將出發地設在板橋,這不是很好嗎?要怎麼做到這點?有 GPS 就可以,甚至於 A-GPS 的資訊,也就足夠讓應用軟體做出最好的判斷。一般提到 GPS,大家總是想到導航軟體,其實將 GPS 單純地想成是一個即時的座標提供者。而你所要思考的是,到底你的應用軟體要如何地善用這座標資訊。

最後一個是 Intelligent。也就是如何用最少的按鍵,完成使用者想要完成的事。由於手機的按鍵或輸入的先天不便限制,加上使用者極可能是在移動中使用你的軟體。因此,在使用介面的設計上,你常要思考的是,有那些事情是我可以自動幫使用者判斷的,或是藉由其他的資訊取代傳統的人為輸入。要寫出一個聰明的程式,首先必備的就是,背後有充足的資訊,來供程式判斷。像是前面講的,GPS 可以提供給你地理座標的資訊,Internet 上也有各式的資訊供你取用。Gphone 上也有電子羅盤,可以提供你方向的資訊。還有加速感應器,可以告訴你目前手機是否正在下墜,被旋轉,或是搖晃中等等。有了這麼多的資訊,接下來就要靠你如何將這些資訊,組織成有用的知識,幫助程式做出最佳的決定,或是提供最好的結果。

看到這裡,如果你正想要寫個 Android 軟體,我希望這裡提的 GIGI 準則,能幫你找到方向與靈感。如果你正在寫 Android 軟體,我也希望你也能時時檢驗你的應用程式,是否符合這裡列的 GIGI 準則。

沒有留言:

張貼留言