ComicMinus2 for iPad v0.4

好久沒有那麼瘋狂寫自己的程式了,這一個禮拜在練習寫iPad上面的看漫畫程式,難得有自己想用的程式,網路發達之後,沒甚麼機會自己寫PC上的程式。儘管之前看了幾本電子書,一兩千頁有吧,但沒實作還是沒概念。一開始真是跌跌撞撞,不知道要怎麼拉iPad上面的UI,一堆Controller不知道要怎麼用,辛苦了一個禮拜,終於有點小成果了~
這幾天真是超變態的,一天寫好幾個小時,甚至晚上寫到一點了,早上六七點又自己醒過來,趕快到辦公室寫程式,明明身體已經很累了,但只要一休息就會再想要怎麼設計,還要加那些功能,哪些BUG要怎麼解之類的(記憶體洩漏…)
讓我想到之前看到的文章,心智工作者其實比勞力工作者還累的~

 

功能:

  1. 內建FTP Server從PC上傳漫畫
  2. 自動縮放漫畫符合高度
  3. 開啟時可自動開啟上次看到的漫畫
  4. 進入每一本漫畫可詢問是否回到之前觀看的頁數
  5. 自動從右上角開始瀏覽,瀏覽順序為右上、右下、左上、左下。預設高度就是螢幕高度,最多可以放到兩倍螢幕高,因為我覺得字夠大了
  6. 自定漫畫櫃字型大小,可以順便預覽第一頁漫畫
  7. 支援投影片播放,時間為2秒到30秒,懶的按可以用
  8. 瀏覽音效,不然會不知道有沒有點到
  9. 瀏覽方式為:點選左上角代表移到漫畫的最左上角,點選右上角為移到漫畫的最右上角,點選左下角為移到下一個瀏覽區域,點選右下角為上一個瀏覽區域
  10. 支援躺著看模式,會交換左右點選區域,避免向左側身時點不到左下角
  11. 支援全螢幕瀏覽

 

學到的東西:

其實這次還是為了學iPhone設計居多,所以我盡量把我在.Net 有的元件試過一次

使用了 UITabBarController、UINavigationController、UITableViewController、多國語言UI、Auto Increase Build Number,PreBuild Script、Settings.Bundle、Sqlite、Subclass of UIView to drawRect、Singleton Class/Variable、Gesture Recognizer(真簡單)、Custom TableViewCell、NSUserDefaults、SVN with XCode

XCode 的 Settings好的地方,是你只要設計好 xml File,系統的設定程式就會自動幫你產生設定頁面,然後網路上也有元件可以讓你直接產生設定頁面在你的程式裡,這真的不錯,但只有for iPhone。相對於.Ne的 Settings而言,.Net的比較厲害,因為它把key直接變成 property了。每次要加一個設定,我就需要一直複製key string,有點累。

然後PreBuilt,這我在Visual Studio也用不少,這次為了可以自動產生版本號,我的版本號定義是 VersionNumber.BuildNumber.DateTime,ex: 0.2.19.20100628-052412。BuildNumber會每次遞增,實作的方式就是在Target建立一個 PreBuild Shell,然後Shell裡面使用PlistBuddy這個工具去讀 Info.plist裡面定義的 BuildNumber,之後再寫回去 Info.plist。這樣我程式從 Info.plist就可以讀到遞增的 BuildNumber。那VersionNumber比較少變動,所以我放在Project –> Info –> Build –> Current Project Version。然後Info.plist裡面的 Bundle 要設定成 ${CURRENT_PROJECT_VERSION},這樣Build的時候就會帶過去了。有研究過 Apple Generic Version 工具,不好用。

比較麻煩的是我只能修改 Info.plist 裡面的版本號,而Settings.Bundle/Root.plist 裡面我也有用一個Title,用來在iPad的系統設定那邊顯示版本,但這個值目前還沒有找到自動更新的方法

Subclass 然後自己實做 drawRect,目的是弄一個 UIView,然後可以顯示每一本漫畫的預覽跟名字。結果在大量的[UIImage drawInRect:rect]; 會變的超慢的,不是讀檔慢,是畫圖慢。所以後來又用了Timer 來延遲載入,也算是瞭解了一個特性~

還缺的:

Regular Expression、Web Download

再看要不要實做之前從iPad去漫畫網站上下載檔案吧,雖然我覺得這樣很浪費電~

This entry was posted in 軟體. Bookmark the permalink.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s