ResearchKitを使ったアプリ案件をやってみて思ったこと


案件の概要

某医大と共同でAppleさんの協力のもとResearchKitを使った特定の病気に関する調査を行うアプリの開発を担当しました。

ResearchKitって

ResearchKitは医療関係の研究者が研究のために、必要なデータを集めるためのアプリを作ることができるAppleが提供しているオープンソースのフレームワークです。オープンソースなので、誰でも利用できますが、基本的には医者や研究者が開発者と組んでアプリを作ることになると思います。今回の案件もそのような形で進んでいきました。

(参考記事:Appleが先日発表した「ResearchKit」が非常におもしろい理由

ResearchKitを使ったアプリを開発してみて思ったこと

ResearchKitはあくまでテンプレート

ResearchKitはアンケートや加速度センサーなどを用いた計測などを行うためのUIやそのデータの統計をグラフで表示する機能を提供してくれます。つまりResearchKitは医療に関して直接的に何かを提供してくれるわけではなく、医療関係の研究に必要なデータを何らかの形でユーザまたは端末内のデータから入力させるためのUIなどを提供してくれるテンプレートのようなものなのです。

情報を入力させるためのUIおよび、入力されたデータを取得するなどのコードを簡単に実装できる

ResearchKitを使えば文字列や数値の入力や項目を選択させるアンケートのような画面を作ること、また、それら各入力画面を一まとめにして順番に表示させていくなどのUIを簡単に作成できます。
また、各処理に対してコールバックがあるため、細かく制御することが可能です。また入力された各情報をグラフ表示するためのフレームワークが備わっています。

少し凝ったUIやデザインをしたり、トリッキーな実装だと途端に扱いづらくなる

確かに単純なアンケートアプリのようなものならResearchKitを使えば、少ない労力でアプリが作れそうですが、少しUIやデザインを変えたくても、簡単に変えられない場合が多いです。全体のTintカラーを変える程度なら問題ないですが、単純に何かUI部品を追加しようとするなら、基のクラスを継承して自力で作るか、基のクラスを書き換える必要が出てきます。

また、少し変則的な仕様にしようとすると途端に実装の難易度があがります。例えば、一つ前の質問に答えに応じて、次の質問をスキップさせたいような場合、そもそも、ResearchKitでは、ひとまとまりになった複数の質問(画面)を予め生成してセットすることでUIが生成されていく仕様になっているため、途中である条件のときだけ、間の質問を無くすなどのようなことができません。ただ、無理やり次の質問に飛ばすことはできるため、そのように対応することはできますが、それでも前の質問に戻って再度答え直すこともできる仕様になっており、そのままだと、無理やり飛ばした質問を戻ることで表示できてしまうのです。

逆に言えば、ResearchKitを使うなら提供しているUIデザイン、機能でやってくれよということなのだと思います。

まとめ

実際、この案件のアプリがResearchKitがなければ作れないわけではありません。ですが、Appleさんからすると、自分たちが提供しているResearchKitを使ってこのアプリは作られていて、そのアプリが医療の発展に役立つということをアピールしたわけです。ただ、ResarchKitがらみの案件は、基本の医療のために役立つ可能があるものですから、とてもよいことだと思いますので、積極的に関わっていきたい分野だと個人的には思っております。