「Flutterを使えばどのようなシステムが作れるのだろうか」
「Flutterをどうやって学習すれば良いのだろう」

このような疑問をお持ちではないでしょうか?
Flutter自体は開発言語ではなく、2017年にGoogleが発表したマルチプラットフォームの開発フレームワークを指します。

大手企業のシステム開発においても導入が進んでおり、実際サイバーエージェントやトヨタ自動車でもFlutterを組み込んでカーナビを開発しているそうです。
参考:トヨタとサイバーエージェントが、Flutterをフル活用した開発事例、エンジニアのこだわりを語る──TOYOTA Developers Night

Flutterでは、iOSやAndroidなど異なるOSに対応したアプリ開発が可能です。この記事では、Flutterのメリット・デメリット、Flutterを用いたアプリ開発の事例について解説していきます。

「Flutter・FlutterFlowを用いた、安価で高品質なアプリ開発ができる会社を探している」という方には、株式会社ランデストをご紹介します。
2021年に創業して以来、ご紹介で開発依頼をいただくケースが多いため、クオリティや納期面など安心してお任せください。

Flutterとは?

出典:Flutter

Flutterとは、Googleが開発したオープンソースのモバイルフレームワークです。
モバイルフレームワークとは、AndroidとiOSを同時に開発できる仕組みを指します。
※フレームワークは、開発に必要な機能や基本的な骨組みをまとめたもの

Flutterは、Googleによって開発されたフレームワークであるため、以下の点で多くのエンジニアの支持を得ています。

  • 開発コミュニティが高いスキルを持っている
  • 年に数回、世界レベルのカンファレンスが開かれている
  • YoutubeやTwitterなどで日々情報が発信されている

機能性や信頼性の高さが、世界中で利用されている要因となっているのでしょう。
実際、2020年4月時点で全世界のFlutterのユーザー数は200万人を突破しています。
参考:Flutter Spring 2020 Update|Medium

もちろん、AndroidとiOSでプッシュ通知の仕組みやサポートされている画像フォーマットが異なったりと環境差分がある点は考慮する必要があります。

Flutterの動向にのみ着目していると、例えば iOS16で登場したロック画面にウィジェットを表示できるLive Activity機能の開発を行わない等、受け身の開発スタイルになってしまい、他社プロダクトとの大きな差が生まれかねません。

導入から4年、サイバーエージェント Flutter開発の今|サイバーエージェント

Flutterから派生したノーコードツールで「FlutterFlow」というものもあります。
FlutterFlowは、複雑な環境設計不要かつ、既存のパーツを組み合わせることで簡単にネイティブアプリを開発できます。
「Flutterを学習し始めたけれど、難しすぎて挫折しそう」
「さらに開発コストを抑えて、アプリ開発を進めたい」
という方は、こちらの記事もご覧ください。

Flutterに使われているDart言語とは?

Dart言語とは、2011年にGoogleが発表したプログラミング言語です。

もともとは、JavaScriptの問題点を補うために開発されたプログラミング言語で、一般的にFlutterを使用した開発に使われています。

JavaScriptが苦手とする大規模開発に向いているという特徴があります。

ただ、Flutter以外の開発に使われることはあまりないことから、言語としての人気があまりなく、習得しているエンジニアが少ない点は欠点といえるでしょう。

とはいえFlutterがリリースされたことで、Dart言語にも注目が集まっていることから、今後普及していく可能性は十分考えられます。

Flutterの3つのメリットとは?

Flutterの主なメリットは下記の通りです。

  • Widgetを使ったUI構築が便利
  • iOS/Androidの両方に対応できる
  • ホットリロード機能で高速開発できる
  • JavaScriptを習得していれば容易に理解できる

1.Widget機能を使ったUI構築が便利

Widgetとは、アプリの見た目に関わる部分を構成するパーツを指します。
ノーコードのようにドラッグ&ドロップでパーツを動かして、とまではなりませんが、ソースコードに「Text」や「Center」「AppBar」などを入力すると、アプリ画面が構築されていきます。

