# どのようなサービスか
訪日外国人の方が、英語、中国語をはじめとしたさまざまな言語での問診が可能な医師にオンラインでリアルタイム医療相談を受けられるサービスです。
医療相談はビデオチャット・テキストチャットの形式で受けることができます。
また、本サービスでは訪日外国人を受け入れられることを表明した医療機関をマップ上に表示する機能もあります。
本サービスは患者向け、医師向けに分けて、ターゲットごとに以下の形で提供されます。
患者向け
- モバイルアプリ(iOS, Android)(React Native)
医師向け
- デスクトップアプリ(Windows, macOS)(Electron)
- モバイルアプリ(iOS, Android)(React Native)
# 行ったこと
基本的に、React Native を用いた患者向けモバイルアプリの開発を担当しました。
また、Web API 設計(REST)、データベースのスキーマ定義、バックエンド改修も行いました。
# 技術選定について
## React Native
本サービスはモバイルアプリとして iOS, Android × 患者向け、医師向けという4つの提供方法があるのですが、当時の人員状況では、ネイティブアプリエンジニアが各 OS に対して患者向け、医師向けの知識を持って開発することが厳しいと判断されました。
そこで患者向け、医師向けの知識を持って iOS, Android の両プラットフォームのアプリを開発することができる React Native の採用を提案しました。
当時の React Native のバージョンは 0.56 ほどで安定していないことが予想されたため、弊社のネイティブアプリエンジニアが有事の際にバックアップできることを確認したうえで React Native を採用することになりました。
React Native についての知見は以下を書きました。
[React Native をプロダクションで採用した知見を共有します \| Snow Robin's Tech](https://www.wantedly.com/companies/snowrobin/post_articles/136002)
## MobX
サービス最初期は状態管理として Redux を採用していたのですが、当時 TypeScript と相性が悪い(型記述量が増える)ことに不満を持っていました。
そんな中、見つけた MobX という状態管理ライブラリが TypeScript と相性が良く、素朴に使う分には使いやすいことが分かりました。
担当するアプリのコードベースはすべて自分が書いたものであったので、2日ほどで Redux から置き換えることができました。
以降、サービスが自分の手を離れるまで MobX を使っていたのですが、書きやすく、見通しのよいコードになったかと思います。当時、Redux から置き換えてよかったと実感しました。
※ 2019年11月現在では Redux と TypeScript の相性が良くなっているため、この内容は当てはまらないかもしれません
このように比較的新しい技術に注目し、スピード感を持って開発体験を向上させる動きを行いたいと思っております。