我是如何在Tizen app大賽中獲獎的

來源:互聯網
上載者:User

我是如何在Tizen app大賽中獲獎的

 

在2013年9月底,我才決定參加Tizen app大賽,這時離大賽結束時間只有下40來天了。時間非常緊迫,為了瞭解在大賽中獲獎的機率,先分析了一下自己的劣勢和優勢。

 

先說劣勢吧:

  • 我從來沒有寫過真正意義的app。雖然從事mobile開發已經有七八年時間了,但都是在搞像GUI,核心,多媒體,瀏覽器和通訊這些底層的東西。
  • 我對Tizen平台一無所知。之前從來沒有看過任何Tizen相關的資料,下了Tizen的代碼和SDK,看了一下計算機的代碼,發現開發Native的Tizen應用程式非常麻煩,一個簡單的計算機居然有近萬行的C++代碼。加上熟悉Tizen的API,40天還不夠寫個計算機這樣的小程式!
  • 我不懂CSS,對HTML瞭解也不多。在瞭解到開發Native應用程式的困難後,我發現Tizen對HTML5的支援非常棒,我決定用HTML5來開發應用程式。但是HTML5開發應用程式並不簡單(否則Kendo-ui和Sencha Touch這樣HTML5 App架構也不會賣這麼貴),何況我還是個小白!
  • 我不會美工,也沒有美工朋友。事實上,我甚至不會用Photoshop縮放一張相片。即使採用扁平化風格設計,盡量減少表徵圖的使用,應用程式的啟動表徵圖總是少不了的。
  • 我的英文不行。以前在外企做過幾年,雖然口語不行,用英文寫個郵件還是可以的。而現在好多年沒有寫過英文了,水平比高中生強不了多少,讓我用英文描述一下App的功能都難。
  • 缺乏創意。我的生活非常樸素,對新奇的東西沒有什麼衝動,很多東西都是流行好幾年後,我還開始使用。這兩年天天看《36氪》,《鈦媒體》,《雷鋒網》和《創業邦》等創業文章,時時被那些創客的創意所震精。
  • 可用的工作時間有限。我還在家休養,雖然康複得不錯,但是為了健康著想,我規定自己每天在電腦前的時間不得超過3個小時。這意料著我只有3*40=120小時時間工作(當然根本沒有周末了),也就是正常人的15個工作日,這包括學習,美工,文檔,編程,測試,提交和解決各種想不到的問題。

 

再說優勢吧:

  • 編程能力嫻熟。在這方面,我對自己是相當自信的,以前經常在同事面前吹牛說,編程能力比我強的人不多。我最熟悉的是C語言,不過javascript的水平也還不賴。用HTML5開發App當然離不開javascript了。
  • 學習能力很強。我主修的是機械電子,編程基本上是自學的,而且十幾年來我也從來沒有停止學習過。不管什麼新東西,只要我有興趣,通常都能在短時間內學會。
  • 熟悉各種App的介面風格。為了開發“畫app吧”(www.drawapp8.com),我花了大量時間去研究各種app的介面風格,這兩年時間,我把玩過數百個Android上的App,並在HTML5的畫布控制項上實現了一套完整的GUI系統,其中包括各種流行的GUI控制項。
  • 擅長解決各種疑難雜症。雖然我缺乏需求方面的創意,但是在解決問題方面,我倒是想法很多,總是能以別人想不到的方法解決各種疑難問題。事實上,公司的同事對我的佩服也源於此,往往他們花兩周時間解決不的問題,到我這裡兩個小時就解決了。
  • 有自己開發的大殺器-“畫app吧”。“畫app吧”(www.drawapp8.com)是我開發的一款非常好用的HTML5 App整合式開發環境。經過一年多時間最佳化和完善,“畫app吧”已經成為最用的HTML5 app開發工具了(呵呵,沒有之一)。


在分析自己的優勢和劣勢之後,先要做幾個決定:

 

  • 是開發Native的應用程式還是HTML5的應用程式?這個答案很明顯,當然是HTML5的應用程式。
  • 開發什麼應用程式?我沒有什麼創意,開發什麼新奇的東西是不現實的,幸好Tizen是一個新的平台,它需要大量實用的應用程式。答案也很明顯,開發實用的應用程式。
  • 開發幾個應用程式?時間只有40天,如果我只做一個應用程式,可以把它做得更細緻一些,但這樣風險也很大,一旦這個應用程式所屬的分類裡精品太多,則會全軍覆沒,白忙40天。如果做多個應用程式,讓它們分散在不同的分類中,如果某個分類中競爭小,則獲獎的機率很大。我對“畫app吧”的開發效率很有自信的,所以決定開發多個應用程式。我瞄準了puzzle,工具,效率,天氣和新聞等幾個分類。

 

為了先熟悉Tizen的App審核流程,決定先改造幾個以前寫的HTML5 app。不過事情沒有想的那樣簡單,問題接踵而至:

 

第一個問題是美工問題。每個應用程式需要一個大表徵圖(512x512)和一個小表徵圖(117x117),網上找小表徵圖很容易,要找512x512就很難了。直接放大當然不行,效果太差!這個問題讓我鬱悶了好幾天,有天在散步時我靈機一動,決定把應用程式的介面截一張下來,把它加工成應用程式的表徵圖。用GIMP做這個也不難,很快就搞定了,事實證明這個方法是有效。

