Diverse developer blog

株式会社Diverse(ダイバース) 開発者ブログです。

「Flutterをきっかけに、前向きな人が仲間になってほしい」リードエンジニアが語る、Flutterの導入とこれから。

f:id:diverse-tech:20210518154911j:plain

エンジニア界隈で注目を浴びているアプリ開発ツールFlutter。 少し前ですが、2019年に当社はFlutterを 「youbride」に導入し、運用を開始しました。

当時はFlutterを用いたプロダクト実装の 運用事例が少なく、 導入までには約1年の歳月を要しました。

今回は、Flutter導入プロジェクトの 中心となったエンジニア・菊池さんに

  • 導入までの経緯

  • Flutterのメリット

  • 今後の展望

について聞きました!

f:id:diverse-tech:20210518155314j:plain

慢性的なリソース不足を解消できる「使い勝手の良さ」が決め手

ーFlutter導入までの経緯を教えてください。

菊池:もともと、Flutter導入のきっかけは「開発チームのリソース不足」です。エンジニアが3名、デザイナーが2名対して圧倒的に業務量が多かったんです。これを何とか解消したいと。そこで、効率化のためのフレームワークを探していました。 業務量が多い理由の1つが、プラットフォームが複数存在し、それぞれのフロントエンドのコードベースが別れていたことです。

1つの機能を追加する場合、ウェブサイト(PC用・スマホ用・ガラケー用※当時、現在は閉鎖)、iOSアプリ、Androidアプリの全てに開発の手を入れる必要がありました。 当然、それに付随してデザインにかかるコストも増えます。コードベースを一元化し、複数のフォームファクタに対応することが最大の課題でした。

もちろん、Flutter以外にも導入候補はありました。PWAとReactNativeもそれぞれコードベースの統合は可能でしたが、マッチングアプリ、というプロダクトに照らした時に不適でした…。

ー最初からFlutter一本で候補を絞っていた訳ではないのですね?

菊池:そうですね。最初からFlutterの採用を決めていた訳ではありませんでした。最有力候補だったのはPWAで、メンバーの期待も大きかったのですが、iOSへはプッシュ通知を送信することができない、というマッチングアプリとしては致命的な制限があり、やむなく却下に……。

PWAを候補から除いてしまうと、当時はウェブサイトのコードは統一できませんでした。そこで、iOSとAndroidのアプリを一本化して、マッチングアプリとしての機能も維持できる。この2つの要素が不可欠です。そしてその両方を高い水準で満たすのがFlutterだ、という結論に至りました。

今では大手アプリでも採用されているFlutterですが、導入を決めた2018年当時、日本だとCARTUNEさんくらいしかプロダクション採用事例は無かったです(笑)

海外では中国のテンセントが使用していることを知り、それならやってみよう、方向性が固まりFlutterの導入が決まりました。

f:id:diverse-tech:20210518154959j:plain

生産性と品質管理の向上へ繋がった

ーFlutter導入する際に苦労した点などはありましたか?

菊池:当時、Flutterの日本での導入事例が限りなく少なかったので、手探りで進めていった部分はありましたね。Flutterは新しいツールなので、バグや不具合なども発生するんです…(笑) その辺りをチームで確認しながら、問題点を洗い出していきました。

ちなみに、Flutterは「Dart」という言語を使用するのですが、公式のLanguage Tourはかなり丁寧で、「この言語を読み解いていくのはすごく簡単だな」という所感でしたね。昔からエンジニアをやっていて、JavaとJavaScriptがわかるのであれば、Dartは1日学習すればある程度は読み書き出来ます。ストレスなく扱いやすい点も、Flutterの良さのひとつだと思います。

ー新しいツールだけど、そこまで構える必要はない、と言うことなんですね。 実際、導入後のメリットはどこにあると思いますか?

菊池:メリットは、リソース不足の改善につながったことです。1つのプロダクト開発にかかる時間的コストも大きく下がりました。Androidアプリの新規開発をする場合を例にすると、Flutterを使用せずに開発した場合と比べて1~2割ほど時間が削減されるのではないでしょうか?

Flutterは、宣言的UIを採用しているため、従来のアプリケーションよりもUIを組み易くなっています。1つの機能を実装する場合、違うプラットフォームであっても、同じ機能を提供しなければならないのですが、その時も別々に作り込むより開発は楽ですし、統一感を持たせることもできます。

特にマッチングアプリは、メンバーさんが「使いやすい仕様であること」がマスト。その点、Flutterは欲しい機能、必要な機能をつくり込むのも簡単にできますし、自由度が高いです。

また、ひとつのコードで動いているので、試作や品質管理をする際に確認が楽になったことも大きいですね。コードベースの一元化は、管理側のコストを下げることにもつながる。これは、運用して初めて分かりましたね。

f:id:diverse-tech:20210519134600j:plain

Flutterと言えば、Diverse

ー今後もFlutter導入が予定されているのですか?

菊池:当社は、企業としてもエンジニアにしても、Flutter導入にかなり前向きなこともあり、他にもFlutter導入を進めているアプリケーションがあります。しかし、Flutterにすべて置き換える、ということにはならないと思います。 新規に開発する機能であればiOSやAndroidの画面単位でもFlutterを追加できる「Add-to-app」という機能があるので、部分的な使用は今後も進んでいくかなとは…。

ーチームとしての今後の目標は?

菊池:大きく分けて2つあります。 1つは、Flutterコミュニティを大きく拡大していくことですね。2019年当時に比べて、現在は導入企業も増えてきています。日本でもユーザーのコミュニティがあるのですが、チームとしてはコミュニティに積極的に関わっています。Flutterのプラグインを開発したり、ライブラリにバグの報告をしたり、改善をしたりなど。大きな輪となって、Flutterのより良い活用を見出していきたいですね。

これからコミュニティもまだまだ大きくなっていくでしょうし。海外では大きなカンファレンスが開催されているので、Diverseがミートアップなどを開催できたらいいな、とも考えています。

もう1つは、Flutterに興味を持ち、前のめりになって活動してくれる方が入社してくれることですね。実際、開発チームの渡邉さんは、Diverseは数年前からFlutterを採用していてノウハウがありそうだから、という理由で入社を決めたそうで、今は自分でどんどんいろんなチャレンジをしてくださっています。

新しく、また勢いもあるフレームワークを使った開発に先陣を切って携われるチャンスはそこまで無いと思います。新しいモノが好きなエンジニアさんには、魅力的に映るツールです。

ぜひ、私を含む開発チームのみんなと、Flutterの未来を切り拓いていきたい、なんて大きな野望も持っています(笑)。

f:id:diverse-tech:20210519134627p:plain

菊池さん、ありがとうございました!

Diverseはエンジニアドリブンの精神で、 エンジニアにとって働きやすい開発環境、 はたらき方を積極的に導入しています。

現在は下記の職種を 鋭意募集しています!

herp.careers herp.careers herp.careers

ぜひご興味がありましたら お気軽にエントリーください!

お待ちしております!