見出し画像

求人メディア Green の Android アプリを Flutter で開発した裏話

IT系人材に強みを持つ成功報酬型求人メディア「Green」は2021年2月8日に Android アプリをリリースしました。

今回はその開発の裏話を、開発者である @hosakak と @muttu_623 にインタビューしたので、赤裸々にお伝えしたいと思います。

画像4

@hosakak :穂坂 賢司(写真左)。1988年生まれ、神奈川県出身。大手SIer、フリーランス、起業(共同創業)などを経て2019年に中途入社。現在は Green でエンジニアを担当。  

@muttu_623 :佐藤 夢積(写真中央)。1996年生まれ、岩手県出身。東北大学理学部卒業後、2019年4月に新卒入社。入社後一貫して Yenta の Android アプリエンジニアを担当。

そもそも成功報酬型求人メディア「Green」とは何か?はこちらをご覧ください。

スクリーンショット 2021-02-06 16.12.52

なぜ Flutter で開発することにしたのか?

__________ そもそも、どうして Flutter で開発することにしたんですか?

@hosakak :もともと Android アプリをリリースしたかったんです。ただ、 Green ではスマートフォンアプリを開発できるエンジニアが多くありませんでした。アプリを開発するメンバーのリソース不足が続いていたのですが、余白ができる目処も立たず、「これ、一生作らないよね(苦笑)。」と話になりました。

なんとかする方法を考える中で、クロスプラットフォーム開発に挑戦することを思いつきました。実際に業務で開発した経験のある人はいなかったのですが、 @muttsu_623 がプライベートで Flutter の勉強していたのを知り相談したのが最初のきっかけです。

その時に聞いたのが、他社でのプロダクト開発で実績が出てきていること、 アプリを作った経験があるメンバーはもちろん Web のフロントメンバーでも少し勉強すればそこまで難しくないこと、だったのでそれならこれを機に挑戦しようという流れになりました。

画像5

__________ なるほど。 @muttsu_623 はどうして Flutter を勉強していたんですか?

@muttu_623 :もともと Yenta のアプリを開発していた時に強い課題感があったんです。アプリの開発者あるあるだと思うのですが、1つの機能を作る際にはどうしても iOS と Android 別々の技術で開発する必要があるためリソースはその分発生します。同じように処理を書き組み立てたりするだけなのに、おおよそ倍の工数がかかるのは勿体ないなと思っていました。

アトラエのようにビジネスに集中したい会社にとっては出来る限り生産性を高めた方が良いと考え調べ始めたのが発端です。

Facebook が作っている ReactNative というフレームワークは様々なプロジェクトで使われなくなっていましたが、 Google が作っている Flutter は、直近1年で採用事例が増え一気にドキュメントが充実したり、開発者のコミュニティが活発になってきていました。また、 Google 製のアプリが Flutter に置き換えられていることもあり Flutter の方が信頼できると思い、テックカンパニーのアトラエとして挑戦した方がいいと考えていました。

画像6

リリースまでに苦労したことは?

__________ Flutter って素晴らしい技術なんですね。初めての技術で大変だったことも多かったんじゃないですか?

@muttu_623 :めちゃくちゃありました(笑)。

まず Green のメンバーからできるだけ早く作って欲しいと言われました。みんな事業を伸ばしたいと思っているので当たり前ですよね(笑)。

また、慣れている技術なら見積もりもしやすいのですが、全く分からない技術だったので見積もりができない状況でした。 Green は新規事業とは異なり15年以上続く歴史あるサービスで構造的にも複雑でしたし、 Green に携わるのも今回が初めてだったので、正直どれくらいコミットするべきか全く分かりませんでした。

さらに、僕には Green だけでなくYenta の開発タスクもありました(笑)。同時に2事業部を横断してアプリを開発することは初めての経験だったので痺れました。

開発中にこだわった点は?

__________ まさに暗中模索ですね。どうやって開発したんですか?

@muttu_623 :不確実性が高く、依存性が高い部分から開発することで、先に土台となる基盤の構築を済ませたことです。

スクリーンショット 2021-02-06 17.32.25

不確実性が高い部分を後回しにすると一向に見積もりをすることができず、早くリリースするためにどれくらい自分がコミットするべきか、周りにどれくらい助けてもらう必要があるか、分からないままになってしまいます。

また、依存性が高い部分を先に開発してしまえば、早くリリースするために他のメンバーに協力してもらうことができますし、もし誰かが Flutter の技術面で躓いた時に必ず僕が壁打ち相手になることで、チーム開発をスムーズにすることができます。

万が一、僕が忙しくて相談を受けることができなかったとしても、皆さんの知識なら自分で調べて解決できるレベルだったと思うので、特にリスクになるほどのものではかったと思います。

スクリーンショット 2021-02-14 17.30.43

今回の開発過程で、凄かった点はズバリ何?

__________ この開発方法、 @hosakak から見てどうですか?

@hosakak@muttu_623 が2つの事業を掛け持ちしている状態で、初めての技術を使っているにもかかわらず、4ヶ月間でリリースさせたのは素晴らしいと思います。

今回のように開発期間が短い場合は、とりあえず作りやすいところから作って、できるところまでやってみて、細かいところは帳尻を合わせて勢いでリリースさせることも一般的には多いんじゃないかな(笑)。2人くらいがフルコミットして一気に作り上げるイメージ。

急いでいたプロジェクトだったとしても、 @muttu_623 がしっかりと土台を作ってくれたおかげで、最後の2ヶ月間は4名体制になってもちゃんと4人分のパフォーマンスが出せていました。

画像7

さらには @muttu_623 以外の3名はほとんど新しい技術に関して関与する必要がなく、頭を使うこともなかったです。 Green は Android のアプリの開発以外にもやることがたくさんあるので(笑)、そっちに集中できたのは事業全体としては大きかったです。

また、 Web のフロントのメンバーに Flutter のコードを見てもらった際に、普段書いているものと構成が似ているので、少し勉強しただけで理解できそうだと言ってくれていました。 @muttu_623 が Green から離れても Green のメンバーだけでメンテナンスができるようになっているということです。

単に Android アプリを Flutter で作って早くリリースすることだけがゴールではなく、今後の開発体制を見据えたプロジェクトだった点も理解した行動してくれたこと、それだけでなくリリースもしっかり間に合わせてくれたこと、が非常に美しかったと思います。

インタビューを終えて

初挑戦の技術で、2つの事業を掛け持ちしながら、短期間で強固な基盤を作った上でリリースまで漕ぎ着けたことは本当に素晴らしいと思います。

CTOの岡がツイートしていた通りまさにアトラエクオリティ。

2月8日に満を持して Android アプリをリリースしたのですが、主に Flutter のエンジニアの皆さんから想像以上の反響をいただきました。この場を借りてお礼をさせてください。本当にありがとうございます!

大きな反響があったので Flutter の構成について Atrae Tech Blog に綴っております。

なお、ユーザーの方にも徐々に使い始めていただいており大変嬉しいです。本当にありがとうございます。

最後に

アトラエはエンジニアを積極採用中です。少しでも興味のある方は採用ピッチやラジオをチェックしてもらえたら嬉しいです。

 @muttu_623 の Twitter はこちら🧑‍💻

最後まで読んでいただきありがとうございました!少しでも「いいね!」と思ったら、❤️マークで「スキ」してもらえたら嬉しいです😊

この記事が気に入ったらサポートをしてみませんか?