看到這張圖解各國學童上下課時間,我不禁會心一笑,笑得不只是台灣學童上課時數是全世界第一,若對照台灣成年人上班時間也很恰到好處!?
[圖解] 各國學童上下課時間
[iOS] 正規表達式 (Regular Expression)
我們時常有個需求,就是去判斷數字與字母的規則,比如身份證字號是一個大寫字母+九個數字。判斷方法有很多種,這裡有個非常方便的技巧,就是使用正規表達式 (Regular Expression)。
我可以這麼寫⋯⋯
/**
Theme: Regular Expression
IDE: Xcode 7
Language: Objective C
Date: 105/03/05
Author: HappyMan
Blog: https://cg2010studio.wordpress.com/
*/
NSString *errorMessage;
// 確認身分證字號格式
NSString *phoneNumber = @“L123456789";
NSString *phoneRegex = @"[A-Z][0-9]{9}";
NSPredicate *test = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", phoneRegex];
BOOL matches = [test evaluateWithObject:phoneNumber];
if (!matches) {
errorMessage = @"身份證字號第一碼英文+後9碼為數字";
}
看了以上的程式片段,就知道如何使用了吧!
那其實正規表達式還有很多種用法,就拿StackOverFlow高人指點的例子⋯⋯
How to validate a phone number (NSString *) in objective-c? Rules:
- minimum 7 digits
- maximum 10 digits
- the first digit must be 2, 3, 5, 6, 8 or 9
實作解答如下:
NSString *phoneNumber = ...;
NSString *phoneRegex = @"[235689][0-9]{6}([0-9]{3})?";
NSPredicate *test = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", phoneRegex];
BOOL matches = [test evaluateWithObject:phoneNumber];
參考:Objective-c regex to check phone number。
。
三年後的13公斤
我真是沒想到,三年後我會胖回13公斤⋯⋯三年前的這個時候是我最輕盈的,三年後的今日又回復到剛開始(更早之前還有更胖的時候啦~)。

我去朋友的俱樂部每次都會自主量測體重,並且將數據全部記錄下來,以便未來觀察我過去這段時間的身體狀況。一看被嚇到,四個月內從70公斤胖到76公斤!?
過年前有許多美食事件,如營養俱樂部的感恩趴、聖誕趴,可思尾牙、驀然尾牙、日月潭櫻花馬,我以為可以趁有空閒時去跑步消耗掉多餘的熱量,然而天氣冷就算了,居然還一直下雨,所以很長沒有按照表定時間去跑步。
過年時的二月份,除了自己家除夕圍爐外,還拜訪鄰近的親戚而吃豐盛美食。二月中去國外八天旅遊,不會怎麼挑食的我自然有得吃就一直吃XD~
想起三年前三個月能瘦10公斤(也拜諾羅病毒所賜),可是我能再有當年的風範?好像不太行,因為阿婆每天都會煮非常豐盛的晚餐等我們回家⋯⋯
所以近期,我要搞失蹤!?
Amber叫我要減肥才會帥,姵樺說誰叫我要一直吃美食⋯⋯
我承認到國外旅行八天都在吃喝玩樂>//<~只有一天跑某大學7公里看來不太夠呢⋯⋯
開發iOS App超過三年,但其實還有很多技術不大瞭解,然只要清楚自己的目標,精通某一技術領域還是能大放異彩獨樹一格!在此我還是要強調,在有限的時間裡去做你最喜歡且最擅長的工作,同時有市場可以養活自己,之後機會自己會來報到,多到你只好拒絕,因為你沒有太多時間XD~
話說回來,推播服務在外行人如使用者看似簡單,而真正去瞭解技術的人會覺得還真有「眉角」,想要實作現在每個App必備的推播功能,並不是很容易的事呢!不過現在已經有各大廠商提供推播服務,只要一篇教學文章,肯定也能讓不太懂技術的人實現訊息推播功能!
這一張圖解APP訊息推送流程,道出iOS與Android的差別,想必技術有很多種方式能夠實現,實作方式不同便有著不太一樣的優缺點,而開發者如我只要懂得怎麼去應用,必能在生活中增添趣味呢!

