APP 開發工程師人物誌(02):一腦雙手改變世界的男人 楊峻武

APP 開發工程師人物誌(02):一腦雙手改變世界的男人 楊峻武 

  • 姓名:楊峻武
  • 學經歷:台灣科技大學營建工程系、台灣大學土木研究所電腦輔助工程組、台灣世曦、恩海科技
  • android開發經驗:二年半
  • 開發Apps產品:

程式開發經驗超過十多年,熟稔JAVA程式開發以及大型智慧運輸系統的楊峻武,近幾年鑽研 Android Apps 開發並成立恩海科技有限公司,從微型應用程式出發,目標打造具有智慧功能的應用程式並應用在數位家庭的環境中。這位和我們一樣只有一顆大腦一雙手卻有著改變世界心胸的工程師,讓我們一起探索他及他眼中的程式開發新世界:

喜歡的 Android Apps 有哪些?

  • Astrid - 這待辦事項軟體代表了劃時代App與雲端的整合,擁有強大的推播功能,可說是to-do list雲端化的代表,而且愈改版使用者介面親和力愈強。

  • 電視美食 - 各大節目美食全都有,內容更新快是比其他應用程式好的地方。

  • 轉乘通 - LBS的經典應用,從自己的所在位置搜尋附近站牌,能很快地選到自己在尋找的公車路線,算是最佳的智慧運輸系統行動化的應用案例。雖然LBS在行銷應用上也有很多軟體,但在便民資訊的應用上,轉乘通最為經典。

APP 開發工程師人物誌(02):一腦雙手改變世界的男人 楊峻武

自己用的Android手機:

過去 - HTC incridible:HTC widget 很棒,也比別人多,Sense UI 介面很好看,但佔有的記憶體太多是唯一的遺憾。

Samsung S3 - 知己知彼、百戰百勝。有創意,有一些很棒的操作方式,例如手勢螢幕截圖。SD卡動態鎖定,copy檔案時才開始鎖定SD卡,不用切換手機的模式(外接硬碟/手機)。HTC手機可能在接上電腦又開啟App時,因為SD卡鎖定的原因而造成App crash,否則的話,以widget和手機播號介面來說,HTC還是勝出。

 

喜歡的人物:

喜歡蘋果創辦人賈伯斯把產品做到盡善盡美的態度,完美融合藝術家與工程師。工程師太理性了,所以不會燃燒靈魂,但如果有藝術家的性格,就會燃燒自己的靈魂,把產品打造到最完美的狀態


為什麼要開發 Android Apps?

開發Andorid Apps 具有可以整合的特性、象徵自由的精神。特別是JAVA的世界,Library就是Open,除了Java Server軟體需要付費以外,幾乎所有Java都是Open Source,有一種取之於世界用之於世界的觀念。Apple App Store 走封閉的體系,讓許多開發者以此營利,但程式設計師應該要更有理念、做更酷的事,不是只有營利而已。

營利是專注開發一個很棒的服務之後,順道得來的成就。在JAVA的世界裡,Libray開發者創造出更好的工具,然後無私分享給所有的開發者,開發者使用之後,又繼續開發出更好的工具,這樣的良性循環非常棒,感覺世界可以無止無盡地進步下去。

 

個人開發或創立公司?

差別在於營運的形式,個人開發較自由自在,象徵個人力量。開發公司象徵一個團隊,一個人的力量有限,但團隊的力量卻有無限大的可能。

 

APP 開發工程師人物誌(02):一腦雙手改變世界的男人 楊峻武

公司名稱取作恩海科技有什麼特別的意義呢?

恩海其實是自己筆名的一部分

「恩」這個字好像在商業上很少用到,但我喜歡「恩」這個字,有一種心懷感恩的力量,像徵不忘本。

「海」代表無限大,象徵公司具有無限發展的可能性

恩惠似海,其實也是我的處世價值觀,因為愛因斯坦也說過類似的話「我每天上百次地提醒自己,我的精神生活和物質生活都依靠著別人(包括活著的和死去的)的勞動,我必須盡力以同樣的分量來報償我所領受了的和至今還在領受著的東西。」


