大多数浏览器和
Developer App 均支持流媒体播放。
-
构建研究和护理 app,第 3 部分:流程可视化
敬请了解如何让 ResearchKit 和 CareKit 共同协作,消除纸质问卷的单调乏味。和我们一起了解“编程临摹课程”的最后一个部分,对我们的护理试用 app 进行最后的润色:探索如何使用先进的 CareKit API 定制任务卡的外观和行为,找出如何在 CareKit 图表中绘制 ResearchKit 调查的答案,并了解如何使用 ResearchKit 呈现引人入胜的教育内容。这是由三个部分构成的“编程临摹课程”系列最后一部分的内容。为了能充分了解本节内容,我们建议首先观看“构建研究和护理 app”的第 1 部分和第 2 部分。有关这些框架的更多背景信息,请观看 WWDC19 的“ResearchKit 和 CareKit 的重新构思”。
资源
相关视频
WWDC21
-
下载
♪播放重低音音乐♪ ♪ 欢迎回到“研究与照护”app 边看边写的 第三阶段 也是最后阶段! 如果你想要跟着操作 可以在视频教程资源 找到这个app的源代码 现在登入并开始吧 在上一节教程中 我们在app里添加了几个任务 从那时候开始 我就一直收到来自杰米的各项通知 我觉得应该有些状况 来看看吧 杰米会在十分钟内抵达诊所 杰米共享了一个“激励播放列表” 哇!如你所见 充满干劲的杰米现在正在路上 要去见他的医生 看起来杰米要我们改动一些地方 并添加两个新功能 首先是增强 我们在第二节实现的调查 杰米说他收到一些测试人员的反馈 他告诉我们他收到的反馈 是测试人员希望能在填答后 知道他们交出的答案 现在 卡片显示 调查已经完成 但是如果你在几天内及时往回滚动 无法得知当天自己交出的答案 他们也希望我们可以限制 对当前日期的编辑 你不应该可以删除调查的答案 或重做过去的全关节运动测试 同样地 你可以滚动到未来 在还没发生的日期预先回答调查 也同样不合理 所以我们会先处理那些反馈 并稍微增强调查 我们还有这个Insights分页 看起来依然有点孤单 杰米请我们在那里显示一组图表 其中一个图可以捕捉 睡眠与疼痛之间的关系 另一个则显示全关节运动 随时间的改进 最后 杰米告诉我医生要求 我们融入一些教育内容 协助参与者认识半月板撕裂伤 ResearchKit应该能帮助我们 我们要先从增强调查开始 先来处理显示出患者填答的答案 我们会开始进行 并在卡片上 以文本显示填答的答案
现在 在CareKit中 把视图同步者 传送进它的初始化程序 稍微修改任务卡的外观就搞定了 来看一下 我们要怎么创建自定义的视图同步者 我们会子类化已有的 OCKSurveyTaskViewSynchronizer 这个类别有两个方法我们可以操控 makeView和updateView 每次存储的数据改动时 都会调用updateView 我们就能在这里对视图套用自定义 我们最初总是调用超类的实现 并把我们的增强套用上去 我们会确认看有没有 已经有已完成结果的事件 有的话 代表该调查已经结束 我们会参照我们在第二段 设定的种类性质 攫取疼痛答案和睡眠答案 我有提过设定种类性质 之后对我们有帮助 这就是我之前影射的 其中一个应用程序 既然我们手边就有答案 我们用字符串内插把答案 插入我们卡片的说明标签 那就能解决显示答案的需求 杰米也要求我们停用过去任务的编辑 有个方法可以办到 先把我们自己设定为 调查任务卡的代理人 然后填入这个代理方法 针对shouldAllowDeleting OutcomeForEvent的任务 viewController 我们的工作是回传布林 告诉CareKit 是否应允许删除 特定事件的结果
我们要找到事件发生的日期 如果日期早于今天 那我们会说不能删除 如果是在今天或今天之后 我们会允许删除 就这样 我们预防了删除过去数据 杰米要求的第三件事 是我们也预防参与者 在未来的日期完成调查 要这么做 我们要移动到 同个文件比较上方的地方 就在我们创建任务视图控制器的前方 我们会使用一些“日历”工具 确认我们输入内容的日子 是否在未来 如果是未来的日期 我们会停用与任务卡的互动 我们会调降不透明度 以便从视觉上显示其已停用 好的 很棒! 现在我们应该 也无法完成未来的任务了 来看看目前状况如何
你首先会注意到 调查时填答的答案 现在会显示在调查任务卡中 在当前的日期 我们依然有删除或重做调查的选项 但是如果我们往回滑到过去 我们就无法重做 如果往前跳到未来 我们可以预览即将发生的事件 但是还无法完成任何调查 我们的app现在真的拼凑起来了! 我们需要做的最后两件事 是图表和教育内容 这两项都在Insights分页 我们要先从双轴的直方图开始 图中会显示疼痛量级 旁边并列着睡眠时数 我们需要创建两个 OCKDataSeriesConfiguration 对象 第一个是用于疼痛轴 ID会告诉CareKit 要在图表上绘制哪个任务的数据 我们也能传递说明标题 颜色、标志大小 这能决定长条的宽度 以及事件聚合器 事件聚合器会负责 挑出发生在指定日期的所有事件 确认那一天应使用什么Y值 针对打卡任务 我们知道每天只会有一个事件 所以我们可以直接选第一个事件 得到疼痛问题的答案 这就是疼痛轴的配置 睡眠的部分也需要一个这样的配置 睡眠轴几乎一样 我们会画出同一个打卡任务的数据 差异在于我们会显示睡眠答案 而不是疼痛答案 两个数据都准备好了之后 我们可以建构一个图表视图控制器 我们选择一个条形图 日期设为今天 当然 我们也需要把我们的双轴和 一个参照标准传给管理器 如此一来 当存储内容改动时 可以保持图表是最新状态 很好 这就是我们的第一个图表 再做一个吧! 这次 要做散点图 用来呈现全关节运动 我们需要创建数据轴配置 跟我们之前做的一样 只是这次是圆形 我们只需要一个 唯一的差异是这次我们会绘制 全关节运动任务的数据 而非打卡任务 我们会使用活动范围的答案 作为Y轴 接着 我们会创建视图控制器 这次是散点绘图 我们只有一个数据轴 就这样 两种图表都设定好了 来看看结果如何! 跳到Insights分页 我们可以看到现在两个图表都有了 看起来真不错! 如果往回跳 添加或删除一些结果 这里 我们把两者 在星期二的结果都删除 然后回到Insights分页 应该会看到我们的图表自动更新 的确更新了! 星期二再也没有出现任何数据 很好!图表看起来很棒 杰米也要求我们提供参与者 检视膝盖与半月板3D模型的选项 以及一些他从我们在临床的伙伴 得到的注释文本 ResearchKit可以帮我们的忙 我想稍作暂停 提醒各位这个部分 我们不会把ResearchKit调查跟 CareKit的排程绑在一起 这个内容 并没有特定的时间 是我们希望参与者注意的 所以不需要在排程上标记 同样地 我们也没有任何结果 可以持续输入CareKit的存储 所以我们不用创建CareKit任务 或使用CareKit的 调查任务视图控制器 也就是说 我们可以使用 我的组员盖维去年在WWDC介绍的 FeaturedContent视图 我们需要把自己设定成代理人 当参与者轻点特定内容卡 我们就会收到通知 他们轻点时 我们会创建一个kneeModelTask 用ORKTaskViewController 包装 并呈现给参与者 他们查看完模型后 我们会在这里收到回呼 可以用此当做机会 取消ResearchKit视图控制器 把参与者带回Insights分页 好的 非常好! 可是这里少了个 这项膝盖任务的定义 去Surveys.swift填入吧 只要两个步骤就好 第一个是说明步骤 我希望到目前为止 这些对你来说至少有点熟悉 因为我们今天已经用了好几次了 第二个步骤是3D模型步骤 我们创建3D模型步骤时 也需要传递一个modelManager 所以就在它的上方 我们创建 一个USDZ模型管理器以便传递 一开始先显示一个玩具机械人 确保所有指令都有效 最后就把两个步骤 组装成一个有排序的任务并回传 现在当我们运行app 会在Insights分页看到特定内容卡 轻点之后 会带出说明步骤 接着是我们的玩具机械人模型 可以旋转、拉近镜头 与之互动 非常厉害! 如果你想了解更多 3D模型管理器的原理 或如何实现自己的版本 可以去看去年WWDC帕里斯的教程 要完成我们的app 我要先把玩具机械人 换成BioDigital的模型管理器 在项目的“自述文件”中 我们会包含一些注记 以防你想了解细节 有了这个版本的模型管理器 我们可以提供 来自临床医生的教育文本 这里可以看到一些由我们临床伙伴 提供的内容 我们也能特别强调半月板 让参与者参照 协助他们更了解自己的伤害 以及复原的过程 我们的app真的要成形了! 其实就这样 这些就是全部了 所有项目我们都打勾了 就在这个紧要关头! 看来杰米又打来了 嘿 杰米 真会算时间! 我们才刚处理完你要求的每件事 喔 是喔 我现在正在看 艾瑞克 我看看喔… 不错 这看起来真的好很多 其他组员一定很兴奋 这会帮我们带来非常多研究机会! 很快问个问题 在我开始下个会议之前 如果小组有问题想问你 我应该怎么回答他们? 嘿 真是个好问题! ResearchKit 和CareKit都是开放源码 而我们团队在GitHub很活跃 如果他们对框架有任何问题 想要请求新功能 或如果想参与 跟他们说在我们的GitHub资源库 开一个新问题 好 没问题 好方法 我会告诉他们这个信息 对了 杰米 你应该考虑多跟我们聊你的研究! 如果你去researchandcare.org 可以在那里找到一个链接 能用来告诉Apple 你的研究帮助了谁 一切细节 我们很想知道 大家是怎么使用我们的框架! 我们也有“研究者支持计划” 提供Apple Watch的补助金 给提出创新研究计划的组织 如果他们想申请 也能在我们的网站找到细节 真的吗?太棒了! 我想他们一定想好好利用 好了 艾瑞克 我得继续下个会议 我对第二个app有超多疯狂的想法 之后再跟你说 你觉得设计一个 Apple Watch的app要多久时间? 好喔 我们之后再边聊边讨论好了 过几天碰个面 我想有很多事够我忙一阵子了! 好啊 我听说你今年要帮WWDC 做一场边看边写? 祝你好运啰! 之后再聊! 如果你想知道更多信息 可以拜访researchandcare.org GitHub上有源代码 我们今年还有另外两个教程 可作为前面这段视频的准备 好的 所有内容都介绍完了 谢谢你跟我们一起边看边写! 我们看到同源的框架 ResearchKit和CareKit 如何串联使用 以快速在app上循环访问 我们也介绍了一些新功能 和我们最新的最佳实践 希望你在这段过程中 能获得一些诀窍和技巧 我们团队所有成员 祝福你有场愉快的WWDC! ♪
-
-
正在查找特定内容?在上方输入一个主题,就能直接跳转到相应的精彩内容。
提交你查询的内容时出现错误。请检查互联网连接,然后再试一次。