Jaffe的分享空間 Rotating Header Image

Xcode日記

電視節目表app store上架了!

近來被freelance工作纏身, 連寫app既時間都冇…

我既第二個iphone app”電視節目表”, 前日靜俏俏地上架了…

佢係我自己都幾滿意既app, 上架後反應唔錯… 可能因為比較實用, 所以download次數比上次”食糊”app多好多…

其實仲有唔少新idea想放入去, 但工作deadline迫近, 真係心有餘而力不足; 希望盡快完成手頭上工作, 將心目中既新功能放埋入去… 連我自己都好期待…

app上架只有兩日, 竟然收到幾個用戶既鼓勵, 有種莫名既興奮, 幾有滿足感…

電視節目表
http://itunes.apple.com/hk/app/dian-shi-jie-mu-biao/id499522558?mt=8

Apple iTunes Connect New Policy

今日打算在itunes connect修改”電視節目表”app內容其中一啲字眼, 點知… save嗰陣發現apple改左policy, 強制提供既screen capture一定要係high resolution, for retina display咁話喎…

原意係好既, 等retina display既用戶可以睇幅靚啲既sample, 但… 問題就出在… 我只係update下啲字眼姐, screen capture根本無改過… 之前upload既resolution都係320×480, 霎時間要我去邊度搵啲640×960既圖去upload呢又!?

好彩, 機係死既, 人係生既…

即刻用photoshop將原來係大小320×480夾硬扯大到指定既大小640×960, 睇落都真係有少少樣衰, 不過iphone 4個screen睇又會縮返細, 人眼應該睇唔到好大分別既…

submit交貨… 攪掂!

等下次真係有screen change先screen capture過晒所有圖了!

香港電視節目表iphone app上載了!

第二個iphone app終於完成了! 上載到了app store, 現正評核中… 如無意外, 大概下星期左右就可以正式上架了…

由心的喜悅, 因為完成這個新app真的不簡單… 由找data source至真實地把節目表呈現在用戶眼前, 當中要經過10數個步驟… 並不簡單…

事實上, 在2011年暑假已經有這個構思, 但一直都被不同的事件防礙著, 進度逐少逐少積累著… 終於在較清閒的農曆新年完成了!

data source — [c# .net] –> mssql database — [ftp] –> mysql database — [php] –> xml — [xcode] –> sqlite — [xcode] –> iphone app

對編寫這類程式, 我絕不陌生… 因前公司就是主要做搜尋引擎(search engine)的業務, 累積的經驗很管用… 從如何規劃database內的數據、安排索引鍵(index)、以至如何有效地使用select statement將正確數據取出… 到現時, 我仍覺得非常富挑戰性及有趣味…

關鍵字搜尋亦是易學難精的技巧… 不過在電視節目表就沒大發揮空間, 每星期也不過數萬個節目罷了, 數據量不多, 要搜尋的節目名稱變化也不大… 留待以後的app再作多點關鍵字搜尋的技術研究…

另外, 值得一提就係個app icon, 本來好想用小學年代”少年警訊”既logo作藍本(印像中係藍色, 有個電視機同JPC/少年警訊字樣), 但google左好耐, 都搵唔到…

最後唯有保留電視機, 再蓋特區旗… 背後加個大黃色! 紅加黃既組合, 極度懷舊! 好鍾意…

希望個app能早日同大家見面, 試試真實既traffic loading…

Xcode SQLite sqlite3_prepare_v2 sqlite3_step 新疑團

被奇怪既問題困擾左三個鐘, 本來看似好細既問題, 但可能太夜, 人太累,真係摸不著頭腦!

if (sqlite3_step(statement) == SQLITE_ROW) {
if (sqlite3_column_int(statement, 0) <= 0) {
// if first result = 0, then exit
sqlite3_close(myDB);
return;
}
}

行完呢句之後,如果resultset第一個數真係0的話,呢個function就會close database再return…

問題就係,之後既所有database action都會fail! google左好耐,sqlite3_clear_bindings, sqlite3_reset, sqlite3_finalize都試過晒,一樣唔掂!

最後,唯有出絕招,就係用個while loop process晒整個result set先順利咁走, 嘿,又真係無事!真係好奇!

while (sqlite3_step(statement) == SQLITE_ROW) {
value = sqlite3_column_int(statement, 0);
}

if (value == 0) {
sqlite3_close(myDB);
return;
}

首個iphone app誕生了!

埋頭苦幹了差不多兩星期, 第一個iphone app終於成功出現在iphone app store裡面了!

食糊!
http://itunes.apple.com/hk/app//id492081269?mt=8

內容不算複雜, 主要都係幫忙記錄麻雀分數, 算是iPhone Programming新手練習的好機會, 開發過程中參考左唔少麻雀/計番相關既網頁, 對於我呢類極少開枱既麻雀生手, 知識又增進左唔少!

現正努力加入英文版本, 希望這個麻雀軟件可以接觸更多地界各地愛打麻雀既人…

Xcode NSDateFormatter + SQLite 迷思

雖然小弟係Xcode既新手,但都話晒寫左program好多年,今日竟然被呢個看似小小既問題困擾左成晚,由夜晚兩點幾開始trial and error, 到而家六點天光,仲未成功解決!

NSDateFormatter *dateFormatter = [[[NSDateFormatter alloc] init] autorelease];
[dateFormatter setDateFormat:@”yyyy-MM-dd HH:mm:ss ZZZ”];
[dateFormatter setLocale:[NSLocale currentLocale]];

跟住用句咁既select statement insert入SQLite:

querySQL = [NSString stringWithFormat:@”INSERT INTO table (test_date) values (‘%@’)”, [dateFormatter stringFromDate:testDate]];
const char *query_stmt = [querySQL UTF8String];
sqlite3_prepare_v2(myDB, query_stmt, -1, &statement, NULL)

–> testDate xcode datatype係NSDate, test_date SQLite datatype係datetime <–

從SQLite select返出黎之後, 竟然變左null!百思不得其解…

querySQL = @”SELECT test_date FROM table”;
const char *query_stmt = [querySQL UTF8String];
sqlite3_prepare_v2(myDB, query_stmt, -1, &statement, NULL)

testDate = [NSString stringWithUTF8String:(char *)sqlite3_column_text(statement, 0)];

就咁NSLog(@”%@”, testDate); 會睇到: 2012-01-06 05:06:36 +0800

但如果NSLog(@”%@”, [dateFormatter stringFromDate:testDate]); 就會變左(null)囉!救命啊!