天天看點

蘋果WatchKit輕松入門

蘋果WatchKit輕松入門

背景

前段時間蘋果Apple推出 WatchKit,用于開發Apple Watch應用,同時也推出了 Xcode6.2 Beta(非穩定版,好期待穩定版)版本用于開發 Watch App。Apple Watch是蘋果在智能穿戴領域的一個嘗試,對于蘋果和開發者都非常具有挑戰。學會開發 WatchApp 将大幅度提高自己的競争能力。

内容提要:

1、初識WatchKit

2、安裝Xcode 6.2 Beta

3、iOS工程添加WatchKit支援

4、WatchKit項目結構和UI控件

5、主界面

6、Glance界面

7、通知界面

初識WatchKit

我們去Apple的官網的WatchKit的開發頁面:

https://developer.apple.com/watchkit/

蘋果WatchKit輕松入門
蘋果WatchKit輕松入門

相當高大上吧,全是英文,英文沒學好的話吃虧不?作為程式員,英語還是要盡量努力學習的,因為很多好的資源和開發環境都是英語的。扯遠了...  ——||

蘋果WatchKit App的特點:

  1. 不少的智能手表的App是直接運作在手表中,受限于智能手表的記憶體和運算能力,不能運作很複雜的App。
  2. 目前蘋果的做法是:WatchKit分為兩部分,一個WatchKit的擴充程式(Extension)以背景程式運作在你的智能手機iPhone上(充分利用iPhone的運算能力和記憶體),而Watch App運作在你的Apple Watch智能手表上,負責渲染界面,當你的App在Apple Watch上啟動時,你的手表就從iPhone擷取資料,展示運作結果。(自己的了解,有不對,請指正)
  3. 當然了,Apple也承諾之後會允許真正運作在Apple Watch 上的 App 的出現,Apple Watch 和 WatchKit 的未來還是很值得期待的。

推薦一個大牛的部落格,裡面一篇《Apple WatchKit 初探》寫得不錯,值得學習。

http://onevcat.com/2014/11/watch-kit/

如果英語還不錯,可以觀看蘋果的官方WatchKit開發介紹視訊,那自然是極好的(甄嬛體):

蘋果WatchKit輕松入門

點選中間的播放按鈕即可。

安裝Xcode 6.2 Beta

目前Xcode的正式版是6.1.1,可是沒有內建WatchKit。隻有Xcode 6.2 Beta(測試版)內建了WatchKit,是以隻好下來試試,期待含有WatchKit的Xcode正式版快些放出。

進傳入連結接:https://developer.apple.com/xcode/downloads/

蘋果WatchKit輕松入門

點選 Download Xcode 6.2 beta 3,會提示你登陸蘋果開發者賬号,沒有的話注冊一個。Xcode 6.2 beta 3有2.81GB,是以下載下傳需要些時間,可以夠你吃兩三隻烤雞 :P 。下載下傳完後輕按兩下 xcode_6.2_beta_3.dmg 這個檔案,出現如下視窗(對蘋果使用者應該不陌生):

蘋果WatchKit輕松入門

隻需要簡單地将Xcode-Beta這個圖示拖放到Applications那個圖示上,就開始安裝了,安裝完大小是5GB多。然後可以在LaunchPad裡打開或者在Applications裡打開。也可以拖放到Dock裡,以友善以後通路。

啟動Xcode 6.2 Beta,

蘋果WatchKit輕松入門

點選 Create a new Xcode project (建立一個新的Xcode項目)

蘋果WatchKit輕松入門

我們選擇iOS的 Single View Application,點選Next到下一步,

蘋果WatchKit輕松入門

上圖是項目的基本配置,項目名稱我們叫做“HelloWatchKit”,随便取。Language(程式設計語言)選擇Swift,畢竟是全新的蘋果開發語言,老的Objective-C雖然好,但是上手沒有Swift那麼容易(其實關鍵是小編隻會Swift...),而且蘋果也會大力發展Swift。Next下一步,選擇存放路徑,預設就好,你也可以自己選擇放在哪裡。

iOS工程添加WatchKit支援

iOS項目建立好了,如何添加WatchKit支援呢?我們需要添加一個Target。可以點選 HelloWatchKit -> Add target 來添加

蘋果WatchKit輕松入門

也可以點選 File -> New -> Target來添加

蘋果WatchKit輕松入門

選擇了添加Target之後,會彈出如下視窗,選擇 iOS -> Apple Watch,點選Next

蘋果WatchKit輕松入門

進入基本設定,記得勾選 Include Glance Scene(因為之後要用到Glance界面),如下圖紅色框所示

蘋果WatchKit輕松入門

點選Finish按鈕,就可以了。

接下來測試一下我們的工程。

選擇運作目标是 HelloWatchKit WatchKit App(如下圖紅框所示),模拟器我選了預設的iPhone 6,點選左上角的灰黑色小三角(紅框所示)來運作

