リクルートがB2Bのスマホアプリ開発でReact Nativeを採用した理由:Webフロントエンドエンジニアだけでスマホアプリ開発(1)
リクルートテクノロジーズが開発している、B2Bのスマホアプリ『Airシフト メッセージ用アプリ』。Webフロントエンドエンジニアだけで行っている開発の裏側を明かす連載。初回は、React Nativeを採用した背景などについて。
こんにちは、リクルートテクノロジーズで『Airシフト』のフロントエンドの開発を担当している辻です。これから、連載で、『Airシフト メッセージ用アプリ』を開発した背景、さまざまな側面で工夫した点などを紹介していく予定です。楽しみにしていただけると幸いです。
『Airシフト』とは
『Airシフト』は、シフト管理サービスです。シフト表の作成はもちろん、スタッフとのやりとりや細かな調整業務をラクにするための機能があります。直感的に操作できることを目指したシンプルな画面で、シフト表を作成できます。シフト表と一体となったチャット機能を使ってスタッフとのやりとりができるため、シフト表を作成しながら、急なシフト調整や連絡を取り合うことも可能です。
最初に開発したWeb版の技術スタックとしては、React/Reduxをはじめ、チャット機能にWebSocketやSSR(Server Side Rendering)を、ユーザー認証やファイルダウンロードにBFF(Backends For Frontends)アーキテクチャを採用しています。
『Airシフト』Web版でReactを採用した背景
『Airシフト』のメイン機能はシフト管理であるため、要件定義の段階当初から、UI(ユーザーインタフェース)が複雑になることが想定されました。
実情として、複雑な表計算ソフトでシフトを管理している店舗は多く、そのソフト上できていたことをWebのUIでも再現する必要があったからです。加えて、ドラッグ&ドロップでシフトの作成や調整ができたり、シフト表を操作しながらチャットができたりするなど、従来のWebアプリと比べて非常に多機能かつ複雑になることが予想できました。
これらの要件から、「Single Page Application(以下、SPA)として実現する必要がある」と判断し、その中でも実装開始当初の時点でSSRの実績がある、WebフロントエンドのライブラリとしてReactを採用しました。
またReduxの採用理由は、Fluxアーキテクチャを実現する最もポピュラーなライブラリであること、Viewを実現するライブラリと完全に切り離して扱うことができることなどです。
『Airシフト』におけるスマホアプリのニーズ
『Airシフト』は当初、Web版しか提供しておらず、チャット機能において「通知に気付かない」「気軽にメッセージのやりとりができない」といった課題が見えてきました。
そこで、チャット機能に焦点を当ててその課題を考えたときに、より手軽にチャットができて通知も受け取りやすいスマートフォン(スマホ)アプリ版を実装すれば、それらの課題を解決できるのではないかという仮説を立てました。その仮説を検証するためには、機能をチャットに絞ったスマホアプリ版を、高速で開発するための技術を選定する必要がありました。
React Nativeを選んだ理由
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- 利用者調査「State of JavaScript」最新版が公開、2万人強が参加
JavaScriptの利用動向に関する年次調査(2019年版)が発表された。開発者2万1717人の回答を集計、分析したものだ。勢いのあるフレームワークやツール、JavaScriptのスーパーセット言語が分かる。 - 求人情報から見えた「JavaScriptフロントエンド開発者に必要なスキル」 CV Compiler
オンライン履歴書改善サービス「CV Compiler」の提供元が、AngelList、StackOverflow、LinkedIn、その他IT企業の人材採用ページから、JavaScript開発者の求人情報約300件を収集し、頻繁に言及される募集条件を調査した結果を発表した。 - ゼロから学ぶ! Single Page Applicationの特徴と主なフレームワーク5選
フロントエンド開発のアーキテクチャである「SPA(Single Page Application)」について、開発に必要となる各種フレームワークの特徴や作り方の違いなどを紹介する連載。