背景

前段时间苹果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 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开发介绍视频,那自然是极好的(甄嬛体):

点击中间的播放按钮即可。

安装Xcode 6.2 Beta

目前Xcode的正式版是6.1.1,可是没有集成WatchKit。只有Xcode 6.2 Beta(测试版)集成了WatchKit,所以只好下来试试,期待含有WatchKit的Xcode正式版快些放出。

进入链接:https://developer.apple.com/xcode/downloads/

点击 Download Xcode 6.2 beta 3,会提示你登陆苹果开发者账号,没有的话注册一个。Xcode 6.2 beta 3有2.81GB,所以下载需要些时间,可以够你吃两三只烤鸡 :P 。下载完后双击 xcode_6.2_beta_3.dmg 这个文件,出现如下窗口(对苹果用户应该不陌生):

只需要简单地将Xcode-Beta这个图标拖放到Applications那个图标上,就开始安装了,安装完大小是5GB多。然后可以在LaunchPad里打开或者在Applications里打开。也可以拖放到Dock里,以方便以后访问。

启动Xcode 6.2 Beta,

点击 Create a new Xcode project (创建一个新的Xcode项目)

我们选择iOS的 Single View Application,点击Next到下一步,

上图是项目的基本配置,项目名称我们叫做“HelloWatchKit”,随便取。Language(编程语言)选择Swift,毕竟是全新的苹果开发语言,老的Objective-C虽然好,但是上手没有Swift那么容易(其实关键是小编只会Swift...),而且苹果也会大力发展Swift。Next下一步,选择存放路径,默认就好,你也可以自己选择放在哪里。

iOS工程添加WatchKit支持

iOS项目创建好了,如何添加WatchKit支持呢?我们需要添加一个Target。可以点击 HelloWatchKit -> Add target 来添加

也可以点击 File -> New -> Target来添加

选择了添加Target之后,会弹出如下窗口,选择 iOS -> Apple Watch,点击Next

进入基本设置,记得勾选 Include Glance Scene(因为之后要用到Glance界面),如下图红色框所示

点击Finish按钮,就可以了。

接下来测试一下我们的工程。

选择运行目标是 HelloWatchKit WatchKit App(如下图红框所示),模拟器我选了默认的iPhone 6,点击左上角的灰黑色小三角(红框所示)来运行

苹果的Xcode的运行速度真的很快(虽然Google新发布的Android Studio已经很快了,但还是与Xcode速度上有些差距),立即就为我们呈现了 iPhone 6 和 Apple Watch的两个模拟器的运行状态

怎么样,有点意思不,我们继续学习吧。

WatchKit项目结构和UI控件

我们先来看一下Xcode为我们打开的项目:HelloWatchKit

在左边的项目列表里,点开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界面和通知界面。

我们再回到Interface.storyboard,点击Main Interface,可以看到右下角的控件栏显示了可以被添加到主界面的所有控件。目前还不多,一共大概13个控件。比如Group控件是一个布局容器,有垂直或水平之分。Table控件是用来呈现列表的。其他控件如Button(按钮),Label(标签)等大家应该不陌生。

主界面

为了测试,我们随便往Main Interface里拖进去几个控件,选中控件不放开直接拖到主界面上,我们拖了一个Switch(开关),一个Separator(分割线),一个Button(按钮)和一个Timer(计时器,会从零开始计时),此时我们的布局是默认的垂直布局,如下图

我们把目标选为HelloWatchKit WatchKit App,然后点击运行按钮。

可以看到运行起来后,除了Timer计时器控件没有显示,其他都显示了,这是因为我们没有把Timer置为Enabled(可用),我们选中Timer控件,把右上角的Enabled的勾打上,如下图红框所示。并且把Format(格式)改为下拉列表中的Short(短格式),再把Timer的框往右拉大一些(不然显示不全)。

再次运行程序,会看到如下图,Timer开始计时了,有趣吧

然后我们把Timer和Switch控件删除(用不着了),接下来我们选中Label控件,可以在右边配置它的属性,比如我们可以把Position(位置)中的Horizontal(水平)属性改为Center(居中),如下图,可以看到我们的Label由默认的靠左对齐变为居中对齐了,也可以更改Vertical(垂直)的属性为居中或靠底部对齐。

在界面中,我们除了可以添加各种控件,也可以配置界面的各种属性。例如,选中主界面,可以看到右上角的属性列表,我们可以配置它的背景颜色,在Color(颜色)那一栏,我们选择紫色,可以看到背景颜色变为很美的紫罗兰。