發展 App 開發的想法?

需求導向,不要忘記使用者需求和情境。最適合開發的App就是開發者同時也會經常使用的App,這樣開發者就會有熱情,而且會開發地盡善盡美

開發App應該要以情境導向來思考,揣摩使用當時的情境與環境,若不熟悉那樣的情境,便無從體會真正使用者的困擾來自何處,所以我開發出的App都是基於自己的需求。

我最想提醒程式設計師的一點是,「Programing for yourself」。寫程式並不只是一份工作,同時也是世界上最便宜的發明工程,能為自己寫程式、自己能使用自己寫的程式(無論家中或工作上),這才是最酷的。


如何選擇Apps開發的類型(工具、遊戲、服務)?

客戶想開發App我會請他想清楚類型,如果沒有先定調,客戶會在App的調性上變來變去,徒增開發上的成本。而且不同的類型會有不同的UX,軟體提供的功能與價值屬於哪種類型、就該以相對應的介面呈現。很多人以為決定App的領域與提供的資訊就等同於決定調性,但其實並非如此。例如公車資訊雖然可以是LBS便民服務,但也可以改用社交介面呈現。所以功能和調性其實是可以排列組合的,正是這樣的排列組合讓我能激發出各式各樣的功能創意與介面創新。


有時候也會看客戶的性質,如果客戶公司的特質是適合資訊App,那設計時就會鎖定在資訊提供型App。現在FB很紅,很多客戶都想做社交App,但其實這些客戶並不適合將自己的品牌App發展成社交App,因為大部分使用者其實只會用最大的社交服務(Facebook)。


開發過程中遇到的難題是什麼?怎麼辦

早期Android有三種主要解析度,為了要支援這些解析度、CPU、Camera,雖然都有遵循 android SDK 開發,但對於這些硬體元件,要做非常多的測試。現在硬體又更多元,有更多種解析度,在設計軟體的時候被迫設計成可以相容各種解析度的介面,因此在調整UI上花最多時間。