Widgetを自作することもできるため、Widgetの階層が深くなりすぎた際やコードが長くなりすぎた際に、ぜひ挑戦してみてください。

2. iOS/Androidの両方に対応できる

FlutterはiOSやAndroidなど異なるプラットフォームに対応したアプリ開発が可能です。

アップデートにより、対応可能なプラットフォームは主に下記の6つとなっています。

  • iOS
  • Android
  • Webアプリ
  • Windows
  • macOS
  • Linux

従来のアプリ開発だと、AndroidはKotlin、iOSはSwiftとそれぞれのプラットフォームに応じて異なるコードを作成する必要がありました。

Flutterを用いることで、Android・iOSアプリを同時開発できるようになり、無駄な開発コストを下げられるため、アプリプロモーションや運営に予算を割けるようになります。

3. ホットリロード機能で高速開発できる

Flutterは、ホットリロード機能を利用することで素早く開発できます

ホットリロード機能とは、開発中にプログラムを書き換えた際に、すぐにUIに反映できる機能のことです。

従来、コード変更の際にはアプリの再起動が必要で、コード変更後に確認やコードチェックなどを行う必要がありました。

Flutterはホットリロードに対応しているため、ビルドの待ち時間を大幅に減らしたスムーズなアプリ開発が可能です。

4. JavaScriptに慣れていれば理解しやすい

前述の通り、FlutterはJavaScriptの問題点を補うために開発されたフレームワークです。

Flutterに用いられるDart言語とJavaScriptのプログラムの文法はよく似ているため、JavaScriptを習得しているエンジニアであれば、比較的理解しやすいでしょう。

実際に、Flutterの普及によってDart言語自体にも注目が集まっているため、習得しておいて損はありません。

FlutterやFlutterFlowを使ったアプリ開発会社をお探しの方は、ぜひ株式会社ランデストにお問い合わせください。

Flutterの3つのデメリットとは?

Flutterのデメリットは下記の通りです。

  • 独自機能はそれぞれ開発する必要がある
  • 作られて間もないフレームワークであること
  • オープンソースのライブラリが少ない

1. 独自機能はそれぞれ開発する必要がある

Flutterの特徴として、複数のOS用のアプリを同時に開発できると説明しましたが、それぞれのOSに搭載されている独自機能(カメラなど)は、個別に開発しなければなりません。

OSにアップデートがあった際は、リリース後の対応になるため、迅速に対応することも難しいでしょう。

さらに、開発アプリのメイン機能がカメラや位置情報取得機能といったOS独自の機能の場合は、Flutterを利用するメリットがあまりないという点も挙げられます。

2. 日本語の技術情報が少ない

Flutterは2018年にリリースされたため、他のフレームワークと比較して歴史が浅く、日本語の技術情報が少ないというデメリットがあります。

JavaScriptと似ているDart言語が用いられていることから、習得しやすいとは言われているものの、参考文献が英語になると学習ハードルが必然的に高くなります。

3. オープンソースのライブラリ(パッケージ)が少ない

ライブラリとは、再利用しやすいプログラムを部品として寄せ集めたファイルのようなもので、効率的に開発するには欠かせません。
オープンソースとは、無償(もしくは最低限のコスト)で誰でも使える状態を指します。

身近なオープンソースライブラリの例を挙げると、JavaScriptの有名なライブラリとしてjQueryReact.jsなどが該当します。

Flutterでは、他の開発言語と比べてこのようなオープンソースライブラリが少なく、ライブラリ実装できない部分は自力で開発しなくてはなりません。

Flutterは流行らない?将来性とは?

結論として、Flutterの将来性は十分に期待できます

開発元のGoogleから、2021年にFlutter2、2022年にはFlutter3が発表されていることから、今後の更なる活用が推測できるでしょう。

また、現在のマルチデバイスやクロスデバイスがすすんでいる環境において、Flutterは汎用性の高さから、世界で注目を集めています。

