2009年3月31日 星期二

建立 iPhone Project 的步驟

我現時的作品都沒有使用 Interface Builder 來建立,主要是由於會佔用更多的資源及不能隨心所慾。為了作一個記錄,我把步驟列於下方:

一)點選 File -> New Project 建立新專案
二)點選 View-Based Application
三)點選 Resources 資料夾
四)刪除以專案名稱為首的 XIB 檔案,如:LotteryProViewController.xib
五)刪除 MainWindow.xib 檔案
六)點選 Info.plist
七)把 Main nib file base name 一列刪除
八)在 Icon file 列輸入 Icon.png
九)在 Bundle identifier 列輸入專案的逆向網址(不需要有真的網址,只是用來辨認專案而已),如:com.pacess.lotterypro
十)加入新一列名為 UIStatusBarStyle,內容設定為 UIStatusBarStyleBlackTranslucent
十一)加入新一列名為 UIStatusBarHidden,內容設定為 Boolean 值
十二)點選 Frameworks 資料夾
十三)刪除 CoreGraphics.framework
十四)點選 Other 資料夾
十五)點選 main.m
十六)把 UIApplicationMain 最後的那個 nil 改為 @"" 及以專案名稱為首的 AppDelegate,如:@"LotteryProAppDelegate"
十七)點選 Classes 資料夾
十八)點選以專案名稱為首的 AppDelegate.m,如:LotteryProAppDelegate
十九)在 applicationDidFinishLaunching 的第一行輸入以下代碼:

srandom(time(0));
window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
viewController = [[LotteryProViewController alloc] init];
二十)之後,便可以主力修改以專案名稱為首的 ViewController 檔案,如:LotterProViewController.m

2009年3月30日 星期一

iPhone: Destiny Clock


事隔一個月,我的第二個 iPhone 作品已經完成了,並正等待 Apple 的審批。

或許您已經發現到,地球上每一個人都有自己的命運。這個命運在出生後吸第一口氣時已經注定!「命運時計」就是要將時間以天干及地支的方式呈現,給各位了解當刻的命運符號,從而掌握時機,扭轉命運。「命運時計」支持的範圍由 1900 年 1 月 1 日至 2100 年 12 月 31 日。時間方面是沿用於古時的曆法,所以沒有早子時及夜子時之分。

這個作品其實是一系列中的第一彈,之後會陸續開發其衍生產品。往後的產品將會更加易明、更加易用、更加方便。

2009年3月29日 星期日

Lottery Pro v1.1 審批被拒


剛剛收到 Apple 的通知〔似乎星期天也辦公〕,指由於 Lottery Pro 設定畫面中的 DetailDisclosure 按鈕用法不當。在 Lottery Pro 中,這個按鈕是當作「返回」按鈕使用。我只好作出相應的修改,並把更新版本重新上傳。我發現 Apple 在審批新應用程式的時間比更新快一倍,相信一個星期之後才能把更新版本推出市場;到時,我的第二個應用程式可能已經登場了。

2009年3月28日 星期六

iPhone: UIPickerView 使用方法


今日第一次編寫 UIPickerView,方法都很簡單,在 ViewController 的 @interface 定義的最後方加入 uipickerviewdelegate 後,在 @implementation 生成 UIPickerView 就可以。如果要顯示指定欄位時,只要調用 selectRow 就可以了。有一點需要留意,由於 UIPickerView 需要一個控制器來操作,如果在同一個 View 之下出現多個 UIPickerView,都會使用相同的控制器;這時就需要在 numberOfComponentsInPickerView, pickerView:numberOfRowsInComponent, pickerView:titleForRow:forComponent 自行分辨是來自哪個 UIPickerView。

2009年3月27日 星期五

iPhone: Localization (Part 2)

最近替 Lottery Pro 進行更新,其中一項是把設定畫面中的英語文字改為多語系支援。這個部份的做法是在 Resources 資料夾中的 en.lproj, ja.lproj, zh.lproj 下各自建立一個 Localization.strings 檔案。在檔案中加入類似字串的變數〔"NumberBalls" = "Number of Balls";〕;不過,我發現使用 SpecifiedDate = "Specified Date"; 也行。之後,只要在建立 Labal 時,使用 NSLocalizedString() 就能讀取相應語系的字串,如:labelInstruction.text = NSLocalizedString(@"SpecifiedDate", @"");

2009年3月19日 星期四

iPhone: Lottery Pro v1.1


