網頁

搜尋此網誌

2012年12月29日 星期六

Creating Android applications: develop and design 開發設計極速上手

最近剛接觸Android應用程式開發,原本想說只看官方的Training資訊就好,雖然Google官方文件已經寫的很好(完整詳細又有系統),但就是資訊太多沒有頭緒,看了一陣子發現還是找本入門書來讀,於是找了這本「Android應用程式開發設計極速上手」。


Chris Haseman著,曾建富譯,Android應用程式開發設計極速上手,台北:上奇資訊,2012。譯自:Creating Android applications: develop and design

這本書的特色在於內容著重於Android應用程式的原理與觀念,不像一些書籍是介紹Android有什麼元件可以用、怎麼用(範例程式),像這些「用法」其實Google的Android官方網站已經非常詳盡,不太需要去買書來看。

倒是像原理與觀念方面的知識,這些內容分佈在Android官方網站各處,對於初學者來說要掌握比較困難(還要花大量時間),所以才需要看這本「極速上手」!作者是擁有8年行動軟體開發經驗,開發Android則擁有3年,內容上以循序漸進的方式引導讀者進入Android應用程式的開發,總共11章的內容建議依序閱讀。

比較重要的觀念有:
  • AndroidManifest.xml是Android應用程式的入口,這個檔案有關應用程式的所有設定。
  • Android應用程式的「根」是Application類別,一個Application可以有多個Activity類別。
  • Activity類別像是網頁領域的Web Page,Android應用程式的畫面就像是網頁。一般來說,一個Activity會對應到一個特定的Layout。
  • Intent類別像是視窗領域的Message,Intent是用在各個Activity類別之間的通訊,以及和Android系統溝通之用。
  • Android應用程式的組成除了最常用的Activity外,還有其他三個類別:Service、Content Provider、Broadcast Receiver,總共4種元件。

###

2012年12月26日 星期三

Contributing to Eclipse 投入「蝕」

搞笑談軟工的「還少一本書:Contributing to eclipse: Principles, Patterns, and Plug-ins」這篇文章提到一本經典著作,聽了Teddy的話於是買一本回家供奉珍藏,以免之後發生絕版的情形而遺憾。

只要有心,人人都可以成為「蝕」神!

Erich Gamma and Kent Beck, Contributing to Eclipse: Principles, Patterns, and Plug-Ins, Massachusetts: Person Education, 2004.

這本書的作者是大名鼎鼎的Erich Gamma,他就是「物件導向設計模式」的作者之一,而他和 Kent Beck是JUnit的開發者和維護者。這本書主要是介紹eclipse貢獻開發的重要觀念和資訊,並且說明Eclipse的生態系,其中Eclipse有個重要觀念:就是每個使用eclipse的用戶都是潛在的程式開發人員。作者說這和Smalltalk的目標很像,授予用戶能夠使用Eclipse的經驗,而且提供用戶有更多權力的學習環境,進而不斷提升整個Eclipse的功能。

在Eclipse生態系中有6個角色:
  • Users:使用者,使用Eclipse的程式開發人員。
  • Configurers:配置者,根據自身的使用經驗設定Eclipse功能。
  • Extenders:擴展者,改變原本Eclipse的既有功能,讓Eclipse擴充做更多的事情。
  • Publishiers:發佈者,開發好用的擴充套件,提供給Eclipse的使用者。
  • Enablers:啟用者,提供擴充套件的擴充點讓更多開發人員擴充既有功能。
  • Committer:提交人,Eclipse是Open Source Project,由提交人組成的委員會管理。
這六個角色當中的5個層級構成貢獻循環(Contribution Circle),循環是Users→ Configurers→ Extenders→ Publishiers→ Enablers→ Users,注意到Enablers最後回到Users。整本書分成4個循環介紹如何貢獻Eclipse,從「Circle 0」到「Circle 3」,每個循環更進一步介紹貢獻開發的細節。

貢獻Eclipse之前,必須先了解eclipse的軟體架構,基本上Eclipse是採用外掛架構(plug-in architecture, 或稱插件架構),外掛架構由兩個部分組成:
  • 擴充點(extention points):提供外掛放置的地方(places-to-plug-things-in)
  • 擴充(extentions ):外掛的元件(things-plugged-in)
 Eclipse的架構由上至下分為三層:
  • Plug-in Development Environment (PDE):外掛開發環境,擴充JDT使Eclipse支援外掛的開發。
  • Java Development Tools (JDT):Java開發工具,讓Eclipse成為完整的Java整合開發環境。
  • Platform:定義通用性程式語言(common programming-language-neutral)的基礎架構
其中Platform的部分由兩大部分組成,各自包含不同元件:
  • 使用者介面部分(User Interface, UI)
    • Workbench(工作臺)
    • JFace
    • Standward Widget Toolkit, SWT
  • 核心部分(Core, UI-independent)
    • Workspace(工作區)
    • Runtime
