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の主な特徴は大きく二つあります。

一つはオブジェクト指向言語であること、そしてもう一つは、動的型付け、静的型付けのどちらにも対応していることです。

一つ目のオブジェクト指向言語については本ブログの以下の記事にて詳しく解説をしていますので、深く知りたい方はぜひ参考にしてみてください。

オブジェクト指向とは?誰でもわかるようにやさしく解説
更新日 : 2020年11月11日

もう一つの特徴である「動的型付け、静的型付けのどちらにも対応している」について解説をします。

型付けとは、開発者がプログラムコードの中で利用する変数(何かの値が入る入れ物)に対して、その変数に入る種類を決めることをいいます。例えば、文字列をいれる為の変数とか、数字をいれる為の変数とかを決めることを型付けといいます。

では、静的型付けと動的型付けの違いは何か?ですが、静的は変数にものをいれる前に事前に種類を決めておくことです。そして、動的は変数に対して事前に種類を決めておく必要がない、という違いになります。

そして、通常のプログラミング言語は静的型付け言語、動的型付け言語とあらかじめルールが決められていることが多いのですが、Dartはどちらでも開発を進めることができるのが大きな特徴です。

Flutterから学ぶべきか、SwiftやKotlinなどのネイティブ言語から学ぶべきか

Flutterについて興味を持っている方の中には、スマホアプリのプログラミング言語として歴史の長い、ネイティブ言語、いわゆるSwiftやKotlinなどの言語とどちらを先に学べば良いか気になる方がいるかもしれません。

これについては、一概に正解があるわけでは無いですが、判断基準として一つご紹介させて頂くとしましたら、あなた自身が作りたいサービスがどの様なものかを考えてみることから始めるのも有効な手段かと思います。

FlutterでSwiftやKotlinなどのネイティブ言語でできる全てを一つのコードでプログラミングできるかというと、実はそうではなく、ネイティブ言語でしか用意されていない機能もいくつかあります。その場合、Flutterからネイティブ言語の機能が使える様に一工夫する必要があり、ネイティブアプリでプログラミングをするよりも多少手間がかかる場合があるのです。

ただ、基本的なアプリケーションの機能であれば、Flutterのみで充分にプログラミングができるので、これからご紹介する将来性も加味して判断いただくのがおすすめけると良いです。

Flutterの将来性は?

Flutterの将来性について、まず仕事につながるかどうかの観点で求人数を確認してみましょう。今回参考にしたのは、大手求人情報サイトです。

indeed

現時点(2020年9月)でおよそ400件ほどの求人数となっており、Swift 4100件ほど、Kotlin 2400件程と比較するとまだまだ求人数はこれからといったところでしょうか。

ただ、FlutterはiOS、Androidの2種類のアプリケーションを開発できるというメリットがあります。そのため、特にスタートアップ企業などの人員確保において、iOS、Androidエンジニアをそれぞれ雇うよりも、1名で済むFlutterを有効な選択肢として考える企業も増えることは充分に考えられます。このことから、ハイブリッド開発としてのFlutterの地位はますます大きくなっていくことが期待されます。

まとめ

いかがでしたでしょうか?

今回はFlutterの入門知識として、そもそもFlutterとは何か、そしてそのメリットにはどの様なものがあるのか、Flutterで使うDart言語の特徴、そして、将来性についても解説をしました。

次にあなたが取り組むこととしては、実際にFlutterの開発を始めてみることです。本ブログでもFlutterのインストール方法などを解説している記事(https://www.sejuku.net/blog/123973)もありますので、ぜひそちらも参考にしていただきながら、Flutterライフを楽しんでください!

「プログラミング、右も左もわからない…」という方にオススメ

当プログラミングスクール「侍エンジニア塾」では、これまで6000人以上のエンジニアを輩出してきました。

その経験を通してプログラミング学習に成功する人は、「目的目標が明確でそれに合わせた学習プランがあること」「常に相談できる人がそばにいること」「自己解決能力が身につくこと」この3つが根付いている傾向を発見しました。

侍エンジニア塾は上記3つの成功ポイントを満たすようなサービス設計に磨きをかけております。

cta_under_bnr

「自分のスタイルや目的に合わせて学習を進めたいな」とお考えの方は、ぜひチェックしてみてください。

書いた人

侍エンジニア塾ブログ編集部

侍エンジニア塾は「人生を変えるプログラミング学習」をコンセンプトに、過去多くのフリーランスエンジニアを輩出したプログラミングスクールです。プログラミングに役立つ情報や有用な情報を発信していきます。
サービスページはこちら

おすすめコンテンツ

まずはここから!初心者でも1から学べるプログラミング入門カリキュラム

転職成功で受講料0円!あなたもプログラミングを学んでエンジニアデビュー