由少喬的朋友介紹,當天馬上約在景美夜市的自營咖啡複合空間,而少喬主動跟我說想跟來,有了這為視覺設計的夥伴,我就能更瞭解對方的需求!不過她前一晚才剛感冒,整個訪談的過程一定很不舒服,不過看在她如此敬業的態度,真是佩服也信任她!
看來赤壁大哥事業順利,已經發展到大陸去,也才能悠哉地和朋友經營咖啡店,讓我也想在自己開的咖啡店裡喝咖啡寫程式!其朋友特地帶來「貓大便」咖啡,我品嚐後覺得非常滑溜順口不殘留苦澀味。
由少喬的朋友介紹,當天馬上約在景美夜市的自營咖啡複合空間,而少喬主動跟我說想跟來,有了這為視覺設計的夥伴,我就能更瞭解對方的需求!不過她前一晚才剛感冒,整個訪談的過程一定很不舒服,不過看在她如此敬業的態度,真是佩服也信任她!
看來赤壁大哥事業順利,已經發展到大陸去,也才能悠哉地和朋友經營咖啡店,讓我也想在自己開的咖啡店裡喝咖啡寫程式!其朋友特地帶來「貓大便」咖啡,我品嚐後覺得非常滑溜順口不殘留苦澀味。
近年來App流行漸層色彩影像 (Gradient Color Image),我們不想要美術師出圖,因為有很多螢幕尺寸要考量,所以想由程式碼來個別生成。
結果圖上有三個Image View,上圖為單純藍色,左下為水平漸層黑色alpha值由1到0,右下為垂直漸層黑色alpha值由1到0。
我將所需要的程式碼檔案放在GitHub Gist:Gradient Color Image。
該是好好學習Swift 2.0的時候囉~上週Apple才宣布Swift開源化!趁著棘手的專案告一段落,我要利用時間學習iOS新的開發語言,讓公司的戰力可以延續下去。
首先我們會遇到,以Swift為主的專案想使用Objective C的類別,因為我們可能沒啥時間去重刻,於是想要Objective C直接轉生為Swift來使用。
在此我們建立一個Swift專案名為HappyTest8,接著新增Cocoa Touch Class語言為Objective C,並名為HTMainViewController。
很多時候我們會把資料儲存在User Defaults,也就是本機端,只要App不被刪掉,那麼每次重新開啟App,就能再從User Defaults取得先前所儲存的資料。
有某時候我們需要把User Defaults給清空,比如要給其它帳號使用,此時登出A就要將A所儲存的User Defaults給清除乾淨,而登入B後又是全新沒有受污染的User Defaults。
該怎麼做呢?以下的code就能刪除所有存在User Defaults中的key,不過卻不會刪掉系統預設的key呢!
/**
Theme: Delete User Defaults
IDE: Xcode 7
Language: Objective C
Date: 104/12/07
Author: HappyMan
Blog: https://cg2010studio.wordpress.com/
*/
#pragma mark - 刪除 UserDefaults
NSUserDefaults *defs = [NSUserDefaults standardUserDefaults];
NSDictionary *dict = [defs dictionaryRepresentation];
for (id key in dict) {
[defs removeObjectForKey:key];
}
[defs synchronize];
清空前的User Defaults之key群:
(
GGUserDefaultsKeyLoginAccount,
AppleKeyboardsExpanded,
GGUserDefaultsKeyLoginPassword,
PCSavePendingUserDefaults,
GGUserDefaultsKeyhasFirstShowMenu,
GGUserDefaultsKeyIsLogin,
INNextHearbeatDate,
com.apple.content-rating.ExplicitBooksAllowed,
GGUserDefaultsKeyLoginPasswordAlternative,
AppleKeyboards,
HasUserRegisteredFonts,
PKEnableStockholmSettings,
GGUserDefaultsKeyRememberPassword,
AppleLanguagesDidMigrate,
com.apple.content-rating.TVShowRating,
com.apple.content-rating.ExplicitMusicPodcastsAllowed,
NSLanguages,
com.apple.content-rating.MovieRating,
GGUserDefaultsKeyQBId,
GGUserDefaultsKeyLoginAccountAlternative,
PreferredLanguages,
AddingEmojiKeybordHandled,
MSVLoggingMasterSwitchEnabledKey,
AppleLocale,
AppleLanguages,
NSInterfaceStyle,
com.apple.content-rating.AppRating,
AppleITunesStoreItemKinds
)
清空後的User Defaults之key群:
(
PKEnableStockholmSettings,
INNextHearbeatDate,
MSVLoggingMasterSwitchEnabledKey,
AppleITunesStoreItemKinds,
AddingEmojiKeybordHandled,
com.apple.content-rating.ExplicitBooksAllowed,
com.apple.content-rating.MovieRating,
HasUserRegisteredFonts,
AppleLanguagesDidMigrate,
com.apple.content-rating.AppRating,
AppleLanguages,
NSLanguages,
NSInterfaceStyle,
com.apple.content-rating.ExplicitMusicPodcastsAllowed,
AppleKeyboardsExpanded,
AppleKeyboards,
PreferredLanguages,
AppleLocale,
com.apple.content-rating.TVShowRating
)
key前綴為PC或GG,就是我在此專案中儲存資料用的key喔~
最近某副總統候選人的軍宅案吵得沸沸揚揚,我可是第一次聽到除了國宅以外的稱呼,看來房市真的有利可圖!只是我對買車買房沒啥興趣,所以無法多說什麼啦~
既然不想要研究那麼徹底,那麼就來看簡明易懂的圖解房市泡沫十大指標,好好瞭解台灣房市(尤其是台北)現況。