經過這兩天的零下載之後,我決定更新一下 Lottery Pro,以便令她重返 Release Date 排行榜,增加暴光率,提升下載次數。今次的更新中,我把攪珠號碼範圍從 60 提升到 99;其次是在設定頁面加入日語及繁體中文的支援。希望這樣做能使 Lottery Pro 重拾當初的下載次數。多謝各位支持。

2009年3月18日 星期三

iPhone: Message


正當連續兩天沒有下載記錄的同時,我已經為第二個 iPhone Application 做準備。這個應用程式名為 Message;構思是來自「Fing Fing 棒」,當搖動垂直佈滿 LED 燈的訊號棒時,會因為視覺停留而產生出文字句子。不過,在實機上做實驗時,發現效果不理想,而且需要花大一點的力度,以及搖大一點的幅度,才能看得出文字。在這些不明朗的因素下,這個項目亦正式結束。

2009年3月14日 星期六

Leopard 10.5.4


今日在網遊時,為了找個搜尋對象,於是想到了更新 Leopard。我一直認為 Hackintoash 是不可能直接更新,所以仍然保持 10.5.3 版本。後來我發現升級到 10.5.4 的話,是可以直接使用 Apple Delta Update,亦即是只包含由 10.5.3 升級至 10.5.4 的所需內容的更新。而往後的版本,則各有論點;有些網友指要使用 Pre-Update 及 Post-Update 的方法;也有人說只要一直使用 Apple Delta Update 就行。

最後,我選擇了 Apple Delta Update 的方案,是因為我在安裝 Leopard 10.5.2 時設定了使用 Vanilla Kernel,亦即是沒有被修改過的 Kernel。在升級到 10.5.4 時十分正常,但在升級到 10.5.5 時,安裝到一半便當掉不起了。最後花了三個小時重新安裝極個系統;可能有更好的方法把系統還原,可是我不知道。

2009年3月13日 星期五

Private Key 匯入問題


在把新的 Leopard 安裝好後,也把 iPhone SDK Final 安裝,順道也把最重要的 Private Key 匯入。可是,在匯入的過程中卻出現錯誤;但奇怪的是 Private Key 也出現了。為了確認這個 Private Key 能否正常使用,於是乎我打開了 Organizer,發現所有的 Provisioning Profile 都帶有一個黃色的感嘆號;我直覺上認為 Private Key 出了問題。

後來我無意中發現,只要把 Organizer 中的 Provisioning Profile 刪除後,再重新加入 Provisioning Profile 一次,黃色感嘆號便會隨之消失。我更急不及待地嘗試把自己的程式放到 iPhone 上執行。過程十分順利。

2009年3月12日 星期四

iPhone: Lottery Pro 銷情

Lottery Pro 由 3 月 3 日發售至今,已經收到 9 份日結。很奇怪地,在 3 月 9 日星期一起,以往平穩的銷售成績突然下跌了 66%,並在之後的數天保持著這個銷售情況。而我的同事發現 Lottery Pro 已經不在 iTunes Store 的(發售日)排行榜之內;可能是缺乏排行榜的支持,令到 Lottery Pro 的暴光率大幅下跌,或者說,非經搜尋的話,根本是無法找到;而導致下載量也跟著下跌。如要保持暴光率,相信不是在 iTunes Store 內刊登廣告,就是每個星期也把產品更新...。

2009年3月11日 星期三

新硬碟機

今天買了一台新的 Western Digital 320GB SATA-II 硬碟,目的是取代有問題的那台 Seagate 80GB 硬碟,以確保系統的穩定。我的第一台硬碟是 Seagate 40MB,十分耐用,可是今非昔比。以下是在 P5K-SE 下安裝 Leopard 的步驟:

==================================
A. Install Mac OS X Leopard 10.5.2
==================================
1. Prepare a "Leo4Aall v3" DVD
2. Unplug cables of all ATA harddisk
3. Make sure there is SATA harddisk
4. Insert "Leo4All v3" DVD and reboot computer
5. Press F8 after Darwin is loading
6. Type "maxmem=2048" and press ENTER if memory > 2GB, otherwise system will be hang
7. Once enter installation screen, select "Disk Utilties"
8. Create single partition of target harddisk with "Mac (Journel)" option
9. Return to installation screen and continue
10.Before real installation, click "Customize" on bottom-left corner
11.Select "Vanilla Kernal 9.2.0"
12.Select chipset driver "Intel ICHx"
13.Select audio driver "ALC883"
14.Continue installation
15.Restart and registration

===================================
B. Patch Asus EN8800GT display card
===================================
1. Copy "NVInstallerV.41.pkg" to desktop and install it in order to have high resolution
2. Restart

