ComicSurfer_2.1M2

  噹!噹!Comic Surfer 2.1 M2終於完成了,和上一次大約兩個禮拜(2012/09/10~2012/09/22)就完成了M1的速度相比,這次只多了一個偏好設定的對話框,卻用了將近一個月的時間,開發速度上確實慢了許多。其中一個原因是最近在找工作,有時候面試就用了一整天,像是去汐止某家公司面試,光筆試(程式和多益模擬考)部分就耗去兩個多小時了,然後才跟主管(學長)面試,接著是和人資面談,這還不含來回通勤也用了兩個小時,雖然收穫很多(免費考了一次多益模擬考、得到許多業界資訊),但一整天就沒了。

Preferences

  這次Comic Surfer 2.1 M2的重點真的只有上面那個對話框,如果用寫程式硬拚出上面的對話框,老實說不用一天我就搞定了,但這次花這麼久的時間,跟當初寫Comic Surfer的初衷有關,早在Comic Surfer之前,我正在開發一個叫Javs Sway的套件,當初會想開發這套件是因為過去參與蠻多專案的,包含自己的論文,常常在GUI上需要重複寫一些一樣的東西,於是想把之前寫的部分GUI Widgets整理成一個套件,之後就能重複利用了,開發到後期,發現少了一個可以Demo的Application,這才開啟了Comic Surfer的計畫(Comic Surfer從1.0開始就有一個jsway.jar的檔案,沒錯,那就是Java Sway套件)。

  所以這次扣除面試的時間,剩下大部分的時間都投入擴充Java Sway,例如讓Java Sway有了多國語言的支援和屬性編輯面板,屬性編輯面板又分成兩種,一種是類似上圖(不含關閉按鈕和視窗),一種是類似Visual Studio的屬性編輯面板(以表格呈現的方式)。光是多國語言的支援就等於是從根本修改Java Sway了,加上雖然Java Swing已經玩這麼久了,但在編輯面板也花了我不少時間除錯,差點讓我想放棄修改(有好幾次想按SVN的Revert)。不過這都是值得的,以後不用再花時間重新刻一個一樣的Widget,然後再遇到相同的問題。

  等Java Sway擴充完後,昨天用Java Sway提供的屬性編輯面板湊出上面的對話框,大概只用了一個多小時,然後又找到一個Java Sway的bug,反反覆覆試了好幾次,發現一個面板A (JPanel)被放進一個JScrollPane,若呼叫了A的removeAll(),記得要呼叫A的updateUI(),否則之後加進去A的元件,只會顯示但無法作用,確切的原因還不清楚,但這bug出現的條件確實很詭異,最後是在用滑鼠修改視窗大小時,原本畫面上無法使用的元件,因為scroll bar跑出來後,又可以使用了,這才發現條件。總之,Java Sway裡面有許多可以重複使用的Widgets,有興趣的人可以從Open Foundry的Java Sway下載專區取得把包好的JAR檔和原始碼(請用SVN check out)。

  好啦!離題離得有點遠了,回到Comic Surfer,接下來M3的重點從上圖可以看出端倪,有一個新的屬性『幻燈片換頁速度』,沒錯,M3的重點在幻燈片模式(OS:懶人模式),啟動後,Comic Surfer每隔一段時間自動幫你換頁,至於會不會是全螢幕模式就再看看吧!我得先查一查Java的全螢幕模式API是從哪個版本開始支援。M4會是2.1的最後一個開發版本,重點在GUI的優化(OS X平台測試)、補多國語言檔(徵求善心人士幫忙日文翻譯)和更換主題(Icon和配色),M4之後只修bugs,然後就釋出2.1正式版了。至於2.2什麼時候會出現呢?這又是另外一個故事了:等適應工作的生活步調後再來計畫。

  現在Comic Surfer程式碼行數為6,519行(可跨Android平台的核心為3,445行及桌面版專屬程式3,074行),檔案大小也增加到624 kB,這包含了Java Sway的增大幅度(從83 kB成長到121 kB),畢竟Java Sway也有5,661行。最後是一張有趣的圖表,雖然也有減肥成功的例子(1.0 -> 1.1和1.3 -> 1.4),但Comic Surfer平均每次改版會增加70 kB,所以2.1正式版大概會是635 kB左右,目前是624 kB,所以還有可成長的空間XD。

  Comic Surfer 2012 開發中版本:2.1 M2版 (624 kB on Oct. 17, 2012)

File Size

dbi1463 發表在 痞客邦 PIXNET 留言(0) 人氣()