キーワード別に注目度を測定する「Googleトレンド」においても、中国・インド・アメリカといったIT大国と呼ばれる国で注目度が高まり続けています(下記は、2023年10月時点における過去5年間すべての国における「flutter」のキーワードトレンド)。

【Flutter入門】Flutterの2つの学習方法とは?

Flutterの学習方法は、下記の通りです。

  • 学習サイトを使用する
  • プログラミングスクールに通う

Flutterでアプリ開発を行うには、Flutterの使い方だけでなく、Dart言語を習得する必要があります。
ここでは、Flutterの2つの学習方法について解説していきます。

学習サイトを使用する

Flutter公式サイトでは、Flutterのチュートリアルや使い方など学習を始める方に向けたサポートページが用意されています。

参考:Flutter公式サイト

英語で解説されているものの、画面やキャプチャーを利用し、丁寧に説明されています
Flutter公式サイトの他にも、UdemyやFlutterについて学べる無料・有料サイトもあるため、併せて確認してみると良いでしょう。

無料かつ日本語で学習できるサイトとしては、現役エンジニアが個人で運営している「flutter-study.dev」がおすすめです。

プログラミングスクールに通う

自分で学習をすすめるのは苦手だという人は、プログラミングスクールに通うのも良いでしょう。

日本ではそこまで普及していないフレームワークのため、取り扱っているスクールも多くはありませんが、常に質問できる環境や一緒に頑張る仲間との出会いなど、独学よりも挫折しにくいのは明白です。

一方プログラミングスクールの相場は20〜70万円と高額なため、予算に余裕のない方は、独学でできるところまで学習してみてから、申し込むことをおすすめします。

Flutterで作られた3つのアプリ開発事例とは?

ここでは、Flutterを用いたアプリ開発の3つの事例を紹介します。

  • じゃらん
  • Green
  • Google Ads

1. じゃらん

旅行アプリじゃらんは、アプリの一部サービスをFlutterで改修しました。

10年以上前から、iOS、Androidの両方でアプリをリリースしていましたが、以降の回収をFlutterで行うことで、利便性を高めることに成功しました。

新規開発に使われることも多いFlutterですが、じゃらん事例のように”Add Flutter to existing app”という仕組みを使い、既存のプロジェクトに部分的にFlutterを組み込むことも可能です。

参考:「じゃらん」Flutter移行の苦労と、乗り越えた先に得られたもの

2. Green

Greenは、株式会社アトラエが開発したIT系に強みを持つ転職アプリです。

モバイルアプリエンジニアのリソース確保に課題を感じていた際に、Flutterでのアプリ開発を成功させました。2つの事業を掛け持ちしている状態にもかかわらず、4ヶ月間でリリースすることを実現しています。

今後は、リリース済みのAndroidアプリもFlutterへ移行することを計画されています。

参考:「株式会社アトラエ」求人メディアGreenのAndroidアプリをFlutterで開発した裏話

3. Google Ads

Google Adsは、Googleが提供する広告プラットフォームアプリです。

広告パフォーマンスのチェックや予算、広告の調整を気軽に行えます。
バナー広告やYouTube広告を出稿する際に、利用したことのある方も多いのではないでしょうか。

元々FlutterがGoogle発ということもあり、Google AdsもFlutterで開発されています。

参考:Google Ads

最後に

この記事では、Flutterのメリット・デメリットや実際の開発事例について解説しました。

Flutterは、異なるプラットフォームでアプリ開発を一律ですすめられるといったメリットがあります。

その反面、作られて間もないことからFlutterを扱えるエンジニアが少ない、Flutterを使ったアプリ開発の依頼先が少ないといったデメリットもあります。

時間やコスト削減のために、Flutterを利用したアプリ開発を依頼したいが、外注先が見つからないということも少なくありません。

Flutterを使ったアプリ開発に興味のある方は、ランデストを利用してみませんか?

株式会社ランデストは、FlutterFlowとFlutterを用いた高品質なアプリを開発しています。
無料お見積りやIT業務に関する相談も可能です。
少しでも興味があれば、下記のリンクからお問い合わせください。