==============================
C. Patch onboard ethernet card
==============================
1. Copy "Attansic L1 Ethernet.pkg" to desktop
2. Double click "Attansic L1 Ethernet.pkg" to install Ethernet patch

===========================
D. Patch onboard sound card
===========================
1. Copy "alc883.dump.txt" to desktop
2. Copy "AppleHDAPatcher_v1.20" to desktop
3. Install "AppleHDAPatcher_v1.20"
4. Drag "alc883.dump.txt" and drop on the icon of AppleHDAPatcher

===================================
E. Upgrade Leopard 10.5.2 to 10.5.3
===================================
1. Install "1_Kalyway_UpdCombo10.5.3.pkg" and don't restart
2. Install "2_kalyway_10.5.3_kernel.pkg" and no need to choose anything
3. Reboot and press F8
4. Type "update -v" and press ENTER

2009年3月8日 星期日

Leopard 硬碟出現問題

星期五那天,我突然靈光一閃,構想出一個簡單的 iPhone 應用程式。這個程式跟 Lottery Pro 一樣簡單,但卻有更大的吸引力。當中只有一個部份需要鑽研,就是要讀取文字的像素數值。原本打算在這個週末把程式完成,可是我的 Leopard 卻出現問題,在使用 Photoshop 時當掉,並有 90% 的時間是無法重新啟動。就算能啟動成功,也比正常多出四五倍時間...。我曾使用 Disk Utility 檢查硬碟,可是連 Verify 也無法成功,更何況是 Repair 了...。幸而我有把 Private Key 保存起來,要是重裝的話,應該也沒有問題。不過,我打算購買多一台 SATA 硬碟,把 Leopard 安裝到新硬碟,確認沒有問題之後才把原有 Leopard 重灌。始終曾經嘗試過載入不了 Private Key,還是穩妥一點好。

2009年3月6日 星期五

iPhone: Provisioning 錯誤


新遊戲的標題畫面已經造好,所以放到真機上感受一下運行速度;原以為過程順利,可是卻出現了一個警告!幸而,遊戲仍能在真機上執行。

在今次這個作品中,我使用了 UIImageView 的 alpha 處理。但發現了一個小問題;在模擬器上表現完美的淡入淡出效果,來到真機上,竟然出了問題。當圖片淡入後會突然消失!經過一番嘗試後,發現好大機會是由於 alpha 數值大於 1 而導致。不過最令我一頭霧水的是,我所設定的 alpha 數值是由 0 開始,每次以 0.2 的差別來遞增至 1,因此不應該出現以上問題。最後我的處理方法是加入一個檢查語法,若是 alpha 數值大於 1.0f 時,便把 alpha 設定為 1.0f;這樣之後,事情便得到解決。

2009年3月5日 星期四

iPhone: 向遊戲出發

在 Lottery Pro 登場兩天後,我終於能在 iTunes Connect 上檢視到下載的數量。雖然下載的數量不多,但對於我來說卻是十分珍貴的經驗,也使我十分鼓舞,很多謝支持 Lottery Pro,來自 FR, BR, US, MX, GB, CH, JP, DK, TR 的顧客!

之前一直忙於其他工作,把 iPhone 遊戲開發也放低了。但今天的經歴,使我很想在短時間內把之前定下的目標完成!所以,我已經為下一個遊戲取得 Development Provisioning Profile,也把標題畫面完成了。希望能在今個月之內把她完成吧!我讓太太成為少奶奶的目標又近了一步!

2009年3月4日 星期三

Lottery Pro 簡介


Lottery Pro 是一款號碼選擇工具,協助你選取六合彩或彩票號碼。她支援 1~9 個號碼,而號碼範圍由 1~60,更支援外國適用的 Bonus 號碼。只須要把 iPhone 或 iPod Touch 搖一搖,便能簡單輕鬆地選出號碼!

2009年3月3日 星期二

iPhone: Lottery Pro 正式登場


今早檢查電郵時,收到了 Apple 的通知,我的第一個 iPhone 應用程式 Lottery Pro 已經轉為 Ready for sale 狀態。因此,我立即利用 iTunes 搜尋一下,可是卻找不到。於是,我便到 iTunes Connect 查證一下,發現狀態仍然是 In review。

半小時之後,在 iTunes Connect 的狀態則變為 Ready for sale,但 iTunes 仍然搜尋不到,相信是系統之間的資料互換需要一點點時間。最後,在午飯時間,我的 Lottery Pro 終於能在 iTunes 之下搜尋出來了!請大家多多支持!