為什麼我會對房市沒興趣?因為我不會想以賣房子套利的方式來賺錢,看起來不怎麼有趣,也無法利益他人。我理想賺錢的方式是做自己喜歡且擅長的工作,自己做得開心,就有餘力去利他。
回想國中搬新家的時候,心裡埋怨著「為何我家這麼小?而阿姨她們家好大啊~」其實是因為那是姨丈家的地,所以想蓋多大就蓋多大。
後來長大到台中市和台北市唸高中和唸大學,家反而比較少回去住,心想房子空在那裡沒人住,無論多大也是浪費。若可以的話,現在線上有房間出租平台Airbnb可以把它租出去:P~
現在我喜歡邊工作邊旅行的生活模式,喜愛創作的我擁抱新鮮感,所以會想到處跑,只要有沙發就能睡覺。
想起阿婆跟我說澳門的公宅多好,年輕人剛出社會就可以租,租個十年那間房子就是你的!哈~以賭場觀光為國家特色的澳門,當然可以福利如此好!每年政府還會發9000元港幣給其公民,讓我都想要移民去澳門住啦XD~
今日阿弟問我一台Nikon相機規格好不好,因為他女友準備第二次去德國員工旅遊十天!而且補助的費用非常之多!讓阿弟和我非常羨慕哪~這可是跟同事培養感情最好的福利呢!員工旅遊回來,想必又恢復當初剛進公司的熱情,幫公司創造更多獲利,一舉多得的福利公司更應該多舉辦唷~
多年沒研究相機規格的我,要怎麼跟阿弟說焦長24mm到底好不好,於是我找到一個網站可以模擬鏡頭焦長效果,這樣就不用我多說,因為去浪漫的歐洲肯定會拍許多美景建築物,所以需要廣角鏡頭來把壯觀的場景整個拍下來,有攝影師說28mm以下都可算是廣角鏡啦~

14mm是目前我看到最短的焦段,可以容納範圍超大的場景。
2015年來到了一年的尾聲,來瞭解一下這一年我到底在臉書上貼了什麼訊息吧!透過臉書的應用程式將這些字以頻率高字體大的方式呈現,於是變成了圖解臉書使用頻率高的字。

看來這一年除了很愛吃冰(霜)淇淋外,就是不停的慢(奔)跑XD~代表的意義就是我們125超慢跑團的信念「運動是為了吃更多的美食!」
事情是發生在週三與週四,週三這一天寒流即將來襲,在下班前就下起大雨,我先走約500公尺到停車處,然後把放在坐墊下的雨衣、雨褲、雨鞋拿出來,接著在靠近別人家門口躲雨全副武裝。
完全沒有意會到,在拿出雨具的同時也把行車執照與強制責任險證掀了出來,掉在地上完全不曉得,而我也沒感覺到什麼異樣,只是想趕緊著裝上路回家~

回想兩年前開始做這個給美國寶寶使用的App,從無到有開始打造,因為關鍵的功能尚不知如何實作,於是邊學習邊開發。主要的用途就是讓寶寶自己開影片來看,因為影片檔案很多且很大,需要有個後台來存放,使用者必須從網路下載影片回來App,此外還有進階使用功能,便是應用內購買來下載更多影片。

回想當初製作時功能流程的複雜程度,App使用起來功能簡單又基本(使用者角度),然而開發起來就覺得實在好複雜(工程師角度),每個細節都要處理恰到好處,於是要花許多時間來測試與除錯。
像是下載影片、儲存影片、播放影片、加入我的最愛、應用內購買、限時播放與循環播放、播放清單、推薦親友、獎勵兌換、家長閘等等。不列出來我都忘記,列出來讓我又想起更多細節,乍看之下就只是個影片播放App,其中的奧秘都呈現在斷斷續續一年以來的開發過程之中。
可能因為自己還沒有小孩(快有了:P~),所以開發這個給寶寶使用的App,說實在的並沒有讓我很興奮,常會卡在某些功能流程上。
像是超大影片(例如100MB)要下載,就不能先全部載到記憶體,再轉存到硬碟,而是要每下載一小部分就從記憶體轉存到硬碟,以免超過App所能乘載的記憶體量而崩潰。
還有當時想要背景下載,但實際上只作前景下載,而且一次只能下載一個影片,所以使用者要開著螢幕乾等影片下載完畢,後來有加上背景下載(10分鐘內)。
此外,應用內購買必須模擬真實購買情況,好在Apple有區分開發環境(Development)與產品環境(Production),讓我可以無限次數購買,只是測試帳號購買產品後,沒有辦法回復到還沒購買的狀況,所以要不斷更改產品ID,或是增加測試帳號,來購買同一個商品。
我想這些學習理應感到很有成就感,只是我會想能不能沿用到未來的專案,當然多少都會對未來專案有助益,也希望開發過程中能有空閒來記錄下我的學習歷程,好讓未來的我或其他學子,能快速上手!
最近同事需要匯出開發文件,我在寶寶App也因應客戶需求,以Apple Doc的格式釋出,多虧一年半前我有記錄下來,直接貼連結給同事參考,節省不少學習時間。
最後的感想是,學海無涯,自己對新的事物也總是抱著好奇的心去認識與學習,然而時間有限之下,我必須選擇對我意義最多且價值最大的題目來實現。
HappyMan・迴響