
Flutterとは?始める前に押さえておきたい必須知識を解説
Flutterって最近よく耳にするけど、どんなものなの?
Flutterを始めてみたいけど、何から手をつけて良いのか分からない
そんな風に思い悩んでいるあなたに、
- Flutterとは
- Flutterのメリット
- Flutterの将来性
を中心にFlutterにスムーズに入門できる様にイチから分かりやすく解説したのが本記事です。
本記事を読んでぜひ、Flutterライフを楽しんで下さい!
また、次の記事ではFlutterの基礎知識を解説したうえで、モバイルアプリの開発手順や覚えておきたい便利機能を紹介しているので、あわせて参考にしてください。
→ 【Flutter入門】導入方法からアプリ開発の手順まで徹底解説
この記事の目次
Flutterとは?
Flutterとは?
まずそもそもFlutterとは何か?について解説をしていきましょう。
Flutterは検索サイトで有名なあのGoogle社によって開発されたオープンソースのフレームワークです。オープンソースとは「ソースコードが一般に公開されている」もので、フレームワークとは「便利な機能が最初からある程度用意されているソースコードの集まり」の様なものです。

Flutterのメリット
では、具体的にFlutterでは一体何ができるのか?これからご紹介するメリットと合わせて解説をしていきます。
ハイブリッド開発ができる
私たちが普段利用してるスマホのアプリは大きく分けると2種類存在します。一つはiPhoneで利用されているiOS向けアプリとAndroid端末で利用されているAndroid向けアプリの2種類です。
本来、スマホアプリを開発をする際は、その2種類のアプリをそれぞれ開発する必要があります。具体的にはiOS向けアプリであれば、Swift、Android向けアプリであれば、Kotlin等というプログラミング言語をそれぞれ活用して開発を行う必要があります。
ただ、一つのアプリを開発するのに、二つのプログラミング言語でそれぞれ作らなければいけないというのは、一つのプログラミング言語で作るよりも単純に2倍の作業がかかることになり大変な気がしますよね。そこで、登場するのがFlutterです。
Flutterは、一度開発した内容をiOS、Androidそれぞれのアプリに対応する様にプログラムコードを変換してくれる機能があります。つまり、開発自体は一度で済むということです。
これがどれだけの大きなメリットかはこれまでの解説を読んでいただいたあなたには充分理解していただけることでしょう。まさにハイブリッド開発ができることがFlutterの大きなメリットの一つです。
スマホアプリだけではなく、Webサービスにも利用できる
あなたがスマートフォンやパソコンでよく利用しているサービスの中には、スマートフォンで使うものもあれば、パソコンで利用するもの、そして、パソコン両方でよく使うものがあると思います。
パソコンでよく使われるサービス、いわゆるWebサービスの開発でよく使われるプログラミング言語というのも、様々なものがあります。例えば、Python、Ruby(Ruby on Rails)、Java、C#などです。
もしあなたが一つのサービスを開発する際に、スマホアプリとしてだけではなく、Webサービスとしても作成し利用者の層を広げていきたいと思ったとしましょう。その様な場合、スマホアプリ用のプログラミング言語の他に、やはりWebサービス用のプログラミング言語での開発が必要となります。
少し前に似た様な課題をご紹介したことに気付きましたでしょうか?そうです、前の章のメリットのところでも触れました、iOS、Android向けに二つのプログラミング言語を扱わないければいけないことに似ています。ですが、、そうです、勘の良いあなたは判ったはずです。
FlutterでWebサービスも作ることができるのです。つまり、一度の開発で、スマホアプリ、Webサービスをまかなうことも可能なのです。
ただし、スマホアプリとWebサービスではそもそも画面の大きさやスマホ独自の操作などの兼ね合いで全く同一のソースコードを流用できるかどうかはアプリケーションの内容次第ではあります。また、FlutterがWebサービスに対応する様になったと発表されたのは2019年なので、まだ日が浅いこともあり、まだ完全に同一コードでという訳にはいかないケースの方が多いでしょう。
ですが、FlutterはあのGoogle社が開発しているフレームワークですので、進化のスピードは早いですし、これからWebで利用する企業が徐々に増えてくれば、様々な知見が共有され、よりWebで使いやすいフレームワークへと進化を遂げていく可能性が充分にあります。
Flutterで使うプログラミング言語Dartとは?
プログラミング言語Dartとは?
Flutterのメリットが充分に判ったところで、具体的にFlutterはどんなプログラミング言語なのかについてご紹介します。
そもそもDartとは?
FlutterはGoogle社が独自に開発した Dart (ダート)と呼ばれるプログラミング言語を使って開発を行います。
Dartの文法自体はJavaScriptやJavaに近いといわれています。
Dart言語自体は2011年にGoogle社より発表されています。当時は、JavaScript言語の代替言語の地位を狙ってGoogle社が精力的に開発を進めていましたが、途中他の有力な代替言語などが出るなどして、いわゆる鳴かず飛ばずな地位に甘んじていました。しかし、2018年2月に大きな改善が行われ、2018年12月ついにFlutterのバージョン1が正式リリースされ、今日に至ります。
Dartの特徴
Dartの主な特徴は大きく二つあります。
一つはオブジェクト指向言語であること、そしてもう一つは、動的型付け、静的型付けのどちらにも対応していることです。
一つ目のオブジェクト指向言語については本ブログの以下の記事にて詳しく解説をしていますので、深く知りたい方はぜひ参考にしてみてください。