第二個問題是英文太爛,提交一個TODO應用程式時,審核人員告訴我,應用程式的功能描述不清,Rejected! 這個讓人鬱悶啊,後來一想,為什麼不上網看看別人怎麼描述的呢?在網上搜尋了一些相關app的英文描述,很快這個問題也解決了。

第三個問題是Emulator運行不了。本來在“畫app吧”的模擬器裡運行正常,在Tizen的web simulator裡也是正常的。問題就出在Tizen的Simulator缺乏像檔案選擇或調用外部程式這些功能,而且它的檔案系統API與emulator也不一樣,所以App在Simulator上運行正常,審核人員說在實際裝置上運行不了。這個問題浪費了我好幾天時間,後來SDK升級到2.2.1時,Emulator可以運行了,不過HTML5 App的介面一片漆黑,我只好把App的螢幕出來,通過看圖工具查看介面效果。

第四個問題是時間問題。本來時間就緊,又出現這樣那樣的問題,同時還要修改在此過程中發現的“畫app吧”本身的問題。本來是預計開發25個app的(有幾個拼圖和連連看只是換片),結果只提交了16個App,而且還有一個沒有通過審核。就在大賽要結束前,Tizen突然宣布再延期38天,這對我來說是個利好訊息。最終在12月8號前做了25個App,提交了24個App,其中通過23個。有一個App是像素級抄襲一個Android App的,雖然我很喜歡這個App,但我最後還是決定不提交它了。

由於各種問題,有個App被拒了5次,當時我有點火了,不過反過來一想,審核人員或許更火,Ta免費給我做測試,我應該感謝Ta啊。所以後來每次被拒,我都感到有些歉意。

 

提交最後一個App時,App的編號已經9200多了,還剩下2天時間,估計最終提交的App不會超過10000個。我在一個Tizen的QQ群中瞭解到,他們的App居然沒有一個通過審核,才知道原來審核還是很嚴格的,當時猜測大賽結束前通過審核的App不會超過7000個。

提交了最後一個App,雖然心裡有點忐忑,還是信心很足的。最好的情況大概是有3個App獲獎,最差的情況是只有一個App獲獎。比賽結果是後面一種,雖然有一點點失望,還是蠻高興的。

 

最後介紹一下“畫app吧”(www.drawapp8.com),它是協助我獲獎的最大功臣:

 

有JQMobile,KendoUI和Sencha Touch這些鼎鼎大名HTML5的組件庫,為什麼還要開發“畫app吧”?原因很簡單:HTML5根本不適合開發Mobile App!

 

  • HTML是文檔為而生的,這是它的基因。它適合展示內容給讀者,但不適合開發互動式極強的App。所以不管你怎麼努力,用HTML5開發的App,和網頁相比它像App,和原生App相比它更像網頁。
  • HTML5的表現力弱爆了。HTML5有一些基本的控制項,像按鈕,文本和選擇框等。還可以通過CSS封裝出像ListView等這類常用控制項。但就是在上面提到幾個HTML5組件庫中,都缺乏現代App中流行的控制項,像Sliding Menu, 複雜一點Page Viewer等等,
  • 用HTML5開發App的過程相當複雜。至少我沒有學會,你可以說我笨。不過Sencha Touch能賣這麼貴,一定是有它的道理,JQMobile做得不好用,也一定有它的道理。
  • 效能問題。HTML5 App慢的原因主要有兩個,一是本身Layout和渲染慢,二是開啟視窗通常是載入新的頁面。


“畫app吧”就是要解決以上這些HTML5 App的硬傷:


  • 為瞭解決HTML文檔基因的影響,“畫app吧”完全拋棄了HTML和CSS,而是在HTML5 Canvas上重新實現的一套GUI。我以前深入研究過X Window, DirectFB, GTK+和Android的GUI系統,並實現過一個開源嵌入式GUI FTK。“畫app吧”的GUI是我在總結多年經驗的基礎上,開發的一套GUI,它實現簡單,功能強大。用“畫app吧”開發的App,基本上看不出和原生App的差別。
  • “畫app吧”的GUI完全是自己實現的,在實現它的過程中,我研究了數百個App,分析它們使用的控制項,實現了現代App需要的各種控制項,其表現力大大超出傳統的HTML5。
  • “畫app吧”開發App非常簡單,它讓你的開發效率提高5倍以上!App的介面完全可視化的完成,甚至你可以不用寫一行代碼開發一個App。這就是為什麼我能在Tizen App大賽中,在短時間內開發25個應用程式的原因。
  • “畫app吧”通過三種方法提高效能,一是採用硬體加速實現的Canvas渲染介面,二是使用高效的Layout機制,三是所有介面用Json描述並放在一個檔案,開啟新視窗在瞬間完成。

 

呵呵,順便給自己做點廣告:承接各種基於“畫app吧”的定製IDE開發:

 

“畫app吧”對個人開發人員永久免費,但由於目前文檔還不太完善,不建議個人開發人員使用(當然歡迎試用了)。我將在後續寫一系列介紹“畫app吧”的設計與實現的文章和使用文檔。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.