基于Swift 的AppleWatch 开发教程

(一)内容简介

本书使用swift的新版本(2.0或以上),针对Apple Watch的基本编程和watch OS 3开放的众多新接口进行撰写,主要包括表盘、音频视频和多种传感器等,功能新颖,紧随穿戴设备流行趋势,内容全面,代码齐全,讲解清楚,可以让读者深入浅出地掌握Apple Watch开发。


(二)目录

1概述 1

1.1 watchOS项目结构 1

1.2 建立watchOS App实例 2

1.3 watchOS 3框架支持 4

1.4 【案例1watchOS 3项目结构 5

2 Swift 3编程基础 8

2.1 基本语法 8

2.1.1 变量和常量 8

2.1.2 guard letif let 10

2.1.3 字符串String 11

2.1.4 数组 13

2.1.5 枚举 14

2.1.6 for循环 15

2.1.7 switch/case多条件判断 15

2.1.8 任意类Any 16

2.2 函数 16

2.2.1 声明和调用 16

2.2.2 回调函数 17

2.2.3 异常抛出和捕捉 18

2.3 常用数据结构和类 18

2.3.1 字典Dctionary 18

2.3.2 日期Date 21

2.3.3 计时器Timer 23

2.3.4 文件存储 24

2.4 Objective-C混合编程 25

3 watchOS基础开发 26

3.1 页面控件 26

3.1.1 页面生命周期 26

3.1.2 页面关系 26

3.2 常用控件 27

3.2.1 表盘布局和Group 27

3.2.3 图片 28

3.2.4 按钮 28

3.2.5 开关 28

3.2.6 滑动条 29

3.2.7 选择器 29

3.2.8 表格 30

3.3 应用图标 32

3.4 【案例2】宠物乐园 33

4 WatchOS高级进阶 40

4.1 Force Touch菜单 40

4.2 振动引擎 40

4.3 表盘功能栏 41

4.3.1 功能栏简介 41

4.3.2 功能栏刷新 42

4.3.3 Watch表盘图库示例 43

4.3.4 家族和模板 44

4.3.5 家族示意图 45

4.3.6 模板示意图 46

4.3.7 功能栏图片尺寸 50

4.4 提醒 51

4.5 后台刷新任务 52

4.6 URL后台下载 53

4.7 Dock截图 53

4.8 Apple Pay支付 54

4.9 通知 54

4.10 【案例3】十二生肖 55

4.11 【案例4】后台刷新任务和URL下载 64

5多媒体和游戏引擎 69

5.1 多媒体 69

5.1.1 录音 69

5.1.2 无线播放音频 69

5.1.3 视频播放和喇叭外放 70

5.2 游戏引擎 70

5.2.1 2D游戏引擎控件 70

5.2.2 创建手表游戏项目 71

5.2.3 3D游戏引擎控件 71

5.2.4 手势识别 71

5.3 【案例5】录音和音频视频播放 72

5.4 【案例62D游戏 74

5.5 【案例73D游戏 80

6运动传感器和GPS 92

6.1 运动传感器 92

6.2 传感器记录 94

6.3 运动姿态识别 94

6.4 GPS和定位 94

6.5 地图控件 95

6.6 【案例8】运动传感器 95

6.5 【案例9GPS定位 105

7iPhone交互 109

7.1 WatchConnectivity框架 109

7.2 配置WCSession 109

7.3 连接状态 109

7.3.1 判断连接状态 109

7.3.2 连接状态回调 110

7.4 数据传输 110

7.4.1 覆盖式后台传输 110

7.4.2 队列式后台传输 110

7.4.3 文件传输 111

7.4.4 消息传输 111

7.4.5 消息数据传输 111

7.4.6 功能栏传输 112

7.5 【案例10】与iOS交互 112

8健康 120

8.1 健康存储的数据 120

8.1.1 人体特征数据 120

8.1.2 样本数据 121

8.1.3 样本数据类型 121

8.1.4 数据单位 124

8.1.5 病历 124

8.2 监测数据 124

8.2.1 加载健康框架 124

8.2.2 申请权限 125

8.2.3 后台模式 125

8.2.4 监测体能训练 126

8.2.5 活动类型 129

8.2.6 存储到健康库 131

8.3 【案例11】健身监测和体能训练 132

三、内容介绍

本书包括8章。第1章概述,介绍watchOS项目的结构组成,并列举了已经提供部分和完全支持的框架。

2Swift编程基础,Swift更新到第3个版本已经基本稳定,该部分介绍了Swift的基本语法、函数调用、常用数据结构和类,为后续开发做好准备。

3watchOS基础,开始正式进入watchOS应用的开发,介绍了页面和常用控件。

