ストリーミングはほとんどのブラウザと
Developerアプリで視聴できます。
-
医学研究および健康管理Appの構築、Part 1: オンボーディングのセットアップ
ResearchKitとCareKitを連携させて、紙のアンケート調査の煩わしさを解消する方法について解説します。このCode-Alongで、実際に動作するケアパイロットAppを作ってみましょう。ResearchKitを使ったオンボーディングと同意のベストプラクティスを確認し、CareKitストアとUIコンポーネントを活用してAppで参加者に同意文書への署名を求める方法を紹介します。 このセッションは、3部構成のCode-Alongシリーズの最初のセッションです。このシリーズを最大限に活かしていただくためには、ResearchKitとCareKitの両方に関してある程度の知識があることが推奨されます。関連情報につきましては、WWDC19の「ResearchKitおよびCareKitの一新」をご確認ください。
リソース
関連ビデオ
WWDC21
-
ダウンロード
♪ (医学研究および健康管理Appの構築 Part 1: オンボーディングのセットアップ) みなさん こんにちは 本日は参加いただき ありがとうございます みなさんのために 充実した コンテンツを企画しています これから あなたと一緒に 医学研究および健康管理Appを 構築する Code-Alongを 見ていきましょう ResearchKitは AppleがGitHubコミュニティと 協力して維持している オープンソースの iOSフレームワークです 参加者が身体的 または認知的な エクササイズなどの活動 を行っている間に 同意をを得て 調査を実施し センサーデータの記録を行うための UI要素を提供します CareKitも同様に 完全に オープンソースのフレームワークで 患者向けの 健康管理アプリケーションの構築を 支援するために 設計されています 薬の服用や 医師への電話など 患者さんに 実行してもらいたい タスクのスケジューリングに 優れています 健康関連データのための安全な パーシステンス層を提供し チャート作成のための ユーティリティも備えています さて これまでの WWDCセッションでは この2つの兄弟フレームワークを 別々のものとして説明してきました しかし今年は これらを組み合わせることで 患者さんに さらに良い体験を していただくための方法を ご紹介します あ…ごめんなさい どうしよう… マナーモードにしておくべきだった 切りましょうか? 「いえ 電話に出てください」
やあ Jamie どうしたの? やあ Erik 今はWWDCの準備で 忙しいと思うんだけど 私たちの理学療法研究Appに 資金が集まったことを伝たいと思って! この最先端の研究は多くの人を 救うことになるだろうね! ところで すぐにでもAppの ファーストバージョンを 出せると思う? ちょっと Jamie それはすごいニュースだよ 僕は... とてもワクワクしているよ つまり 私たちは今まさに ダブダブのCode-Alongの 真っ只中にいます ああ もうコーディングしているんですね 完璧ですね このAppの名前は 「Recover」という名前になります これは 参加者が手術後に 膝を強化するための 理学療法Appで 大変革をもたらすものに なると思うよ たくさんの素晴らしい アイデアがあるのですが まず 参加者がAppを 使い始める前に研究への参加に 同意してもらうことが重要です 法律的なことはすべて 説明しなければなりませんが 本当は威圧感のない方法で やりたいんです そうですよね また 参加者から署名をもらい データの共有にも 同意してもらう必要があります ちょっと待って Erik 臨床チームからの メッセージを受け取っています
おお すごい 最初の参加者は 月曜日には術後の状態から 解放されます Erik 今からオンボーディングを 始めてもらえますか? 私はチームのほかのメンバーに 追いつかなければなりませんが もう少ししたら また連絡します これはすごいことに なりそうですね!
わかりました あ… よーし じゃあ! これはもう 私たちの Code-Alongになるのでしょうね では Jamieが会議を終える 前にオンボーディングを 終えられるかどうか見てみましょう では 今回のセッションでは オンボーディングと同意に 焦点を当ててみましょう 参加者に説明することは どのようなデータを収集するのか 誰がアクセスするのか 何に使用するのか どのくらいの期間保持するのか などであり そしてそのすべてを 理解しやすくすることが 良い研究にとって 最も重要なことです 今回は Appの非常に重要な 部分を理解できるように ResearchKitの新しい ベストプラクティスを ご紹介します そして おまけに ここでは オンボーディングと同意のフローを CareKitベースのAppに 組み込むための 賢明な方法を紹介します 具体的には 標準的ではありますが ケアプランの内容が 明らかになる前に参加者が CareKit Appのオンボーディングを 完了しなければならないような 形で設定していきます この同意とオンボーディングフローの 一環として 参加者に 何をしてもらうのかを説明する 使用説明ステップを 作成する予定です 私たちは 実際の 同意部分に入る前に このようにオリエンテーション を行うことで 参加者の体験を向上させることが できるとわかりました 署名を集める方法を 紹介するとともに ResearchKitを使って HealthKit 通知 デバイスの動きなどの認証を オンボーディングの一環として すべて前もって 求める方法を紹介します 一緒にやってみたい方は セッションのリソースに スタータープロジェクトがあります Xcodeを開いて スタートしましょう ここからがいよいよ本番です 今日は4つのファイルに 触れてみます まずはAppDelegateです ここでCareKitのストアとの やりとりをすることになります Surveys.swiftでは ResearchKitを使って いくらかの調査を作成します 次に CareFeedViewControllerと InsightsViewControllerで AppのUIを構築していきます さて スターターAppを 起動してみると 実際今はあまり何もないことが わかります OCKDailyPageViewController だけで 何も表示されません 日をまたいで 移動することができますが まだ何もありません それを埋めていくのが 私たちの仕事です また このコーナーの下には インサイトタブがあります このタブについては パート3でご紹介します さて ここでやりたいことは 同意書を参加者のフィードに 表示させることです その同意タスクによって Appの 他部分へのアクセスが制御されます このタスクが完了するまで 他のタスクは表示されず 完了すると 他のすべてのタスクが表示されます
AppDelegate.swiftに 移動して 最初のステップは オンボーディング用のCareKitタスクを 保持することです さて タスクを作成する際には 参加者のフィードに タスクが表示される頻度を 指定するスケジュールを 明示する必要があります オンボーディングでは 同意が終わるまで 毎日行うことを促されるように デイリースケジュールを使用します 次に タスクを作成します IDは 唯一なものであれば 何でも構いません ランダムな識別子もいいのですが 今回の場合は 別のファイルで 定義した 定数があります また 先ほど作成した スケジュール に 渡す必要があります また いくつかの指示を明記し オンボーディングがアドヒアランスに影響を 与えないようにすることも示します これが意味するところは 基本的にオンボーディングが ほとんどのCareKit Appの 上部に表示される 完了リングには加算されない ということです そして最後に そのタスクをストアに保持します 先に進み メッセージをプリントして 成功したかどうかのメッセージを 私たちに知らせます さて オンボーディングタスクを ストアに入れて 準備し 参加者のフィードに 表示させる準備が整いました CareViewController.swift を介して CareKitにどのように 表示させたいかを伝えます OCKDailyPageViewControllerを ここではサブクラス化していますが これは先ほど見た カレンダーとフィードのことです dateメソッドに対する listViewControllerの準備を 最優先しています このメソッドは ユーザーがスワイプして 新しい日付に移動するたびに 呼び出され その日付を調べ その日に何を表示したいかを決め そして 適切なコンテンツを listViewController に 追加することが 私たちの仕事です さて まず最初にしたいことは 参加者がオンボーディングを終えたかどうかを チェックすることです この質問への答えに応じて 異なるコンテンツを 表示するからです もう少しドロップダウンして そのための方法を 書き出してみましょう checkIfOnboardingIsComplete メソッドの中で OCKOutomeQueryを 作成します クエリを作成し オンボーディングタスクに関連する すべての結果を 照会します クエリが戻ってきたら 結果があったかどうかを確認します 何もなければ それはオンボーディングが まだ終わっていないということです 何かあれば オンボーディングが完了している ことを意味します ここで 新しい方法を使って オンボーディングが 完了しているかどうかに応じて 同意タスクだけを表示するか 他のすべてのタスクを表示します いいですね ここまではとてもいいですね 現在では 参加者がAppの他の部分に 参加する前に オンボーディングを 要求する仕組みができています 次はそのオンボーディングフロー を設定することです ここでは ResearchKitの 調査を提示する CareKitタスクカード を作成したいと思います しかし その前に 実際にResearchKitの アンケートを作成して 表示するものを用意する 必要があります Surveys.swiftにアクセスして その処理を行いましょう 開始する関数を 無効にしてみましょう 私たちのオンボーディング調査は 5つのステップから構成されています ようこそステップ 使用説明ステップ 署名ステップ 同意ステップ そして最後に 完了ステップ 1つ目はようこそステップで これはORKInstructionStepになります このような使用説明ステップは 今日たくさん出てきます ResearchKitのステップを 作成する際には 必ず 一意な識別子を与える 必要があります ランダムな識別子など 好きなパターンを 使うことができます 私の場合 このキーパスに インスパイアされた アプローチがとても 効果的だと感じています また タイトルや詳細テキスト ヘッダ画像も指定します はい それでは 次はステップ2のインフォームド コンセントのステップで これは使用説明の ステップでもあります しかし今回は ボディアイテムを追加します ボディアイテムは 基本的に箇条書きですが 箇条書きの代わりに 画像を使用することもできます 今回はSF Symbolですが このボディアイテムは 参加者にいくらか健康に関する データを共有することを求めます 2つ目のボディアイテムを作成して タスクを完了するように 伝えましょう そして3つ目のボディアイテムは 署名を求められることを 伝えるためのものです 自分のデータが秘密で 安全に保たれることを 確認するために もう一つ追加しましょう 最後にこれらのボディアイテムを 使用説明ステップに挿入します そしてそれは使用説明を 取り上げています 次は署名を集めることですが 幸いなことに ResearchKitはこの部分を とても簡単にしてくれます 署名はORKWebViewStepで 収集することができます showSignatureAfterContent プロパティをtrueに設定すると ステップの下部に署名欄を 表示するように ResearchKitに促します 実際の同意文書をHTML で提供することができ 署名欄のすぐ上に表示されます これでサインは かなり早くて簡単になりました 最後の1つは 同意を要求することです この第4ステップのために チームメイトのParieceが 昨年のWWDCで紹介した HealthKitPermissionTypeを使って 同意を収集します それにはHealthKitのタイプを 2セット指定する必要があります 書き込みの許可が必要なものと 読み込みの許可が 必要なものがあります 今年 私たちは 2つの新しい 同意タイプを導入しました 1つ目は ORKNotificationPermissionTypeで アラートの表示 Appのバッジ サウンドの再生などの 許可を申請することができます またORKMotionActivity PermissionTypeを導入し これは デバイスの モーションデータへの アクセスを要求するためのものです これらの3つを requestPermissionStepに渡して 第4ステップをまとめます 最後の5つ目のステップは 参加者がJamieの研究に 参加してくれたことに 感謝するための完了ステップです これらのステップはすべて連鎖して ORKOrderedTaskの中で 行われます ResearchKitに 提示してもらいたい順に ステップを渡し このメソッドからタスクを返します いいですね さて オンボーディングと 同意のフロー全体を定義したところで CareFeedViewControllerに戻って CareKitベースのAppから 表示する方法を再確認しましょう 今回紹介するのは この目的のために作られた 全く新しいクラス OCKSurveyTaskViewControllerです 他のCareKitビュー コントローラと同様に 表示させたいタスクのIDを EventQueryとStoreManager とともに渡します さらに 先ほど作成した調査と ResearchKitの結果を CareKitの結果値の配列に 変換するクロージャも必要です このクロージャーについては パート2で詳しくご紹介します ここでは参加者がオンボーディングを 完了した日付を 記録すればよいとします また このタスクカードを フィードに追加したいと思います さて 実は もう1つのステップがあります それは 参加者が オンボーディングを終えたら フィードが再読み込みされる ようにすることです これを実現する1つの方法として 自分自身を 調査タスクビューコントローラの デリゲートとして設定することです そして ここから実装できるのは デリゲートメソッド 調査タスクビューコントローラ 結果を伴ったdidFinish taskです このメソッドのボディで オンボーディングが正常に完了したことを 確認できます 基本的なことですが 参加者が途中で キャンセルしなかったこと つまり最後まで行って無事に 完了したと言えるのです その場合はreload()を呼び出して フィードを更新します よし これでオンボーディングカードの 設定は完了です 参加者がオンボーディングを完了すると OCKOutcomeを保存してから フィードを再読み込みします これはいい感じですね 私は実際 それがすべてだと思います! Appを実行して すべての動作を確認してみましょう
Appの使用を開始する前に 同意を求められることがわかります そして それこそが 私たちの望むことなのです! ここで「開始」ボタンを タップすると 先ほど作成した ようこそステップが表示されます 次のステップは 私たちが定義した ボディアイテムを使った 使用説明ステップです 私たちが選んだSF Symbolは 本当に生き生きとしています 次は署名ステップです ここではスクロールダウンして 署名し そして 認証ステップに進みます まず 認証するのは HealthKitです ただ それを許可して くれればいいのです 次は 通知 そしてデバイスモーションです 最後のページは 完了したことを知らせ 参加してくれたことに 感謝する完了ステップです そして今 私たちは Careフィードに戻ってきました なお 同意を完了するための プロンプトはもう終わっているので 表示されません その代わり ここには Appの本当のコンテンツが すべて表示されることになります それは次回のセッションで ご紹介します
ヘイ Siri Jamieにメッセージを送って オンボーディングと同意の部分が 終わったことを伝えてくれる?
私たちのフレームワークに 関する情報は researchandcare.orgで ご覧いただけます ソースコードを読みたい あるいは貢献したい! という方は どちらのフレームワークも GitHubで公開されています 次回もぜひご参加ください これからJamieに確認してから パート2をお届けします それでは またお会いしましょう ♪
-
-
特定のトピックをお探しの場合は、上にトピックを入力すると、関連するトピックにすばやく移動できます。
クエリの送信中にエラーが発生しました。インターネット接続を確認して、もう一度お試しください。