蘋果WatchKit輕松入門

蘋果的Xcode的運作速度真的很快(雖然Google新釋出的Android Studio已經很快了,但還是與Xcode速度上有些差距),立即就為我們呈現了 iPhone 6 和 Apple Watch的兩個模拟器的運作狀态

蘋果WatchKit輕松入門

怎麼樣,有點意思不,我們繼續學習吧。

WatchKit項目結構和UI控件

我們先來看一下Xcode為我們打開的項目:HelloWatchKit

蘋果WatchKit輕松入門

在左邊的項目清單裡,點開HelloWatchKit WatchKit App這個目錄,再單擊Interface.storyboard,在中間就會顯示其可視化的界面。我們可以看到有三個界面,最上面的是Main Interface(主界面),在它下面是Glance Interface(Glance界面),Glance是英語:反光; 瞥見 的意思。是以Glance界面是一個用于呈現資訊的即時界面,如果不需要也可以把它揮掃掉或者點選一下重新進入主界面Main Interface(我們一般在智能手機上體驗過的每個軟體更新後,打開下面有好幾個白色小圓點的,你要一一掃過才能進入主界面的,那幾個就是Glance界面)。在Glance Interface下面是Notification Interface(通知界面),當Apple Watch手表接收到一個通知時,就會進入通知界面,也可以從通知界面再回到主界面。

Apple Watch的程式是寫在WatchKit Extension這個目錄下的(在我們的項目中就是HelloWatchKit WatchKit Extension)。裡面有三個類:InterfaceController,GlanceController和Notification Controller(Controller是控制器的意思),分别對應上面我們介紹過的三個界面:主界面,Glance界面和通知界面。

蘋果WatchKit輕松入門

我們再回到Interface.storyboard,點選Main Interface,可以看到右下角的控件欄顯示了可以被添加到主界面的所有控件。目前還不多,一共大概13個控件。比如Group控件是一個布局容器,有垂直或水準之分。Table控件是用來呈現清單的。其他控件如Button(按鈕),Label(标簽)等大家應該不陌生。

蘋果WatchKit輕松入門

主界面

為了測試,我們随便往Main Interface裡拖進去幾個控件,選中控件不放開直接拖到主界面上,我們拖了一個Switch(開關),一個Separator(分割線),一個Button(按鈕)和一個Timer(計時器,會從零開始計時),此時我們的布局是預設的垂直布局,如下圖

蘋果WatchKit輕松入門

我們把目标選為HelloWatchKit WatchKit App,然後點選運作按鈕。

蘋果WatchKit輕松入門

可以看到運作起來後,除了Timer計時器控件沒有顯示,其他都顯示了,這是因為我們沒有把Timer置為Enabled(可用),我們選中Timer控件,把右上角的Enabled的勾打上,如下圖紅框所示。并且把Format(格式)改為下拉清單中的Short(短格式),再把Timer的框往右拉大一些(不然顯示不全)。

蘋果WatchKit輕松入門

再次運作程式,會看到如下圖,Timer開始計時了,有趣吧

蘋果WatchKit輕松入門

然後我們把Timer和Switch控件删除(用不着了),接下來我們選中Label控件,可以在右邊配置它的屬性,比如我們可以把Position(位置)中的Horizontal(水準)屬性改為Center(居中),如下圖,可以看到我們的Label由預設的靠左對齊變為居中對齊了,也可以更改Vertical(垂直)的屬性為居中或靠底部對齊。

蘋果WatchKit輕松入門

在界面中,我們除了可以添加各種控件,也可以配置界面的各種屬性。例如,選中主界面,可以看到右上角的屬性清單,我們可以配置它的背景顔色,在Color(顔色)那一欄,我們選擇紫色,可以看到背景顔色變為很美的紫羅蘭。

蘋果WatchKit輕松入門

我們也可以添加背景圖檔,在Background(背景)那一欄,目前還沒有圖檔可以選擇(No Image)。我們來添加一張圖檔到工程中,随便拖放一張電腦裡的圖檔到Supporting Files(支援檔案)目錄,在彈出的視窗點選Finish(完成),

蘋果WatchKit輕松入門

可以看到我們的圖檔IMG_6090.JPG已經添加到我們的工程了。重新回到我們的Interface.storyboard,在主界面的屬性清單裡的Background一欄已經可以選擇剛添加的圖檔了,選好後,則主界面如下圖所示。

蘋果WatchKit輕松入門

那麼,我們如何和主界面中的控件來互動呢?我們來學習一個蘋果Xcode的進階功能:Assistant Editor(助手編輯器)。預設的編輯器是Standard Editor(标準編輯器)。在左上角,點選紅框所示的Show Assistant Editor,會發現Xcode為我們在Interface.storyboard右邊打開了InterfaceController.swift這個檔案(前面提到了,這個檔案裡的類正是控制主界面的),