4watchOS高级进阶,是第3watchOS基础开发的进一步深入,主要涉及按压交互和组件交互,具体内容包括Force Touch菜单、振动引擎、表盘功能栏、提醒、后台刷新任务、URL后台下载、Dock截图、Apple Pay、通知等多种高级功能。

5章多媒体和游戏引擎,多媒体包括录音、连接蓝牙耳机播放音频、视频播放和喇叭外放,游戏引擎包括2D引擎SpriteKit3D引擎SceneKit,这里还结合游戏讲解了手势交互。

6章运动传感器和GPSApple Watch已经明确支持加速计、陀螺仪两种主要运动传感器,同时也支持GPS定位。

7章与iPhone交互,Apple Watch不是iPhone的附属部件,而是运行独立操作系统的独立计算机,与iPhone之间进行平等的数据交换,watchOS与配对的iOS交互是通过WatchConnectivity框架实现的,包括覆盖式后台传输、队列式后台传输、文件传输、消息传输、消息数据传输、功能栏传输等多个交互类型。

8章健康,Apple Watch提供强大和全面的健康监测功能,如心率、步数、活动能量消耗等,同时会将监测到的数据发送到iPhone上的健康库中。上述的每一个部分在详细讲解的基础上,均提供了案例代码。

基于Swift 的Apple Watch 开发教程介绍的更多相关文章

  1. 【IOS沉思录】开发软硬件SDK支持以及Swift语言

    iPhone和iPad软件支持iOS2007年发布2008年发布开发者SDKiOS当前的版本为:10.2官方开发者论坛:AppleDeveloperForums官方开发者教程文档资源库:Resources硬件支持A10处理器(iPhone7/7+)A9处理器(iPhone6s/6s+)A8处理器(iPhone6/iPhone6+)A8X处理器(iPadAir2)A7处理器(iPadMini3),A

  2. 基于Swift 的Apple Watch 开发教程介绍

    基于Swift的AppleWatch开发教程(一)内容简介本书使用swift的新版本,针对AppleWatch的基本编程和watchOS3开放的众多新接口进行撰写,主要包括表盘、音频视频和多种传感器等,功能新颖,紧随穿戴设备流行趋势,内容全面,代码齐全,讲解清楚,可以让读者深入浅出地掌握AppleWatch开发。第3章watchOS基础,开始正式进入watchOS应用的开发,介绍了页面和常用控件。第6章运动传感器和GPS,AppleWatch已经明确支持加速计、陀螺仪两种主要运动传感器,同时也支持GPS定

  3. android – S-View盖检测[磁传感器]

    我想为SamsungS-View封面编写一个应用程序.要确定盖子是否关闭,我想使用盖子中的磁铁而不是光传感器.我试着用我自己的Android磁性API:但我不知道如何解释这些数字.当然我也试过了x轴和y轴.它们取决于我握住手机的轴,如果我的手机后面或前面有翻盖,则没有太大的区别.您是否有任何想法如何使用磁传感器查看封面是否在我的手机前?

  4. android – 不同移动设备中的加速度计和陀螺仪精度

    我想用移动设备的传感器实现室内定位系统.这个问题已经在几个地方讨论过,比如-here和here第一步是确定哪个平台是实现这样一个系统的最佳平台.主要的可能性是三星的galaxy/galaxy标签或iphone/ipad.最重要的标准是传感器数据的准确性.但是,这种比较非常复杂,因为精度不仅取决于设备本身,还取决于其上方的软件层.有没有关于这个问题的研究?智能手机和平板电脑的传感器之间有区别吗?任何指向网站或文章的链接都会非常有用提前致谢!

  5. android – 用于Sensor.TYPE_ROTATION_VECTOR的传感器

    它是否使用罗盘和加速度计的组合?如果它们可用,它使用所有三个传感器.磁场传感器的使用对于获得一些绝对参考点至关重要.“旋转传感器”需要首先定向自身,然后消除陀螺仪随时间推移引入的漂移.陀螺仍然使用,因为它的精确性和良好的响应时间.加速度计有助于确定重力矢量.

  6. android – 如何提高加速度计和罗盘传感器的精度?

    我正在创建一个增强现实应用程序,当手机面向兴趣点时,它可以简单地显示文本视图.textview绘制在屏幕中的兴趣点位置.它工作正常,问题是指南针和加速度计非常“变化”,并且textview不断地左右上下移动,因为传感器的真空度.有办法解决吗?

  7. 在Android上以编程方式禁用屏幕开/关磁传感器

    一些着名的Nexus系列Android设备有一个磁性传感器,而不是android.hardware.Sensor.TYPE_MAGNETIC_FIELD专门用于使用内置小磁铁的手机壳自动打开/关闭屏幕.在我的应用程序中,我正在使用android.hardware.Sensor.TYPE_MAGNETIC_FIELD和SensorManager进行磁体检测,以检测用户是否在内部有磁铁的情况下触摸手机

  8. Android:使用NDK和轮询提高传感器采样率

    我想编写一个应用程序,从不同的传感器中读取尽可能多的传感器状态(每次).所以我必须调查使用NDK是否有优势.这是我的问题:a)从传感器读取传感器值时的瓶颈是什么?我可以使用NDK来提高费率吗?c)NDK的使用是否会对应用的功耗产生任何影响?我没有发现任何相关信息.d)我是Android新手.使用NDK而不是普通的Java是否更有能力?根据这个sample-code,使用事件队列与传感器进行交互似乎很简单,但是编译代码并从应用程序中使用它有多大的代价?

  9. 如何在Android中的Graph中绘制实时传感器值?

    我想在android应用程序中绘制传感器值图.哪个图书馆最适合这个?

  10. android – 使用方向传感器指向特定位置

    我试图实现一个箭头,使用方向传感器来指向特定的位置.GooglePlaces会在ListView中为其找到的每个地方实现此箭头.我设法得到方位角,但是给出一个位置,我不知道如何继续计算我需要的角度.此外,我需要从北方和北极的转换.有人有这样的实现的例子吗?提前致谢.解决方法我解决了如果要绘制箭头或其他东西来指向方向,请使用canvas.rotate.我们传递一个负面的参数,因为画布旋转是逆时针的.