且因為解析度太多,例如SONY有一支 SmartWatch(http://www.cool3c.com/article/54902)、200x200 Pixels 解析度的 android手錶,很酷,但完全無法相容。有時客戶有特殊需求,才會為特別解析度的螢幕作調整。其實 android 本身就設計成彈性的發展,但對於開發公司來說,要考慮的是開發成本的問題,所以要先追求有,才追求好。


自己開發的App有什麼得意Code用法嗎?

開發自己需要用的Libray:其實android開發在網路上可以看到很多的範例,看實際寫程式用這些範例open source libray,但有更多功能想要減少重工的使用,所以我自己開發了自己的granddroid,現在放在google code上(http://code.google.com/p/grandroid/,目前說明文件少,未來會陸續補上說明),上面包含了許多常用功能。

例如排版(android傳統用html排版,但我們用原生的code排版,提昇了排版的速度)、圖片處理(疊圖、裁剪圖、縮放圖,省掉開發者為這些功能google搜尋的時間)、資料庫ORM(Object-Relational-Mapping是程式界很普遍的作法,把資料表和類別作對應)等二三十種功能,加上一些衛星library,功能會有四十種。會設計這套Library的原因是,android 上有很多寫法記不住,因此要常重新google,而時間就浪費在這裡,久了就想要找到以提昇效率。

 

推薦給工程師的書籍:

APP 開發工程師人物誌(02):一腦雙手改變世界的男人 楊峻武

設計的法則》:想要了解 App 界面設計的本質,就看這本書,如果想要分析 App 界面設計設計的實務就看《Tapworthy:打造完美的iPhone應用程式》。



App美學設計的問題怎麼解決?

設計的法則書中提到一個關鍵點:外部一致性-人們進App之前,看到是桌面或其他軟體,人們從其他地方進到這支App來,除非有非常自己的風格,否則使用軟體的感覺應該和整體環境一樣,這樣的設計感通常是光影和立體感,這也會讓使用者不會覺得很突兀, 如果光源在上方,設計上就一致光在上方。如果只是用純色的設計,人們在使用感受上會不連續。

另外就是使用慣例也要遵循多數android設計的使用慣例,Google比較沒有強制要求開發者有一個通用的慣例,如果Android開發者沒有一個共通的使用慣例,那使用者在使用軟體上就會混亂,這也是目前Android和Apple差別的地方。


怎麼推廣這些Apps?

個人或小公司通常沒有行銷資源,比較適合的方式是口碑行銷,透過社群網站的口碑來傳遞。又遠傳s市集會有一個專員會和開發者聯絡,如果需要推廣的話他們會在自家市集上面推廣,只可惜S市集的使用者太少。可能是因為電訊商不夠酷、形象不夠好的原因。盯字庫當時就上了S市集,但得到很多使用者意見使用S市集流程上太果繁瑣,讓使用者忘之怯步,如果我們推出 Google Play 上面的版本就願意下載。台灣的商城應該和美國看齊,只要註冊必要的資訊即可,不需要得取使用者全部的個人資料。


獲利的模式是什麼?

賣軟體或廣告是兩個主要獲利來源。另外就是異業合作和 inApp-Purchase。

自己想要開發的App是以服務為本質,再來思考獲利模式,因為產品不好,其他都沒有意義。一套成功的產品,自會找到獲利的方法。

賣錢的軟體通常有特質:規模小、不需要伺服器,但容易被複製。恩海走的路是一種整體的服務體驗,而且不侷限於行動產品,而是包括網路的整體服務,且其他開發者不容易的複製,能有更多發展機會的服務。


接案和獨立開發Apps之間的掙扎可以分享一下嗎?

接案有錢、自己開發沒有錢。接案的想法其實是以戰養戰,作一個月的案子要養活自己兩個月,然後拿另一個月來開發自己的產品。希望明年的時候(直到有成功的產品),可以以自主開發產品為主,漸漸減少接案的頻率。

團隊一直維持小規模,也是為了在案子不忙的時候可以全心開發自己的服務。以前有一種說法,創造一個十人的公司,我則可以空出來自己開發產品,但其實這樣作不到。維持小規模能控制好成本,才不會被營運成本拖垮,為了存活根本無法發展自己的軟體。


定義成功:我的目標課群非常喜歡我們的App,也達到幾十萬使用者的規模。

成功目標:Facebook,作為技術型創業家,FB走的路是我欣賞的,並不是故事情結或身價,而是FB這個網站技術的演化和吸引人的特性,以及一直維持簡單的風格。在世界充滿網路創業家的時代裡,FB的技術特質是非常獨特的。是少數幾乎每個功能都開放API的網站,甚至可以在網站放上各式App,這也是一個開放才成功的案例。


有什麼話想對其他開發者或使用者說?

  • 站在巨人的肩膀上-只可意會不可言傳(研究所的恩師說的)
  • 多作酷的東西-無法解釋的酷,別人作過的事情你還要再做一遍嘛
  • Android的核心價值是跨App整合


下一部Apps開發的想法是什麼?改善現在的Apps還是有新Apps的想法呢?

將既有的App開發完整化,往智慧家庭的領域發展,敬請期待。


開發軟體之外的興趣是什麼?

設計Library,程式十多年的經驗對我來說,設計Library是興趣,應用 library 來作 App 是我的工作,這也是我能常保寫程式的興趣。這就跟建築師想要更棒的建築想法一樣,設計Libray能讓我有更開闊的眼界。希望台灣的工程師能夠多開發Libray,而不是只取用Libray,希望有一天能夠有一個台灣設計Libray的社群,而不只是當個開發Apps的工程師而已。

有時候找不到人可以交流是一種痛苦,這就是我現在的煩惱所在。程式設計師開發自己的東西是一種既期待又怕受傷害的心情,所以大家都不太交流討論的原因。請大家多用我的Librray並和我交流討論,一起讓Library更加進步!

 

↓↓↓↓↓↓加入癮科技粉絲團,有更多歡樂有趣的科技新聞↓↓↓↓↓↓