蘋果WatchKit輕松入門

接下來,很神奇的事情,我們選中主界面中的Label,按住ctrl鍵(不是cmd鍵),然後移動滑鼠(如果你用觸摸闆操作,那就是按住觸摸闆移動),會發現出現一條藍色的線,一端連接配接着Label,一端可以随意拖動,

蘋果WatchKit輕松入門

把其拖動到InterfaceController類的第一個方法上面,則會彈出一個對話框,在對話框裡填入myLabel這個名字(随便用什麼名字),

蘋果WatchKit輕松入門

點選connect(連接配接)按鈕,則建立了一個Outlet(插座,出口),在程式中可以看到Xcode為我們生成了一段代碼:@IBOutlet weak var myLabel: WKInterfaceLabel!

蘋果WatchKit輕松入門

類似地,先将Button按鈕的文字改為Click(點選),但是與剛才對Label的操作不一樣的是,我們在彈出的對話框中不選擇預設的Outlet類型,而是選擇Action(動作)類型,因為Button按鈕按下後我們要讓其實作某些動作。名字填上myButton,點選connect生成myButton這個Action。在程式中可以看到Xcode為我們生成了一段代碼:@IBAction func myButton() {}

蘋果WatchKit輕松入門

你可以看到我們的InterfaceController.swift現在如下圖這樣

蘋果WatchKit輕松入門

接着,我們在myButton這個Action的大括号裡,寫入一行代碼:myLabel.setText("The Button is clicked”)

意思是,當Button按鈕被按下後,Label的文字會改變為“The Button is clicked”

蘋果WatchKit輕松入門

我們來測試一下效果,運作之後,如下圖所示,我們點選Click按鈕,可以看到Label文字變為“The Button is clicked”

蘋果WatchKit輕松入門

Glance界面

看完了主界面,我們來學習一下Glance界面。在Glance界面中我們也拖進一個控件,用一個Label,把文字改為“Click To Show Main” (點選顯示主界面),因為我們之前說過,我們可以從Glance界面點選一下傳回主界面。

蘋果WatchKit輕松入門

為了測試,我們先把運作的第一個界面設定為Glance界面(預設是運作主界面)。點選左上角的HelloWatchKit WatchKit App,在出現的下拉清單裡選擇 Edit Scheme (編輯體系),

蘋果WatchKit輕松入門

會彈出如下圖的視窗,我們在Excutable(可執行程式)的下拉清單裡選擇Glance - HelloWatchKit WatchKit App.app,然後點選Close(關閉)按鈕。

蘋果WatchKit輕松入門

重新運作。可以看到如下圖,我們的啟動界面變為了Glance界面

蘋果WatchKit輕松入門

在Glance界面的任意位置點選一下,就回到了主界面,如下圖,是不是很有意思。

蘋果WatchKit輕松入門

通知界面

體驗過了Main Interface(主界面)和Glance Interface(Glance界面),我們最後來看一下Notification(通知)界面。我們先用Edit Scheme把Excutable調為Notification - HelloWatchKit WatchKit App.app,點選Close按鈕關閉

蘋果WatchKit輕松入門

運作一下,可以看到通知界面的布局

蘋果WatchKit輕松入門

從上到下有四個元件:HelloWatch那個是通知的标題;Test Message那個是通知的内容;First Button那個是一個按鈕,點選會傳回主界面;Dismiss(開除,解除)那個是另一個按鈕,點選會關閉通知。

雖然沒在真機上測試,是不能有實際的通知的,但我們可以用模拟器模拟通知的效果。當然大家也可以連接配接真機測試。

我們點選 HelloWatchKit WatchKit Extension目錄下的Supporting Files目錄中的PushNotificationPayload.apns這個檔案,可以看到這個檔案裡面就是控制通知界面的一些代碼。

蘋果WatchKit輕松入門

我們再次點選HelloWatch Watch App目錄下的Interface.storyboard,看到Glance Interface下面的就是我們的通知界面。

蘋果WatchKit輕松入門

我們可以在PushNotificationPayload.apns這個檔案修改通知文本的顯示,比如我們将First Button改為“Show Main Interface”,運作,如下所示,

蘋果WatchKit輕松入門

點選Show Main Interface,則回到我們的主界面。

後記

至此,對于WatchKit已經大體介紹完了。蘋果的WatchKit開發包的能力遠不止此,我們隻是示範了基本的知識點。而且因為WatchKit剛放出不就,相信以後應該會越來越強大。祝願可穿戴裝置越走越好,未來可穿戴裝置一定舉足輕重。

* 您若覺得本文不錯,請點右上角“分享到朋友圈”

* 新朋友請關注「程式員聯盟」,公衆号:ProgrammerLeague

蘋果WatchKit輕松入門

繼續閱讀