Healthtech Meetup vol.1に参加したらネイティブアプリの未来がちょっと見えた話
Healthtech Meetup vol.1に参加してきました。
ヘルスケア系のサービスに取り組むスタートアップのエンジニアが集まるイベントで、システム開発の知見だけではなく幅広いテーマでの発表を聞いてくる事ができました。
- ハッシュタグ:
#healthtechm
Main Session
「継続を支える」ライフログの利用と技術 in FiNCアプリ」
株式会社FiNC 森久太郎さん @qsona
- 行動変容
- 行動変容ステージモデル(参考: https://www.e-healthnet.mhlw.go.jp/information/exercise/s-07-001.html)
- 人が健康のためにどれくらい行動しているか
- ステージによってアプローチの仕方が変わる
- 関心の高い人向けのサービスは多いが、そうでない人々に向けてのものは少ない
- 行動変容ステージモデル(参考: https://www.e-healthnet.mhlw.go.jp/information/exercise/s-07-001.html)
- 継続の原則
- ユーザーの健康活動を継続させるために、意識すべき項目を定めている(参考: FiNCエンジニアインタビュー|「ユーザーの”継続”を何より重要視する」CTOが考える理想のサービスとは-Mayonez)
- ライフログ: 様々なヘルスケア活動の出発点
- Personalizationのために、十分にデータを入力してもらうことがまず重要
- OnBording(新規ユーザーがアプリを使い始めるまでの教育)の工夫を行う
入力の手間を軽減する
- 歩数を端末の情報から取得する
- 睡眠時間を予測する
技術
行動変容ステージモデルが特に勉強になりました。使うことで便利になる、といった性質ではないアプリにおいて、どうやってユーザーに寄り添っていくかって難しいです。また、WIPとのことだったので省いたものもありますが、機械学習を使った施策も面白かったです。
AI×創薬の最近の事情
株式会社ディー・エヌ・エー 望月正弘さん
唯一のアカデミックな話でした。内容もさることながら、機械学習に明るくない僕でも引き込まれるような分かりやすい構成でした。バズワードとなったDeepLearningを使ったから結果が出るわけではない、耳が痛い話です。。。
新規サービスでGo, GAEを使ってみた話とその振り返り
DeSCヘルスケア株式会社 鶴田拓也さん@o_tyazuke
- 採用理由
- サクッと作ってサクッと潰したい
- 社内の知見を増やす
- GAEのStandardEnvironmentでRails使えない
- 開発の流れ
- Github
- CircleCI
- QAブランチごとにGAEのバージョンを作ってデプロイできるように
- GAE
- アナリティクス
- GAE
- Datastore
- BigQuery
- Data Studio
- 失敗したこと
みんな大好きGo言語の話。GAEの導入に際した生の知見です。業務だと既にAWSの環境が整っているため導入は難しいのですが、聞けば聞くほど惹かれていく。。。
また、構成の話も面白かったです。アナリティクスの話は、稼働しているサービスだからこそ得られる経験ですね。
某サービスのリニューアルでECSを導入したよもやま話
株式会社エス・エム・エス 光宗朋宏さん(@t_mitz)https://twitter.com/t_mitz
- リファクタリングに合わせて既存サービスにECSを導入
- 理由
- 本番環境でもローカルと同じDockerで検証したい
- 自前でコンテナのオーケストレーションを整備するのはコストが高い
- オンプレからパブリッククラウドへの以降のタイミングでアーキテクチャ見直し
- 他サービスとの比較
- 構成
打って変わってAWSの話です。普段CircleCIはAndroidのバイナリを生成してくれるサービスという認識だったので、サーバーサイドの話の中で登場するとちょっと新鮮でした。他サービスとの比較検討も、ヘルスケアといったテーマで括る勉強会ならではのものですね。
LT
m3.comを支える巨神の話
エムスリー株式会社 池田貴世志さん(@progrhyme)https://twitter.com/progrhyme
- 歴史あるサービスを改善し続けている話
- 問題点
- 複雑なサービス間通信
- ビュー要素を再利用できず、各サイトで再実装している
- API Aggregatorを活用できていない
- 対策
- Atlasの導入
- フロントエンドのHTML生成を担当
- サービス間連携の標準化を推進
- DBを直参照していたものをAPI化
- Atlasの導入
大量のユーザーを抱えたサービスの設計と戦い続ける話です。m3.comは名前は知っていたのですが、お恥ずかしながらこんな大規模なサービスだとは知りませんでした……。
抽象度の高い設計思想の話ではなく、1システムをこうしたおかげで改善されたという具体的な話は、なかなか調べただけじゃ引っかからないので来て良かったです。
過去の負債と戦う(テクニック編)
株式会社エス・エム・エス 岡田数馬さん(@okazu_dm)https://twitter.com/okazu_dm
- 改善すべき点(負債)の改善には普段の備えが重要
- 負債は普段はぼんやりしているもの
- 特定する必要がある
- 改善活動を支えるツール
- New Relic
- アプリケーションをリアルタイムで監視してくれるサービス
- 重いEndPointや大量のQueryを探し出してくれる
- クエリ発行数を60%に
- Cloud Forecast
- JVMの負荷も見られる
- キャパシティプランニング、インフラコストを1-2割減
- New Relic
まさに「推測するな、計測せよ」に則った話です。ネイティブのアプリだと、端末の内部処理をここまで細かく特定している話ってあんまり聞かないような……?
また、ツール群を使って見つけたボトルネックの解消にいたるまでのフローも聞いてみたいです。
iOSでのバックグラウンド歩数同期
株式会社DeNAライフサイエンス 馬場南実さん
- やりたいこと
- バックグラウンドで歩数を計測したい
- バックグラウンド処理
- background fetch
- サーバーからのpush通知
- background fetchの補助
- 通知を受信したタイミングでバックグラウンド処理
- ユーザーへの表示はされない サイレントプッシュ
ネイティブアプリの話ということもあってか、1番実感しながら聞けたセッションでした。iOSつらいという話は聞いてはいたのですが、まさかここまでAPIが塞がれているとは。。。無論敵わない点はありますが、Androidの豊富なAPIを当たり前に思ってはいけないですね。
また、バックグラウンド処理をめぐる血の滲むような努力は涙無しには聞けません。無音で音楽流しっぱなしはだいぶ賭けに出たやり方ですね……。
メディカルノート開発/インフラのあゆみ
株式会社メディカルノート 河本穣さん(@k12u)https://twitter.com/k12u
- 気をつけているところ
- なるべくマネージドサービス
- IAAC(infra as code)
- SSM parameter store
- packer + ansible
- Terraform workspace
- 進化の軌跡
- Infrastructure as Code
- AMIプロビジョニング
- packer/ansible/CI
- アプリケーションや環境に依存しないもの
- rootで動かすもの
- プロジェクト環境構築
- プロジェクト環境のセットアップ
- ネットワーク
- サーバー構成
- インスタンス起動時/デプロイ時
- ライブラリインストール
- 依存性解決
- AMIプロビジョニング
- チャレンジしやすいプロジェクトでは積極的に
- 一方、駄目なものは駄目と言えることが大事
- チーム
- 設計レビュー
- 実装後レビュー
- 毎週のKPT確認
- 運用と開発のチームが 半歩はみ出す
- 非効率性は境界部分に発生しがち
- おまけ
- サービス名を絵文字で表現できるようにすると楽
チーム運営の話が特に勉強になりました。半歩はみ出そうとすること、そして半歩はみ出されることの両方を良しとする文化形成は壁の多そうな取り組みです。
また、サービス名を絵文字で表現する、というのも当日Twitterで話題になりました。名前はかっこいいけどスペルに気を使わなきゃいけなかったり、もしくは略称ばかりでこれなんだっけシステムが続出したりするような事案が発生しがちなので、ビジュアルで認知できるのは強みですね。
まとめ
先日病院のお世話になったこともあり、個人的に非常に関心の高い分野のミートアップでした。健康に取り組む人々をどう支援していくか、という戦略的な面から具体的なシステムの面まで、よくここまで散らばったなと思うくらい幅広いテーマの発表でした。
また、個人的にはネイティブアプリ開発のモチベーションが上がった会でもありました。普段開発しているアプリは、webブラウザよりも優れた体験を与えることを目的にしたものが多かったです。PWAなどを代表とするWeb技術群も流行ってきて、ネイティブアプリって今後どうなってしまうんだろう、という不安も抱えていました。一方、ライフログという観点で見ると、そこにネイティブアプリの優位性があるのかなと感じました。AndroidにはFitAPIもあるし、さらにFitbitなどAPIを提供してくれている外部デバイスと組み合わせることもできます。
ちょっと感度を上げながら新しいサービスを眺めていってみたいです。