見出し画像

Google生まれのフレームワーク「Flutter」がアツいので紹介させてほしい!

みなさんこんにちは。ICTRADの4年目腰痛持ちエンジニアの村瀬です。今回は最近業務に取り入れ始めた、クロスプラットフォーム開発のフレームワークFlutterについてご紹介します!

ひとまず自己紹介

冒頭でも書きましたが最近腰痛がひどく悩んでいます。(どうでもいい)入社後WEB開発のチームに所属し、約2年半いわゆるWEB開発を行っていました。ICTRADには約1年在籍しており、ICTRADでも大体WEB系の開発を行っています。なので、今回紹介するFlutter含めネイティブアプリ(*1…注釈は記事末尾)の開発はずぶずぶの素人です。ずぶずぶの素人なので生温い目で読んでいただけますと幸いです。

What is Flutter??

Flutterとはなんぞやというところで早速ですが、まずは公式のTOPから引用です。

Flutter is Google’s UI toolkit for building beautiful, natively compiled applications for mobile, web, and desktop from a single codebase.

ふむふむ、なんだか強そうなことが書いてあります。以下村瀬的意訳です。

1コードで様々なプラットフォーム(iOS, Android, WEB, desktop)向けにアプリケーション作れまっせ🤗 

え、すごくないですか? めっちゃワクワクしませんか? 僕はめっちゃワクワクしました。そもそもこれまでモバイルアプリをiOS, Android向けに作ろうと思うと、SwiftUI(iOS向け)とKotlin(Android向け)という言語を使って開発をする必要がありました。

画像1

それを、1コードで開発ができるようにして、モバイル向けに止まらず、WEB、更にはデスクトップ向けアプリケーションまで対応しています(*2)。

画像2

Flutterの弱点

とは言ったものの、「なんでもできるすごいヤツ」という訳でもないようで、弱点があります。それはOS依存の機能を利用するにはネイティブのコード(SwiftUIやKotlin)を用いて実装しなければいけないという点です。OS依存の機能というとスマートフォンのカメラの呼び出しやプッシュ通知などです。

また、Flutterはメジャーリリースが2018年12月なので生まれてちょうど2年の新しいフレームワークのため、SDKなどのサポートが他フレームワークよりも弱い印象です。ただ、以上の弱点を考慮しても個人的には推しなフレームワークです。

Flutterのクラウドベンダー対応

SDKのサポートが弱い印象と書きましたが、メジャーなクラウドサービスでは最近サポート強化がされてきています。例えば、AWSでは以下のようにAmplify(*3)のFlutter対応がデベロッパープレビューとなりました。

画像3

また、Googleの提供するFirebase(*4)ではFlutterへの対応が充実しています。(Googleの開発したフレームワークなのでそりゃそうだ)
FirebaseのFlutterへの導入も非常に簡単で、バックエンドの構築に時間をかけずに素早くアプリの開発が行えます。

Flutterで開発中のアプリ紹介

現在僕はQarT(仮)という名前の美術教養アプリをFlutterを用いて鋭意開発中です。世界の名画クイズ、名画ギャラリー、アーティスト一覧、美術館情報等をグラフィカルに提供するサービスを目指しています。バックエンドにはFirebaseを利用していますが、非常にスムーズに導入することができました(公開までお楽しみに…)。

画像4

まとめ

今回のFlutterの紹介をまとめます。

1. Googleが2018年12月がメジャーリリースしたクロスプラットフォーム開発フレームワーク
2. 様々なプラットフォームのアプリを1コードベースで開発可能
3. 最近キテル(個人的感想)

開発をしていて持ったのは、"サクサク開発ができて楽しいフレームワークだ"といった印象です。また新しいフレームワークなのでアップデートも早く様々な機能が随時追加されワクワクしながら開発をすることができます!

今後、QarT(仮)の開発を通して得たFlutterのTipsや、Flutterの機能試してみた系のエントリを更新する予定なので、このエントリでFlutterに興味を持っていただけたらそっとフォローをよろしくお願いします!

(ICTRAD・村瀬)

*1. OSにアプリケーションストア経由でインストールするアプリのこと。
<例>iOSアプリ,Androidアプリ
*2. 他にもReactNativeやxamarin, ionicといったフレームワークがありますが、今回は紹介を割愛。
*3. AmplifyはAWSの提供するフルスタックアプリケーションを構築するためのサービス。
*4. FirebaseはGoogleの提供するモバイル・Webアプリケーション開発プラットフォーム。