クックパッドでは「毎日の料理を楽しみにする」というミッションのもと、いくつかのサービスを展開しています。私たちはユーザによりよいサービスを届けるためにAndroidを様々な形で活用しています。またAndroidプラットフォームの進化に追従し、サービスの持続的な開発や生産性を向上させるための取り組みを行っています。本記事では、その事例を紹介します。
全国のスーパーに料理動画を流すAndroidサイネージ端末の開発
CookpadTVでは、スーパーマーケットの店頭で料理動画を流すcookpad storeTV、cookpad storeLiveという料理動画サイネージサービスを提供しています。そして、これらのサービスを提供するために専用端末で動作するAndroidアプリを開発しています。
スーパーマーケットでは店頭ごとに環境が違うので、様々な状況を考えてサイネージアプリを開発する必要があります。例えば、お店には色々な人が訪れるために様々な電波が飛び交い、ネットワーク状況が不規則に不安定になる可能性があります。また、端末は店舗内のレイアウトにあわせて設置されるので、そこがネットワークにつながりにくい場所であっても端末の都合で移動させることはできません。サイネージ端末を見るのはスーパーマーケットのお客さんになるため、「ネットワーク接続を確認してください」という表示を出して解決を促すこともできません。そのため、オフラインでの動作に対応させつつネットワークにつながるときに外部からの指示を受け取って内容を反映させたり、エラーなどの情報送信をまとめて行ったりと、環境に合わせた工夫を行っています。
サイネージアプリの実装だけでなく、サイネージアプリを全国のスーパーマーケットへ効率よく届けるための仕組みも整えています。具体的には、MDMを用いた端末監視や一括管理、アプリ更新の配信手段の確立などが挙げられます。サイネージの表示に適した端末の選定も必要です。料理動画サイネージと一口に言っても、そのサービスを提供するためには様々な物事を考えて実現していく必要があり、その中心にAndroidがあります。以下の「クックパッド開発者ブログ」にて、CookpadTVサイネージアプリの開発事例をご紹介します。
クックパッドマートの配送を支えるAndroidアプリの開発
クックパッドでは、食のつくり手と消費者をつなげる生鮮食品ECプラットフォーム「クックパッドマート」を運営しています。クックパッドマートでは商品の注文・受け取りを行うためのアプリだけではなく、流通の現場で実際に商品を運ぶ配送員向けのアプリも開発し提供しています。配送員向けのアプリには、配送計画の伝達や配送状況の追跡を行うため、配送ルートや商品を運ぶコンテナを管理する機能があります。また、商品の集荷チェックや配送中の温度監視センサーの登録にQRコードを活用し、安全に食品を運ぶ仕組みを実現しています。私たちは新鮮な食材を確実にサービス利用者へ届けるために、様々な場面でAndroidを活用しているのです。
配送員向けアプリの他にも、店舗で商品に貼るラベルを印刷するためのプリンターアプリも開発しています。このアプリを開発する前はラベルプリンターに直接LTEモジュールを組み合わせる構成になっていましたが、印刷の直前にデータを取得する仕組みであったことから、プリンターの置かれている場所のネットワーク環境が悪い場合にうまくラベルを印刷できないという課題がありました。この課題を解決するために、あらかじめネットワーク環境のよいところで印刷命令を取得しておき、プリンターに対してはBluetoothを用いて印刷指示を出すアプリを開発しました。ラベル印刷の課題を解決するだけでなく、LTE通信の料金や機器の導入にかかるコストを抑えることにも成功しています。このアプリは幅広いプラットフォームに素早く展開するために、Flutterを用いて開発しています。クックパッドマートの詳細とアプリ開発事例については、以下をご覧ください。
長年続くクックパッドアプリのメンテナンスと新技術採用のための取り組み
クックパッドアプリは、クックパッドの主要なサービスであるレシピ検索・投稿のためのモバイルアプリです。サービスの安定した提供と改善を続けるために、クックパッドアプリはAndroidプラットフォームの進化に追従し、開発体制の変化に合わせて画面構成やアーキテクチャ、リリースフローを改修してきました。
このサービスを続ける中で、Androidプラットフォームには様々な変化が起こりました。Android OSの進化によって端末でできることが増え、ユーザがより安全に安心して使えるような変更が加えられています。開発環境に目を向けても、Kotlinプログラミング言語が利用できるようになったり、Jetpackのような強力なライブラリスイートが公式提供されたりと、Androidの生産性は日増しに向上しています。このようなプラットフォームの進化にしっかりと追従することで、ユーザの体験を損なうことなく強力な開発ツールを用いてサービス改善に持続的に取り組めるようになります。
最近ではJetpack Composeを利用した開発を自然にクックパッドアプリへ導入できるように、アーキテクチャの見直しやPaging 3などのライブラリ更新を行いました。UIコンポーネントの整理も計画しています。Jetpack Composeの部分的な導入も進めており、新規に開発を進めているクックパッドアプリとクックパッドマートとの連携機能でも積極的にJetpack Composeの利用に挑戦しています。以下の「クックパッド開発者ブログ」にて、クックパッドアプリに関する取り組みをご紹介します。
おわりに
クックパッドでは各サービスで実現したいことに合わせて、様々な形でAndroidを活用しています。サービスや環境により要件や解決すべき課題は異なりますが、創意工夫や改善を続けることで乗り越え、Androidと共によりよいサービスの提供に努めてまいります。
採用情報
著者紹介
茂呂 智大
2014年、クックパッド株式会社に入社、主にクックパッドiOSアプリの開発に関わる。現在はモバイル基盤部の部長として、モバイルアプリ開発の環境整備や技術的な方針決定、その推進を行っている。