我们也可以添加背景图片,在Background(背景)那一栏,目前还没有图片可以选择(No Image)。我们来添加一张图片到工程中,随便拖放一张电脑里的图片到Supporting Files(支持文件)目录,在弹出的窗口点击Finish(完成),

可以看到我们的图片IMG_6090.JPG已经添加到我们的工程了。重新回到我们的Interface.storyboard,在主界面的属性列表里的Background一栏已经可以选择刚添加的图片了,选好后,则主界面如下图所示。

那么,我们如何和主界面中的控件来交互呢?我们来学习一个苹果Xcode的高级功能:Assistant Editor(助手编辑器)。默认的编辑器是Standard Editor(标准编辑器)。在左上角,点击红框所示的Show Assistant Editor,会发现Xcode为我们在Interface.storyboard右边打开了InterfaceController.swift这个文件(前面提到了,这个文件里的类正是控制主界面的),

接下来,很神奇的事情,我们选中主界面中的Label,按住ctrl键(不是cmd键),然后移动鼠标(如果你用触摸板操作,那就是按住触摸板移动),会发现出现一条蓝色的线,一端连接着Label,一端可以随意拖动,

把其拖动到InterfaceController类的第一个方法上面,则会弹出一个对话框,在对话框里填入myLabel这个名字(随便用什么名字),

点击connect(连接)按钮,则创建了一个Outlet(插座,出口),在程序中可以看到Xcode为我们生成了一段代码:@IBOutlet weak var myLabel: WKInterfaceLabel!

类似地,先将Button按钮的文字改为Click(点击),但是与刚才对Label的操作不一样的是,我们在弹出的对话框中不选择默认的Outlet类型,而是选择Action(动作)类型,因为Button按钮按下后我们要让其实现某些动作。名字填上myButton,点击connect生成myButton这个Action。在程序中可以看到Xcode为我们生成了一段代码:@IBAction func myButton() {}

你可以看到我们的InterfaceController.swift现在如下图这样

