ネイティブエンジニアが小売DXのアプリ設計で考えていること
自己紹介
はじめまして、サイバーエージェントの尾日向(おびなた)と申します。
小売DXチームのアプリ運用センターという組織のネイティブエンジニアで、主にAndroid領域の開発エンジニアをしています。
サイバーエージェントといえば、AbemaTVやAWAなどのメディアアプリやウマ娘、戦国炎舞などのゲームアプリなど自社で作成しているコンテンツが一般的に知られているプロダクトだと思います。私の所属している小売DXチーム・アプリ運用センターでは、一部自社コンテンツも作成していますが、ドラッグストアや家電量販店などの小売業のお客様に対するアプリ制作を中心に行っています。
簡単にアプリをリリースできるSaaSを提供するのではなく、お客様のパートナーとしてアプリ制作に参画させていただき、一つ一つの企画からUXUX検討、開発、リリース後の運用まで一貫して提供しています。
小売アプリの開発で最も大事なポイント
現代の小売アプリには、セールやクーポン、新規店舗のオープン情報やアプリ内ECなど、便利な機能がたくさん提供されています。また店頭での支払い時にアプリ内のポイントカードを提示してもらえれば、ECの購買履歴やアプリ内の行動情報と店舗での購買情報を関連付けることで、オンラインとオフラインのデータを横断した分析や提案をすることも可能になります。
しかし、小売アプリの開発において最も大事なポイントは、インストールしてくれたユーザーが継続的に使ってくれる事です。便利な機能をたくさん入れたり、分析のためにデータを取っていても、クラッシュしてしまったり登録に手間取ったり、いろいろな情報が入り混じっていて目的の情報にたどり着けなかったりすると、そもそも使ってもらえません。ネガティブな印象のままアンインストールされてしまったら、再度インストールしてもらうこともほぼありません。
ネイティブエンジニアとして意識していること
私たちのアプリ開発プロセスでは、まず専属のデザインチームである“DXデザイン室”がUX/UXを作成し、それをもとにアプリの設計・実装を行います。読みやすく、保守しやすいコードを書くことはもちろんですが、小売業界のお客様向けのアプリを設計をする上で特に意識しているのは、ユーザーの利用シーンを想定した設計を行うことです。
小売アプリの典型的な利用シーンは、実店舗での買い物やレジ通過の時です。これはゲームやニュースアプリでは想定する必要のない、かなり特殊な状況です。例えばレジ通過の状況を考えてみると、ユーザーはスマートフォンでのアプリ操作と同時にカートを押す、決済するなど複数の作業を同時に行なっています。また、すばやく作業を終えなければならないため、時間的なプレッシャーにもさらされています。
アプリの設計に際しては、こうした特殊な状況での利用を想定したデザインや実装を行うことが重要です。レジ前などの特殊な状況でもユーザーストレスがなるべく少なくなるように、デザイナーチームが検討したUXを不整合なくアプリに落とし込むためのデータ設計や画面設計を意識しています。
ケーススタディ:「仮会員」ステータスの設計
実際の例として、デザイナーチームの鬼石さんの記事の以下部分の設計を考えてみましょう。
レジ通過の際、インストール訴求のPOPや、店員さんからの勧めでアプリをインストールしようとする場合を考えてみます。インストール後、すぐにユーザー登録を促され、メールアドレス、パスワードだけでなく、住所/氏名/年齢などの入力まで求められたとあっては、煩わしくて登録してもらえないどころか、アンインストールされてしまうリスクすらあるでしょう。
私自身も、会計時にアプリをインストールして、その場でユーザー登録をしないとポイント機能が使えないため、混んでいくレジで気まずい思いをしながら、何に使うのかわからない個人情報を登録した経験があります(似たような経験をされた方は結構いらっしゃると思います)。こうしたことを回避するベストな方法の一つが、鬼石さんの記事にある通り、ユーザー登録をせずにアプリが使える「仮会員」というステータスを実装することです。
仮会員というステータスをアプリで表現する方法はいくつか考えられます。
アプリをダウンロードしてすぐに使用するだけであれば、特に仮会員などのユーザーデータを作らずに、表示上「仮会員」としてアプリを利用してもらい、ポイント情報などはスマホの保存領域に保存する方法があります。
この場合、仮会員情報は作成する必要はありません。仮会員ステータスのときに、クーポンの使用情報、商品の閲覧情報など、ユーザーデータと紐付ける必要のない機能の利用しか想定されないのであれば、これで十分です。
一方、仮会員ステータス時に貯めたポイントを、本登録後に引き続きスムーズに使用できるようにする場合は、表示を変えるだけでは不十分です。この場合、
(1)後日、本会員として登録した際にユーザー情報を作成し、ユーザのスマホに保存されている仮会員時に取得したポイント情報を移行する
(2)仮会員作成の時点でユーザー情報を作成し、ログイン情報や住所氏名などが追加入力された場合に本会員ステータスに変更する
などのパターンが考えられます。
(1)の場合、本会員登録時には会員情報とポイント情報が紐付いていないので、紐付ける処理をアプリとバックエンドサーバに実装する必要があります。画面の設計にもよりますが、ユーザーにポイント紐付けの画面を表示して、引き継ぎコードを入力するなど、ユーザーに何らかのアクションを求める必要があるかもしれません。
(2)の場合、仮会員作成時にポイント情報が紐付いているため、こうした機能を実装する必要はありません。ユーザーに追加的なアクションを求める必要もないため、よりシンプルでシームレスな体験をしてもらえます。
最後に: We are hiring!
良い小売アプリを作るためには、普段の生活での購買体験を振り返ることが重要です。色々なアプリを使って、良いところ・悪いところを考え蓄積していくことが、自分たちのアプリ設計にも大切なことだと思います。ネイティブエンジニアとしても、ユーザーにとってほんとうに良いUI/UXを実現できるデータの設計を、日々意識しています。実際の店舗で利用することを考えながら設計することは、ゲームやメディアアプリなどの設計とはまた違う面白さを感じられると思います。
私たちは、引き続き一緒に働く仲間を募集中です!特にiOS/Androidのエンジニアは人手不足なので、少しでも興味のある方いらっしゃいましたらお気軽にご連絡ください!