虎視眈々と

Flutter × Firebaseを研究するアプリエンジニア

Flutterで開発してみたら、やっぱり開発スピードは爆速だった

Flutterで開発してみたら、やっぱり開発スピードは爆速だった

FlutterアプリはAppStore申請しました。

Android版の方も開発しており、AppStore反映後、Android版のリリース作業を行います。

今回はFlutterを使ってアプリ開発にどれくらい時間がかかったか書いてみます。

開発期間

FlutterのFirst Commitからリリースまでの期間

  • 2018/5/9 〜 2018/8/24

約3ヶ月と少しくらいになります。 もちろん本業の時間外に行なっていましたので1日の作業時間はかなり少ないですが、 この3ヶ月間で両OS対応のアプリを作ったのはかなり早い方じゃないかと思います。

ちなみ、自分はFlutterで作ったアプリとほぼ同じ仕様のAndroidアプリを以前にKotlinを使って開発しており、 その開発期間も載せておきます。

Androidアプリの開発時間

  • 2018/01/04 ~ 2018/06/21

約5ヶ月と少しでした。 この時は仕様はもちろんデザインも考えながらやってました、Cloud Firestoreの使い方もいまいちわかっていない状態でしたので明らかに時間がかかってしまっています。

Flutterでアプリを開発したときは、Cloud Firestoreの使い方も知ってたし、デザインもある程度決まっていました。 ですが、あまりFlutterに慣れていない状態ですぐに始めたのでそこで相殺したとしても明らかにFlutter製の方がはやいです。(しかも両OS対応)

なぜFlutterを使ったら実装がはやくなったか考えてみた

Flutterを使うとなぜこんなに爆速で開発できたか考えてみます。

  • FlutterのHot Reloadはやっぱりめちゃくちゃ効率がいい
  • マテリアルデザインコンポーネントが用意されているので実装が楽
  • 日本語記事は少ないが英語で検索するとそれなりに記事がでてくるのであまり悩んだりしなかった

上記のようなことが挙げられます。

FlutterのHot Reloadはやっぱりめちゃくちゃ効率がいい

Hot Reloadが効率がいいというのはアプリエンジニアならよくわかると思います。 毎回ビルドするのはAndorid iOS限らずかなり待たされます。

勉強会に参加したときに聞いた話でフルビルド時間が15分かかると聞いたことがあります。 自分の前のいた職場でもJenkinsのビルドが8分とかが当たり前でした。

そこの時間の短縮はやはり大きいと思います。

また、Hot Reloadを使えるということは「簡単に壊して、簡単に作る」のサイクルが作れます。 自分が開発していて「作って、壊して、また考える」のサイクルはかなり心地よかったです。 Androidでレイアウトを組んでいる時には感じなかった感覚でした。

マテリアルデザインコンポーネントが用意されているので実装が楽

これに関しては開発メンバーが自分ひとりの状態(もちろんデザイナーとかもいない)でアプリのデザインを作る時はとりあえずマテリアルデザインの準拠しておけばそれなりのデザインができます。

それなりのデザインでかつユーザーが使いやすいというのがマテリアルデザインのいいところだと思っています。

また、そのマテリアルデザインコンポーネントがすでに用意されているのもかなり魅力的で、雑なことをいうと公式サイトのコードをコピペするとマテリアルデザインができてしまいます。(レイアウトを変えたりいろいろしていくのはちゃんと理解して実装しないといけないけど)

iOSマテリアルデザインをいれることに関して賛否両論あると思いますが、個人的にGmailアプリもマテリアルデザインで実装されていてかなり使いやすいと感じているのでそこの不満は特にありません

日本語記事は少ないが英語で検索するとそれなりに記事がでてくるのであまり悩んだりしなかった

Flutterにあまり慣れていない状態ですぐに実践導入したので何回もいろんなエラーに遭遇しましたし、レイアウトの組み方がわからなかったりもしました。

ですが、その度にググるとだいたいStack Overflowの記事にヒットしてそれを詳しく読むと解決できました。 しかもFlutterの中の人(Flutter自体を開発している人)が回答したりもしています。Googleの本気度が伺えました。

質問が多く、かつ答える人も多いということはそれだけ活発に利用されているということではないでしょうか。

総括

今回アプリを開発してみて思ったことは、クロスプラットフォームということよりも「開発が爆速になる」ということの方がメリットが大きいと思います。

戦略的にFlutterで作るけどiOSだけリリースするとかも個人的にありだと思いました。 開発スピードがあがるということは、ビジネスにとってもっとも重要なことじゃないでしょうか。(自分はそう思います)

これから今App Store申請中のアプリはどんどん改善を行なっていきますので、もしよかったらダウンロードして使ってみてください。

リリース後はTwitterでアナウンスしますのでフォローの方よろしくお願いいたします。

https://twitter.com/yshogo87