STORES レジ リリースの舞台裏〜iOSエンジニア編〜
先日リリースを迎えたSTORES レジ。その舞台裏ではどのようなことが起きていたのでしょうか。全3本にわたるシリーズでSTORES レジのお話を聞いていきます。第二回目は、iOSアプリの開発を担当した横小路 健(よここうじ・たけし)さん、横山拓也(よこやま・たくや)さんによる対談です。
聞き手:坂田 晃一(テクノロジー部門CTO室)
社運がかかったプロジェクト
──STORES レジの開発に参加する前は何をされていたんですか?
横小路:では僕から。これまでは受託のSIerをやっていて、ロボットのアプリや業務向けのアプリなどを幅広く開発してきました。前職の縁から、heyを紹介してもらって、現在のSTORES 決済の前身であるコイニー株式会社に入社しました。
横山:僕は2019年の12月に、このSTORES レジを作るための採用募集に応募して入社しました。前職では国内の大手Webサービスの会社にいて、ショッピングアプリの開発などを行なっていました。
──ありがとうございます。おふたりがSTORES レジのプロジェクトに入ろうと思ったきっかけは何だったのでしょうか。
横山:今お話しした通り、大きな会社の大きなチームで日本人全員をターゲットにするプロダクトの開発をしていたので、自分がどれだけプロダクトに貢献できているか見えづらいのが課題でした。そんな悩みを抱えていた時にheyがスモールチーム向けの新規事業をやるという求人を見て、しかも「社運かかってます」と書いてあったのでこれだ!と思って応募しました。
──書いてありましたね。それに食いついてくれたわけですね(笑)。横小路さんは?
横小路:僕はもともとSTORES 決済の仕事をやっている時にこのプロジェクトに入らないかと誘ってもらったのがきっかけでした。おそらくアプリをゼロイチで作れる人があまりいなかったので呼んでもらったんだと思います。
──なるほど。プロジェクトにジョインしてみた当時は、どんなことを考えていましたか?
横小路:今でこそ無事サービスがリリースされて市民権を得ていますが、当時は何をやっているか社内ですらよくわかっていない状態だったので、知名度もなく、こそこそと仕事をしていたのを覚えています。
横山:僕なんて「社運かかってます」というのを見て入ったので、騙されたなと思っていたくらいです(笑)レビュー会での立ち位置も、予約、決済、ECで終わりで、確かに市民権がなかった(笑)
──ははは。お二人ともiOSエンジニアとして仕事をされているわけですが、その中でも業務に棲み分けはありましたか?
横小路:アプリ全体の設計やコア部分の実装はよこちゃん(横山)がリードしてくれました。僕は会社に長くいたのもあって、決済とのつなぎこみなど、開発に関わらない社内連携などをやることが多かったです。よこちゃんと決済のメンバーを繋いだり。
横山:あれはありがたかったですね。他のチームの人と関わることも少ないので、よここし(横小路)がランチに誘ってくれたりして。
──このプロジェクトは他部署との連携やコミュニケーションも大切そうですもんね。プロジェクトの立ち上がり当初は、どのくらいのことが決まっていたのでしょうか?
横小路:そもそもこのSTORES レジの始まりは、soiというサービスを継続するか、新規事業をやるかをプロダクトマネージャーの井出さんが選択する時に、新規事業を選んだことから始まりました。なので、決まっているのは「オンラインとオフラインをくっつけよう」ということくらい。はじめはああでもない、こうでもないと議論をするところから始まりました。早朝に出社することで有名な井出さんがひたすら何をやるかを考えて、並行して採用もやっていました。そこで採用できたのがよこちゃんだったというわけです。
──横山さんはそういう状態でジョインすることに不安はありませんでしたか?
横山:前職でも新規事業開発の経験はありましたし、iOSアプリならイチから作ることに不安はありませんでした。それよりも好き放題できそうな状況にわくわくする気持ちのほうが優っていましたね。
“好き放題できる”反面、ハードウェア連携の壁も
──ここからは技術的なことや実際の開発についてお伺いしていきたいと思います。まず、大きな特徴と言えるのがSwiftUIを採用しているところですよね。
横小路:これはかなり早い段階から決めていたことでした。UIKitをメインで使うイメージはもともとなかったので、応募要項にもそれを書いていたと思います。
横山:そうでした。これは僕がこのプロジェクトに興味を持った決め手のひとつでもあります。
──生まれたての技術を採用することに不安などはありませんでしたか?
横小路:不安はありましたが、踏み切れたのには理由がいくつかありました。まず、リリースが2年くらい後になるのがわかっていたこと。その頃にはSwiftUIもある程度安定しているだろうという目論見がありました。そして、困ったらUIKitに逃げればいいと考えていたことです。
横山:なのでUIKitに逃げる選択肢も用意しておいて、最初から全てSwiftUIで作っていきました。どうしてもだめならUIKitにしようと考えていたけれど結果的にほぼSwiftUIを使っています。また、SwiftUIはデザインの変更に強いのが特徴なのですが、これもSTORES レジの開発にはとてもプラスになりました。
──デザインの大幅な変更も何度かありましたもんね。レジアプリならではの画面づくりの苦労などはありましたか?
横小路:レジアプリは、iPadをスタンドに乗せた状態で少し離れて使うので、文字の大きさが普通のアプリより大きいなどの特徴があるんですよ。ボタンの位置もタップしやすいようにボトムナビゲーションにするなど、レジアプリならではのUIと、通常のiOSアプリらしさを保つことのバランスが難しかった点です。
横山:他社のアプリには全て独自UIで開発しているものもあるのですが、それだとユーザーが期待した挙動から外れていってしまい使いやすさが損なわれてしまうこともある。どうしても変更が必要なところは変更しながらも、iOSアプリらしさから逸脱しないような塩梅でデザイナーチームと協力して今の画面ができています。
──他に、レジアプリならではの苦労した点はありますか?
横山:それは断然ハードウェア連携ですね。辛かったです。
横小路:レジでサポートする機種はSTORES 決済でサポートしているものとほぼ同じであるため、決済からロジックを再利用できると考えていました。しかし、レジアプリでは釣り銭が出てくるドロワーと呼ばれる機器の開閉制御が必要になり、これは決済のロジックでは対応出来なかったため、既存の処理を大きく変更して新規に実装する必要がありました。ところが、このハードウェア連携とリモートワークの相性がとても悪くて.......。
横山:リモートワークの中出社したり、家にハードウェアを持ち帰るなどして工夫しました。リモートワーク中の工夫は他にもあって、デザインのレビューの時間をMTGとして設けたりプルリクエストのタイミングをデイリーにするなどさまざまな試行錯誤をしました。おかげでハードウェア連携の難所もなんとか乗り越えることができたと思います。
スモールチームにパワーを与える
──晴れてSTORES レジがローンチされたのを実感したのはいつでしたか?
横小路:リリース自体は、記者会見までにApp Storeに出ている状態にするために深夜に行なったんですよね。なので一部の人しか起きていない時にこっそりと。それよりも実感があったのはSTORESのオーナーであるTENTさんのお店に見学に行って、使われているのを見た時だと思います。テストではなく実運用を見に行く形だったので、かなり緊張しましたが、使われているのを見ていると実感が湧いてきました。
横山:僕はこのプロジェクトに入った理由がスモールチームの方にパワーを与えたかったからなので、ようやくその状況を目にすることができて感慨深かったです。社外秘の新規事業だったので、これまで、誰にも何をやっているかを言えなかったこともあってその感動はひとしおでした。
──リリースから少し時間が経って、あらためて今考えていることや目指したいことがあれば聞かせてください。
横小路:heyがやろうとしている、複数のサービスがあることのシナジーを出すということを改めて考えてプロダクトに反映させるきっかけになれたのはSTORES レジだったと思います。まずは、それに関われてよかった。一方で、オーナーさんのニーズをもっとリサーチできたのではないかという反省も残っています。これから機能を追加したり、改善していきたいです。
横山:僕も同感です。STORES レジはまだリリースしてまもなくユーザー数もこれから伸ばしていくフェーズです。ひとりひとりのオーナーさんの声を聞き流さないで向き合って、対応していきたいと思っています。
横小路さんのお気に入り:古今玉 碧
かわいい苔玉が揃っていて、お世話の仕方などご丁寧に教えて下さいました。飾って楽しめるものやハーブなど香りを楽しめるものも揃っていて、おうち時間のおともにもおすすめです!
横山さんのお気に入り:ともさんかく
色々な種類のお肉が小分けになっている焼肉セットがおすすめです。沢山入っているので家族でわいわい食べてもいいし、少ない人数でも冷凍しておけばジワジワ攻めていけるので、楽しみが長く続きます!
(写真・文:出川 光)
▼これまでのSTORES レジの舞台裏シリーズの記事はこちら
\ heyでは一緒にはたらく仲間を募集中です!/