有關使用者介面的資訊可以參考官方準則「Eclipse User Interface GuidelinesVersion 2.1」,裡面有更詳細的說明。在貢獻Eclipse時,務必先有上述的概念,並且認識相關術語,這樣閱讀開發文件能可以清楚了解。

###

2012年12月11日 星期二

J.J.Pan 人生基本功:建築師潘冀的砌磚哲學

建築以載道.

這是講述建築師潘冀(Joshua Jin Pan)先生故事的一本書。如果沒有出版這本書,大概除了建築界之外沒有人知道他吧!潘冀先生是台灣最大的建築事務所主持人,而且新竹科學園區三分之一的廠房出自他手,他行事低調做人謙虛,因此「知名度」不高。做事則是務實、實事求是、不攀關係、不附榮華、不苟同流俗,非常值得我們學習。

這本書不僅讓我們有機會認識潘冀先生,更重要的是他的堅持與人生態度,他的價值觀正確且正面,我認為非常值得青年學子學習,書中包含他求學畢業、工作與創業的過程,特別推薦給剛進入職場的新鮮人閱讀參考。


潘冀口述、藍麗娟撰文,人生基本功:建築師潘冀的砌磚哲學,台北:圓神,2010。
圓神書活網:http://www.booklife.com.tw/jjpan.htm

以下是潘冀先生所說的幾段話,讀了可以更堅定自己的信念!
  • 很難改變別人的偏見,但自身處境可以改變,往自己堅持的理想前進。 p. 40
  • 每一件事我都要能講得出道理,講得出來,就不會被說是用權力在壓迫別人。 p. 53
  • 每一個工作,都可以有計畫的幫自己尋找磨練的機會。 p.53
  • 所有的成就都來自於基本功;而基本功來自於既深且廣的歷練。過程中,心態尤其重要。 p. 58
  • 每天把生活的優先順序排對了,就可以讓你的腦袋很清楚,日子過得比較順暢有效率。 p. 63
  • 「一次就做對」與「一次就做到完美」是不同的概念。
    我們應該先把事情做到一個(正確的)階段,然後再往更高的目標跳。也就是說,一定要先求有,再求好。 p. 69
  • 精神好時做較艱澀的事,精神差時做比較輕鬆的事。 p. 71
  • 好的建築是里程碑,壞的建築是墓碑。 p. 92
  • 最有價值的事物都是不退流行的。人類有某些基本原則是不變的。 p. 100
  • 建築設計的才能可以培養,但是,正確的價值觀與做事方法卻要經過薰陶。 p. 138
  • 管理學上講究「留才」;對我而言,留在我們事務所是一種「留」,留在世界上是一種「留」,好人才不一定都要我們擁有,只要可以看到,可以欣賞,對社會有貢獻就好了。 p. 141
  • 每個人都是一個人,不是一個生產工具。 p. 142
  • 站在對方立場想,說道理給他聽,讓他了解,你與他都站在同一條陣線上,既然目標相同,可以互相幫忙,把事情做好,你不是只顧自己的私利。這樣,即使是看似一觸即發的衝突,也能化解為雙贏的局面。 p. 160
  • 專業人員就是專業人員,沒有級別之分。身為專業服務工作者,做專業的工作是不能管階級的。 p. 167
  • 一件不對的事,儘管大家都做,仍然是不對的事。 p. 174
  • 只要大家都當一回事去努力,不正當的事情就會減少,這樣社會才有希望;假如大家都隨波逐流,越陷越深,就沒有希望了。 p. 176
  • 我們的教育制度迫使孩子們不斷在跑,每一次都是為了考試,考完一關再考一關,每一次都只是衝刺百米而已;但是,人生是一輩子的事,我們應該培養孩子的不是考試的能力,而是面對人生的人格、素質、涵養與能力。 p. 179
  • 人總是可以在夾縫裡找到一些想做或喜歡的事,把它穿插在不想或不喜歡的事之間,就不至於一整天都繃緊神經,也是平衡工作與生活的重要關鍵。 p. 201
  • 一般人認為將工作與生活的時間與空間分開,就是「工作與生活平衡」。我認為關鍵不在於各自完整分開,而在於「專心」。不論工作與生活,做每件事只要專心即可。 p. 203
  • 求取工作與生活的平衡有其方法,關注的焦點不見得是時間多寡,而在於互動品質。 p. 210
  • 嚴格來說,人並不絕對擁有什麼。如果你覺得你「擁有」某些東西,那是因為上天交付給每個人的職責與角色不同,並賦予人人不同的機會與條件。人的職責是努力將上天交付的條件善加發揮,盡力把事情做好。 p. 213
  • 放下「擁有者」的觀念,把自己視為自己生命、工作崗位、或孩子的「代管經營者」,在人生的短暫光陰裡,如何克盡己責,對世界有貢獻,才是不時需要自我提醒的終極關切。 p. 219
  • 我堅信,社會要進步,每個人都要發揮力量。 p. 229

###

熱門文章