オブジェクト指向とは?誰でもわかるようにやさしく解説
更新日:2023年1月18日
もう一つの特徴である「動的型付け、静的型付けのどちらにも対応している」について解説をします。
型付けとは、開発者がプログラムコードの中で利用する変数(何かの値が入る入れ物)に対して、その変数に入る種類を決めることをいいます。例えば、文字列をいれる為の変数とか、数字をいれる為の変数とかを決めることを型付けといいます。
では、静的型付けと動的型付けの違いは何か?ですが、静的は変数にものをいれる前に事前に種類を決めておくことです。そして、動的は変数に対して事前に種類を決めておく必要がない、という違いになります。
そして、通常のプログラミング言語は静的型付け言語、動的型付け言語とあらかじめルールが決められていることが多いのですが、Dartはどちらでも開発を進めることができるのが大きな特徴です。
また、次の記事ではDartとは何なのか、その特徴を活用するメリットやデメリットも交えて紹介しているので、あわせて参考にしてください。

Dartとは?メリットやデメリット、開発経緯まで丸わかり
更新日:2022年11月14日

Flutterから学ぶべきか、SwiftやKotlinなどのネイティブ言語から学ぶべきか
Flutterについて興味を持っている方の中には、スマホアプリのプログラミング言語として歴史の長い、ネイティブ言語、いわゆるSwiftやKotlinなどの言語とどちらを先に学べば良いか気になる方がいるかもしれません。
これについては、一概に正解があるわけでは無いですが、判断基準として一つご紹介させて頂くとしましたら、あなた自身が作りたいサービスがどの様なものかを考えてみることから始めるのも有効な手段かと思います。
FlutterでSwiftやKotlinなどのネイティブ言語でできる全てを一つのコードでプログラミングできるかというと、実はそうではなく、ネイティブ言語でしか用意されていない機能もいくつかあります。その場合、Flutterからネイティブ言語の機能が使える様に一工夫する必要があり、ネイティブアプリでプログラミングをするよりも多少手間がかかる場合があるのです。
ただ、基本的なアプリケーションの機能であれば、Flutterのみで充分にプログラミングができるので、これからご紹介する将来性も加味して判断いただくのがおすすめけると良いです。
Flutterの将来性は?
Flutterの将来性について、まず仕事につながるかどうかの観点で求人数を確認してみましょう。今回参考にしたのは、大手求人情報サイトです。
現時点(2020年9月)でおよそ400件ほどの求人数となっており、Swift 4100件ほど、Kotlin 2400件程と比較するとまだまだ求人数はこれからといったところでしょうか。
ただ、FlutterはiOS、Androidの2種類のアプリケーションを開発できるというメリットがあります。そのため、特にスタートアップ企業などの人員確保において、iOS、Androidエンジニアをそれぞれ雇うよりも、1名で済むFlutterを有効な選択肢として考える企業も増えることは充分に考えられます。このことから、ハイブリッド開発としてのFlutterの地位はますます大きくなっていくことが期待されます。
また、次の記事ではFlutterの将来性を詳しく解説しているので、あわせて参考にしてください。

Flutterの将来性に注目!Flutterの期待値をがっちり把握
更新日:2022年12月2日
まとめ
いかがでしたでしょうか?
今回はFlutterの入門知識として、そもそもFlutterとは何か、そしてそのメリットにはどの様なものがあるのか、Flutterで使うDart言語の特徴、そして、将来性についても解説をしました。
次にあなたが取り組むこととしては、実際にFlutterの開発を始めてみることです。