2017年1月24日 星期二

[學習筆記] Touch 3D介紹

這篇文章是看完線上讀書會的3D Touch教學後寫下來的筆記,
原始的讀書會影片可以從Youtube上進行觀看。


Touch 3D是iOS 9以上,需要6S以上的機型才有支援的硬體新功能

主要功能有:

  • Quick Actions - 主畫面重壓app圖示彈出選單
  • Peek and Pop - 預覽及彈出新的視窗
  • Pressure Sensitivity - 壓力感應

Quick Action

Quick Action可以用 info.plist的方式建立,但是不建議,因為:

  1. 寫在info.plist不好寫 -> 要一個一個key
  2. 不能用code動態更新內容

用Code的方式要在app裡加入Quick Action很簡單,只要在appDelegate裡的程式進入點中,替UIApplication.shared.shortcutItems這個array加入新的shortcut選項功能:

UIApplication.shared.shortcutItems = 
[
    UIApplicationShortcutItem(
        type:”mic”,
        localizedTitle:”麥克風”,
        localizedSubtitle:”這是測試”,
        icon:UIApplicationShortcutIcon(type:.audio),
        userInfo:[“swift讀書會”:20161201]
    ),
    UIApplicationShortcutItem(
        type:”love”,
        localizedTitle:”平等對待”,
        localizedSubtitle:”改變歧視現實”,
        icon:UIApplicationShortcutIcon(type:.love),
        userInfo:[“世界人權日”:20161210]
    )
]

上面的範例會在app用力點擊時,生成一筆Title為麥克風平等對待二筆資料清單,變數type可以供開發者進行使用者點擊的判斷,icon用來顯示的icon名稱,iOS 9.1 以後內建的icon比較多(Icon樣式可以參考這裡),userInfo則是可以加入額外的參數。Quick Action有一些功能上的限制就是只能顯示四組,但可以建立無限多組。
從選單點選時程式的進入點會在:

func application(_ application:UIApplication, performActionFor shortcutItem: UIApplicationShortcutItem, completionHandler:@escaping (Bool)->Void)

如果app沒有開啟,可以在didfinihsLaunching裡從

launchOptions?[UIAppliationLaunchOptionKey.shortcutItem] as? UIAppliationLaunchOptionKey

抓取key值判判是從那一個地方進來的

Peek and Pop

Peek可以讓使用者進行預覽的動作,Pop是使用者在peek預覽時再用力按下就會讓畫面直接跳到預覽的頁面,使用方式要先在所在頁面裡加入UIViewControllerPreviewingDelegate的protocol,同時實作二個func:

//peek
func previewingContext(_ previewingContext: UIViewControllerPreviewing, viewControllerForLocation location:CGPoint) -> UIViewController?{
    let index = previewingContext.sourceView.tag - 1000
    let vc = webVC()   
    return vc
}

//pop
func previewingContext(_ previewingContext: UIViewControllerPreviewing, commit viewControllerToCommit: UIViewController){
    nav.pushViewController(viewControllerToCommit, animated: true)

}

想在Peek往上滑動時加入選單,可以在Viewcontroller裡加入previewActionItems,這部分我沒有特別去實作,因為目前還沒有需要去實作這樣的功能。

結論

Touch 3D的實作上還滿容易的,我看完整個讀書會的影片後就可以把Touch 3D基本的Quick Action及Peek、POP的功能加入到現有在開發的app中,這個預覽的功能其實還滿方便的,Touch 3D好像也可以運用在推播的功能上,不過影片好像沒有特別介紹,未來可以再花點時間研究看看。

2016年12月31日 星期六

2016年度回顧

一年又過去了,又到了年底的這個時間點,每一年還是要做一下回顧,看一下今年自己做了那些事,在新的一年裡也準備新的展望及新的開始。下面就回顧一下今年買了什麼及做了什麼事吧....

工作方面:

考了iOS初級證照

就在二寶出生之前,我也順利的拿到了經濟部的iOS初級證照,雖然考這張證照只是為了升遷用,不過對自己也算是基本的能力驗證吧。

合寫了GIS 年刊

和同事合寫了年刊,分享了iOS的離線圖台技術,雖然某部分而言也是為了升遷,但至少也讓自己有花了一點時間整理自己的東西。

寫了GIS月刊

也因為升遷的需求(前面這幾件事都算是吧XD),也投稿了月刊,分享了Github的教學文章,相關的內容也分享到了自己的blog裡,這算是2016年寫最認真的文章吧,2016年文章的產量真的少的可憐....

工作升遷

完成了前面的幾項任務,最終也達成了升遷的條件,很感謝主管的提拔讓我能順利的升職,來到這裡也十年了,雖然嚐試過當SA,但最後還是覺得自己還是喜歡技術、喜歡Coding,也謝謝主管的支持,讓我可以當一個高級PG.......XD

生活上的變化

二寶小蘋果出生

四月的時候迎來我的二千金-小蘋果,她也夠折騰的,讓媽媽在醫院裡安胎一個多星期,也讓老爸我在年初就把假都快請光了,平安順利的來到人世

買了什麼??

看了下面的清單,2016年也花了不少錢丫.....

買了Herman Miller 人體工學椅 Embody Chair

年初的時候因為不滿意現在公司坐的椅子,所以就狠下心來敗了這張椅子,這張椅子坐起來真的滿舒服的,坐下去以後會不想起來,雖然還是會定期起來上廁所,效率上有一定的提升,因為身體不會因為坐的不舒服而動來動去的,屁股也不再酸痛了,也算是一筆不錯的投資啦.....XD

買了Apple Watch Series 2

因為年前老婆有禮劵,所以趁我生日的時候就入手了,我是一個不喜慣在身上帶東西的人,所以手錶很久之前就沒有再戴過了,因為這一代的apple watch有支援了GPS,終於可以不用帶手機去跑步了(後來因為空汙越來越嚴重,也沒什麼出門跑步了><),剛開始使用時還有些不習慣,不過一下子就感受到它帶來的方便,而且在外面用手錶講電話帥氣度破表丫,用siri來設鬧鐘跟提醒也很方便,還有每小時的站立提醒是一個讓我離開Embody Chair的好工具,但它在第三方的app的開啟上還是不夠快速,但通知的功能很夠用,Line跟簡訊也可以直接用手錶回,還是一項不錯的科技產品。

換了iPhone 7 Plus

iPhone 6 Plus也用了二年,電信合約也到期了,入手apple watch的同時也用公司的企業方案入手了iPhone 7 Plus,5.5吋的用習慣以後就很難再回去小畫面的手機了,新的手機也支援了Touch 3D等新的硬體功能,讓我可以用來測試自己寫的app(這是一個很好換手機的理由XD)

** 再見了2016 ,你好2017 **

期待明年的自己有更好的進步!!