儘管臉書要收起Parse(2017/02關門大吉),還是有其它選擇啦~就像它所說的競爭者很多,我們就從這些競爭者選擇來實現吧!
[APP] 快樂行李
快樂行李APP是我自己製作的,因為下個案子即將使用到的技術,恰好我要放自己長假去國外旅行,心想可以順便拿iBeacon來做測試,看它的能力效果如何。放在行李箱中的點子之前也有想過,查詢網路後發現我要搭的威航有這個服務,但應該是要額外收費。
![]()
UTF-8 (8-bit Unicode Transformation Format)
每次開發iOS App,傳送資料到server時很常要編碼,會使用到UTF-8 (8-bit Unicode Transformation Format),可是我一直不曉得它的全名XD~這玩意兒好像只要會用就行!?
直到看見這張圖表,才知道UTF-8後來居上!看來它真的有過人之處,尤其在這行動裝置盛行年代~
[寫真] 更換Macbook Air電池
自從2012年中購買且使用Macbook Air後,我對它越來越愛不釋手,逐漸減少使用Windows,因為Mac OS做得更體貼使用者,光是手指在觸控板上滑的感覺,就讓我驚訝得發抖⋯⋯

如今已經超過三年半,原本想要再買台The Macbook,只有一公斤不到的重量,讓我可以隨心所欲地工作與玩樂!只是當前預算不夠,只好繼續使用我心愛的Macbook Air。
然而Apple產品品質雖好到其他廠商沒得比,然而電池是種消耗品,會隨著時間降低續航力,就這樣它在第四年開始變得嚴重,甚至合上待機後再次打開,螢幕便顯示沒有電力⋯⋯
[圖解] 泰國入境單與出境單
已經有去泰國旅行兩次的經驗,不過我還是對泰國入境單與出境單很陌生,跟著朋友旅行省去不少麻煩事,不過若是自己要出國「七逃」,多學習些技巧可讓自己玩得自由且愉快!
泰國入境有正反面要填:

入境單正面
入境單正面依序填寫:
- Flight or Other Vechicle No. 班機號碼
- Family name 姓氏(護照上的Surname)
- Frist Name and Middle Name 名字(護照上的Given names)
- Nationality 國籍為Taiwan
- Passport No. 護照號碼
- Date Of Birth 出生日期,民國77年1月7日要倒過填07.01.1988
- Male /Female 男性/女性,請在格子上打X標示姓別
- Visa No. 泰國簽證號碼在圖騰下方
- Address in Thailand 泰國住宿地址或飯店名稱
- Signature 中文或英文簽名

入境單背面
入境單背面依序填寫:
- Type of Flight航班類別:Charter包機、Schedule班機
- Frist trip to Thiland第一次來泰國?
- Traveling on group tour跟旅行團?
- Accommodation 住在何處?
Hotel飯店、Friend’s Home朋友家、Youth Hostel青年旅社、Apartment公寓、Guest House民宿、Other其他 - Purpose of Visit 旅遊目的?(由上至下)
假期、會議、商務、招待、教育、研討會、受聘、展覽、過境、其他 - Yearly income 年收入多少美金
- Occupation職業,例如:學生Student、自由業Soho、工程師Engineer
- Country of residence你來自?,City/State哪個城市,就是台北Taipei,Country哪個國家,即是台灣Taiwan
- Form/port of embarkation 從哪一站啟程?桃園機場可填Taipei
- Next City/Port of disembarkation 下一站到哪裡?來曼谷就填Bangkok、去孔敬就填KhonKaen
泰國出境單只有一面要填:

出境單
參考:各國出入境單圖解、泰國出入境卡填寫教學。
[iOS] iBeacon 測試
睽違一年半之久,總算要來開發iBeacon,看來越來越多應用持續出現中!因為最近要出國,所以想到可以將iBeacon放進行李廂,進入範圍或離開範圍時,手機會跳出提示,如此就不用眼睛一直盯著行李箱:)~
一年半前參加「Retail Battle Hackathon 創新零售駭客松活動」,KKLabs給參賽者每人一顆Spot Beacon當作禮物,直到最近我才真正拿出來用XD~
可以先參考之前的文章:初探 IBEACON 技術。

HappyMan・迴響