今回は、BASEのスマホアプリの開発を担当している竜口と筧にインタビューしました。
ショッピングアプリ「BASE」は、ネットショップ作成サービス「BASE」で開設された60万ショップの商品が購入できるアプリです。リリース以降ダウンロード数を伸ばし続け、2018年12月には500万ダウンロードを突破しました。
「BASE」はショップオーナー向けのプロダクトのイメージが強いかもしれませんが、購入者さん向けのプロダクトはどのように開発しているのかを話してもらいました。
【Profile】
写真右:竜口 朋恩(たつぐち ともおき)
BASE Product Division Native Application エンジニアリングマネージャー
1991年生まれ、福岡県出身。大手自動車部品メーカーに新卒入社。その後、株式会社Loco Partnersでインターンとしてサーバーサイド開発に従事し、プライベートではiOSアプリの開発を行う。2016年8月にBASE株式会社にiOSエンジニアとして入社し、ショッピングアプリ「BASE」のiOS開発を担当。2019年1月にNative Application エンジニアリングマネージャーに就任。
写真左:筧 敦気(かけひ あつき)
BASE Product Division モバイルエンジニア
1994年生まれ、東京都出身。学生時代は経済学部で計量経済学を専攻。大学卒業後、Web系の会社に入社。サーバーサイドでの開発に従事。その後フリーランスとして開発業務を経験し、2018年9月にBASE株式会社にAndroidエンジニアとして入社。ショッピングアプリ「BASE」のAndroid開発を担当している。
現在の業務について教えてください。
竜口:BASEで提供しているスマホアプリの開発を行っています。現在担当しているアプリは、ショッピングアプリ「BASE」、ショップ管理専用アプリ「BASE Creator」、ライブ配信機能「BASEライブ」の配信専用アプリの3つです。また2019年からはNative Applicationエンジニアリングマネージャーに就任しており、チームメンバーが気持ちよく開発できる環境を整えるために1on1や各種調整業務も担っています。1月に就任したばかりなのでエンジニアリングマネージャーとしてはまだまだこれからですが、メンバーのモチベーションややりたいこととチームが向かうべき方向を揃え、メンバーがやりたいことを実現する際に阻害となる要因はなるべく自分が引き受けていこうと考えています。
筧:自分はAndroidエンジニアとして各種アプリの開発・レビューを行っています。iOSと同様にショッピングアプリ「BASE」、ショップ管理専用アプリ「BASE Creator」、ライブ配信機能「BASEライブ」の配信専用アプリの3つですね。AndroidX対応など使用するライブラリや言語のアップデートにも日々取り組んでいます。
ショッピングアプリ「BASE」はどのようなアプリなのでしょうか?
竜口:ショッピングアプリ「BASE」は、ネットショップ作成サービス「BASE」で開設されている60万のショップとアプリでショッピングを楽しむ500万のユーザーとの出会いを創出することと、スマホ時代に適した最高の購入体験を提供することです。
アプリでは、「BASE」に出店するショップの商品を探すことができるので、購入者さんが求めている商品を適切に表示することが重要です。そのためにData Strategy Groupと協力してレコメンドの精度を上げるための開発を行っていたり、解析しやすい基盤づくりを行っています。また購入体験という面では、「BASE」の決済は子会社のPAY株式会社が開発している「PAY ID」を使っていることもあり、決済をストレスなくスムーズに行えるようなユーザビリティを追求しながら開発しています。
どのような経緯でBASEに入社したのでしょうか?
筧:きっかけは、プライベートでAndroidアプリ開発をし始めてGitHubのリンクをWantedlyのプロフィールに載せていたら、遊びに来ませんかと声をかけてもらったことでした。その時はフリーランスでサーバーサイドでの開発をしていたのですが、Androidで真剣に開発してみたいなと思ってた時期でもありました。
せっかく携わるなら自社サービスがいいなと思ってました。自社サービスだと継続的な開発・アップデートが求められると思うのですが、そういった経験で得られることは多いですからね。なので長くお付き合いできるような愛着持ちやすいプロダクトがいいとなぁぼんやりと考えてました。僕の周りは自分でモノを作ったりビジネスをしている人が多かったので、BASEがそういった人たちを応援し夢を実現するためのプロダクトを作っていると感じたことが入社の決め手の1つでした。
竜口:転職する際にBASEがいいなと思った点は大きく2つあって、1つはBtoCのサービスが好きだからです。なぜかというと、自分が作ったものに対してのリアクションが直接届くのでやりがいを感じられるからです。
もう1つはBASEはエンジニアに理解があり、開発環境の整備にも積極的な点が良いなと思いました。例えば、CakePHPのアップデート対応や好きなイスを購入できるなど、直接的に事業の数値に反映するわけではないですがエンジニアが効率的に、集中して開発できる環境に投資しているところを魅力に感じました。
以前、Objective-CからSwift化していく中で、開発者が増えてコードが増えていき次第にビルド時間が長くなってしまうということがありました。フルビルドで20分くらいかかっていましたね…。なので「無理だろうな…」と思いつつダメ元でiMac Proの購入をお願いしてみたところ、あっさりPCを替えてくれました。iOSエンジニアの大木がEmbedded Framework導入してくれたこともあり、結果的にビルド時間が2分くらいになってとても快適に開発できるようになりました!今後もコード改善などは引き続き進めていきます。
開発言語や開発フローについて教えてください。
竜口:iOSで使用している言語は、現在はほぼSwiftで、一部の処理がObjective-Cです。環境でいうと、GitHub、Firebase、Circle CI、DeployGate、Slackなどを利用しています。
筧:Androidは、新規で開発する機能についてはKotlinで開発しています。既存の多くの機能はJavaで実装されているのですが徐々にKotlinでリファクタリングを行っています。Kotlinは安全で書きやすく読みやすいので積極的に使っていきたいです。そのほかの開発環境は、GitHub、Firebase、Bitrise、DeployGate、Slackなどを利用しています。
竜口:開発の進め方は、全社的にプロジェクト制を採用していて、クォーターごとに大きなプロジェクトを定め、その機能の実装やKPIの達成に向けて開発を進めます。エンジニアは早ければ構想段階からプロジェクトに入り、遅くても設計段階には必ず入り、実装・リリースを行います。
プロジェクトによっては大きなKGIのみが定まっている場合もあり、その際はどういう機能を実装すべきかを考えていくところから始まります。
その他にはお問い合わせ対応やOS対応、Swiftのバージョンアップ対応や、日々の細かな改善等行っています。
アプリチームはどのような雰囲気ですか?
竜口:新しい技術を取り入れるのに積極的な印象です。あとはみんなSpeak Openlyで、思ったことをきちんと指摘してくれるのでありがたいです。
また、プロダクトの方向性や改善についてエンジニアの意見がきちんと通るなという部分は感じます。
筧:「サービスをより良くしていく」という課題をポジティブに考えられる人が多い印象です。職種関係なく、「もっとこうしたほうがいいんじゃないか?」と自社プロダクトに純粋な興味を常に持ち、どうやったら良くなるかをどんどん提案していく雰囲気があります。
また全体的に新しい技術を取り入れることや開発しやすい環境の整備に時間を使うことに前向きなので、リファクタリングや新しい技術調査をする時間も取りやすいと思います。
仕事でやりがいだと感じているところはどのようなところでしょうか?
竜口:試行錯誤して作った機能が購入者さんに望んだ形で使われていた時です。
プロジェクトの目標達成のためにみんなで話し合って施策を決めて開発したものの、思ったように数値が改善されない時もあります。しかし効果測定をしながら改善を重ねていき、その結果、開発した機能が思った通りに購入者さんに使われると嬉しいですね。購入者さんが潜在的に求めていた機能を作ることができてよかったなと感じます。あとは、自分が「こうしたら購入体験がよくなるんじゃないか?」と考えて発案したアイデアが採用されて、アプリの機能として実装できたときも嬉しいです。
それからコードを改善して作業効率が上がった時もテンションが上がりますね。マネージャーとしてのやりがいはこれから作っていこうと思っています。
筧:自分はAndroidの開発を始めてまだ日が浅いので、日々の開発の中でAndroidに関する技術が少しずつ上がってきてるのが楽しいですね。ふと自宅で「BASE」のアプリ触っていたときに自分が開発した機能を見ると、人に使われるものを作ってるという実感が生まれます。
最後に、どういう人と一緒に働きたいですか?
竜口:プロダクトのユーザー体験を良くすることでテンションが上がる人ですね。ショップと購入者さんの最適なマッチングや最高の購入体験のを実現するにはまだまだやるべきことがたくさんあるので、そのミッションの実現に向けてBe Hopefulに開発できる方がいいです。
あとSwiftやiOSへの理解があるという点はもちろんですが、プロダクトが長く続くためにも開発者がより快適に開発し続けられる仕組みを作っていく必要があります。なのでユニットテストを書いたり実行した経験やプロダクトの一通りのライフサイクルの経験がある方に来ていただけると嬉しいです。
筧:息の長いアプリケーションを開発していきたいので、その過程を一緒に楽しめるような方がいいなって思います。テストコード書いたり、一度書いたコードでもよりよくなるように改善していく志向がある方だといいですね。
Kotlinはあまり書いてこなかったとしてもAndroidでの開発経験が豊富な方に来ていただけると嬉しいです。
ここまで読んでいただきありがとうございます。
BASEのiOS/Android開発に興味を持った方は、ぜひ下記の募集要項をご覧ください!