随机推荐

  1. Swift UITextField,UITextView,UISegmentedControl,UISwitch

    下面我们通过一个demo来简单的实现下这些控件的功能.首先,我们拖将这几个控件拖到storyboard,并关联上相应的属性和动作.如图:关联上属性和动作后,看看实现的代码:

  2. swift UISlider,UIStepper

    我们用两个label来显示slider和stepper的值.再用张图片来显示改变stepper值的效果.首先,这三个控件需要全局变量声明如下然后,我们对所有的控件做个简单的布局:最后,当slider的值改变时,我们用一个label来显示值的变化,同样,用另一个label来显示stepper值的变化,并改变图片的大小:实现效果如下:

  3. preferredFontForTextStyle字体设置之更改

    即:

  4. Swift没有异常处理,遇到功能性错误怎么办?

    本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请发送邮件至dio@foxmail.com举报,一经查实,本站将立刻删除。

  5. 字典实战和UIKit初探

    ios中数组和字典的应用Applicationschedule类别子项类别名称优先级数据包contactsentertainment接触UIKit学习用Swift调用CocoaTouchimportUIKitletcolors=[]varbackView=UIView(frame:CGRectMake(0.0,0.0,320.0,CGFloat(colors.count*50)))backView

  6. swift语言IOS8开发战记21 Core Data2

    上一话中我们简单地介绍了一些coredata的基本知识,这一话我们通过编程来实现coredata的使用。还记得我们在coredata中定义的那个Model么,上面这段代码会加载这个Model。定义完方法之后,我们对coredata的准备都已经完成了。最后强调一点,coredata并不是数据库,它只是一个框架,协助我们进行数据库操作,它并不关心我们把数据存到哪里。

  7. swift语言IOS8开发战记22 Core Data3

    上一话我们定义了与coredata有关的变量和方法,做足了准备工作,这一话我们来试试能不能成功。首先打开上一话中生成的Info类,在其中引用头文件的地方添加一个@objc,不然后面会报错,我也不知道为什么。

  8. swift实战小程序1天气预报

    在有一定swift基础的情况下,让我们来做一些小程序练练手,今天来试试做一个简单地天气预报。然后在btnpressed方法中依旧增加loadWeather方法.在loadWeather方法中加上信息的显示语句:运行一下看看效果,如图:虽然显示出来了,但是我们的text是可编辑状态的,在storyboard中勾选Editable,再次运行:大功告成,而且现在每次单击按钮,就会重新请求天气情况,大家也来试试吧。

  9. 【iOS学习01】swift ? and !  的学习

    如果不初始化就会报错。

  10. swift语言IOS8开发战记23 Core Data4

    接着我们需要把我们的Rest类变成一个被coredata管理的类,点开Rest类,作如下修改:关键字@NSManaged的作用是与实体中对应的属性通信,BinaryData对应的类型是NSData,CoreData没有布尔属性,只能用0和1来区分。进行如下操作,输入类名:建立好之后因为我们之前写的代码有些地方并不适用于coredata,所以编译器会报错,现在来一一解决。

返回
顶部