接着,我们在myButton这个Action的大括号里,写入一行代码:myLabel.setText("The Button is clicked”)

意思是,当Button按钮被按下后,Label的文字会改变为“The Button is clicked”

我们来测试一下效果,运行之后,如下图所示,我们点击Click按钮,可以看到Label文字变为“The Button is clicked”


Glance界面

看完了主界面,我们来学习一下Glance界面。在Glance界面中我们也拖进一个控件,用一个Label,把文字改为“Click To Show Main” (点击显示主界面),因为我们之前说过,我们可以从Glance界面点击一下返回主界面。

为了测试,我们先把运行的第一个界面设置为Glance界面(默认是运行主界面)。点击左上角的HelloWatchKit WatchKit App,在出现的下拉列表里选择 Edit Scheme (编辑体系),

会弹出如下图的窗口,我们在Excutable(可执行程序)的下拉列表里选择Glance - HelloWatchKit WatchKit App.app,然后点击Close(关闭)按钮。

重新运行。可以看到如下图,我们的启动界面变为了Glance界面

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



通知界面

体验过了Main Interface(主界面)和Glance Interface(Glance界面),我们最后来看一下Notification(通知)界面。我们先用Edit Scheme把Excutable调为Notification - HelloWatchKit WatchKit App.app,点击Close按钮关闭

运行一下,可以看到通知界面的布局

从上到下有四个组件:HelloWatch那个是通知的标题;Test Message那个是通知的内容;First Button那个是一个按钮,点击会返回主界面;Dismiss(开除,解除)那个是另一个按钮,点击会关闭通知。

虽然没在真机上测试,是不能有实际的通知的,但我们可以用模拟器模拟通知的效果。当然大家也可以连接真机测试。

我们点击 HelloWatchKit WatchKit Extension目录下的Supporting Files目录中的PushNotificationPayload.apns这个文件,可以看到这个文件里面就是控制通知界面的一些代码。

我们再次点击HelloWatch Watch App目录下的Interface.storyboard,看到Glance Interface下面的就是我们的通知界面。

我们可以在PushNotificationPayload.apns这个文件修改通知文本的显示,比如我们将First Button改为“Show Main Interface”,运行,如下所示,

点击Show Main Interface,则回到我们的主界面。

后记

至此,对于WatchKit已经大体介绍完了。苹果的WatchKit开发包的能力远不止此,我们只是演示了基本的知识点。而且因为WatchKit刚放出不就,相信以后应该会越来越强大。祝愿可穿戴设备越走越好,未来可穿戴设备一定举足轻重。

* 您若觉得本文不错,请点右上角“分享到朋友圈”

* 新朋友请关注程序员联盟,公众号:ProgrammerLeague

苹果WatchKit轻松入门相关推荐

  1. 想轻松入门Python编程,这10个经典案例你还不知道嘛?

    一直以来,Python都是一门很简单的编程语言,其实无论你有没有基础,学起来都不难. 但,必须有方法,而最好的方法其实就是学+练,即:基本常识+这10经典案例. 而同时有着系统的Python基础知识点 ...

  2. python从入门到项目实战李兴华网盘_贺胜军Python轻松入门到项目实战【经典完整版】...

    贺胜军Python轻松入门到项目实战课程目录 01_Python基本概述 01_计算机组成_操作系统.avi 02_计算机的进制.avi 03_数据存储单位1.avi 04_编码和解码.avi 05_ ...

  3. 统一建模语言UML轻松入门系列

    第五讲:统一建模语言UML轻松入门之综合实例 第四讲:统一建模语言UML轻松入门之动态建模 第三讲:统一建模语言UML轻松入门之静态建模:类和对象 第二讲:统一建模语言UML轻松入门之静态建模:用例 ...

  4. Golang并发模型:轻松入门协程池

    goroutine是非常轻量的,不会暂用太多资源,基本上有多少任务,我们可以开多少goroutine去处理.但有时候,我们还是想控制一下. 比如,我们有A.B两类工作,不想把太多资源花费在B类务上,而 ...

  5. OpenGL编程轻松入门(一)

    OpenGL编程轻松入门(一) (由同事黄燕创作)   本文介绍了有关OpenGL的基本知识,主要涉及颜色.绘制几何体.坐标变换.堆栈操作.显示列表.光照和材质.纹理映射.特殊效果.曲面和曲线的绘制. ...

  6. asp.net core轻松入门之MVC中Options读取配置文件

    接上一篇中讲到利用Bind方法读取配置文件 ASP.NET Core轻松入门Bind读取配置文件到C#实例 那么在这篇文章中,我将在上一篇文章的基础上,利用Options方法读取配置文件 首先注册MV ...

  7. 统一建模语言UML轻松入门(3)――静态建模:类和对象

    统一建模语言UML轻松入门(3)――静态建模:类和对象 --------------------------------------------------------------------- 宋宝 ...

  8. 日语输入法电脑版_日语轻松入门小百科

    如果你一直以来都对日语抱有强烈的兴趣,那么就赶紧跟我一起轻松入门吧~ 科普之一:日语五十音图 什么是假名?什么是五十音图? 日语的字母叫做假名,每个假名代表一个音节.假名有两种书写方式,即平假名和片假 ...

  9. 公钥,私钥和数字签名这样理解轻松入门!

    公钥,私钥和数字签名这样理解轻松入门! 参考博文:https://blog.csdn.net/21aspnet/article/details/7249401 (公钥和私钥是成对出现的,可以把他们看成 ...

最新文章

  1. 开源ceph管理平台inkscope部署手册
  2. 解决Mac Pro上IDEA卡顿的问题
  3. java 面试700问_JAVA面试700问(一)
  4. Web前端笔记-浏览器控制台调用js函数及vue函数
  5. MapReduce InputFormat之FileInputFormat
  6. mongoexport导出mongodb数据库中的数据
  7. python0不能做除数、怎么解决_为什么不能用 0 做除数?
  8. SPOJ104 Highways,跨越数
  9. MacOS入门技巧分享
  10. Windows Phone开发(6):处理屏幕方向的改变 转:http://blog.csdn.net/tcjiaan/article/details/7273107...
  11. 策略模式详解(用java语言实现策略模式)
  12. java小组项目口号,小组口号霸气押韵大全(精选60句)
  13. 社保已经交够15年了,还需要再交吗?到退休年龄时可以退休吗?
  14. opengl: 太阳地球和月亮
  15. 64位 iee754_IEEE754浮点数2008版
  16. linux修改文件名的三种方法
  17. 图论练习题(存起来练)
  18. 基于Visual Graph快速开发出电力系统
  19. 富士施乐再推“中国定制”新品 引领中小企业智能化移动办公潮流
  20. 各系统勒索补丁下载地址

热门文章

  1. 【Linux】/lib/ld-linux.so.2: bad ELF interpreter: No such file or directory
  2. 失恋CPR 自救手册
  3. Oracle-12c新功能基于时间点recover table
  4. 空气质量指数计算公式
  5. python入侵手机_Python-Iocextract:高级入侵威胁标识符IoC提取工具
  6. Linux入门级操作实例--vi和vim编辑器的使用
  7. 密码格式 数字+字母
  8. 屏蔽微信分享到朋友圈等按钮
  9. 一条sql语句查出男生前5名和女生前五名
  10. ERLANG recon使用示例