
Flutterとは?なぜ注目されてるの?将来性はあるの?初心者向けに徹底解説!
本日の記事では、今メチャメチャ注目度が上がっているFlutterを紹介します。
Flutterはマルチプラットフォームでアプリ開発ができるオープンソースのUIソフトウェア開発キットになってまして、
一つのコードを書くだけで、Webアプリ、iOSアプリ、Androidアプリが開発できてしまう優れものです。
今後、ますます人気が急上昇していくと思われますので、この記事を参考に、ぜひFlutterの知見を知っていただければ幸いです!
[st-kaiwa1]Flutterの魅力や仕組みをまとめました。ぜひ最後まで読んでみてね![/st-kaiwa1]
目次
Flutterとは?
まず初めに、FlutterとはGoogleが開発したオープンソースのUIソフトウェア開発キットです。
Android、iOS、Linux、Mac、Windows、Web向けのアプリを単一のコードベースで開発可能です。
[st-kaiwa1]UIソフトウェア開発キットや、Linuxなどの専門用語は分からなくても大丈夫です。とにかく、色んなパソコン、スマホで動くアプリが一気に作れると覚えておけば大丈夫です![/st-kaiwa1]
また、パフォーマンスの面でも、ネイティブアプリ専用のプログラミング言語同等のものが作れます。
なので、従来までのシステム開発のように、OS毎に別々のプログラミング言語を使用したり、
そのために複数のエンジニアを採用するコストの軽減が実現できます。
Flutterは誰が作っている?開発元はどこ?
Flutterの開発元はGoogleです。
つまり、巨大なテック企業がFlutterの開発をサポートしているということです。
Flutterの最新リリースは今日現在(2021/9/18)では、2021/9/14が最新リリースなので、活発に更新がされてることが分かります。
下記の表にも記しましたが、Flutterの一番最初のリリースは、2018/2/27になります、結構最近なんですよね!
バージョン | リリース日付 |
2.6.0-5.1.pre | 2021/9/14 |
2.6.0-0.0.pre | 2021/8/26 |
一番最初のリリースは, v0.1.6 | 2018/2/27 |
このように、Flutterは多くの人の手によって活発に更新されており、尚且つGoogle社内の優秀なエンジニア達が日々関わっています。
将来有望であり、採用する側も安心して使えそうですよね。
というのも、多くのオープンソースのソフトウェアというのは、例え多くの人に今使われていても、
- どのくらい頻繁に開発されてるのか?
- 誰がそのソフトウェアを開発してるのか?
がしっかりしてないと、怖くて使えないという欠点があるのですが、Flutterのような、
既に巨大なIT企業が進めるということが決まってるものは、確実に将来伸びると言えます。
オープンソースソフトウェアとは?(OSSとは)
先ほどから、オープンソースソフトウェア(OSS)という言葉が頻発しているのですが、
この言葉が分からない方もいると思うので、付け加えてOSSに関しても説明を書きます。
オープンソースソフトウェア(OSS)とは、著作権者がユーザーに対して、
どのような目的でもソフトウェアとそのソースコードを使用、研究、変更、配布する権利を与えるライセンスのことです。
早い話が、ソースコードを全部公開しているということですね。
Flutterはソフトウェア(つまりアプリ)を作るためのツールですが、そのFlutterも作られたものなわけです。
ちなみに、FlutterはDartというプログラミング言語で作られていまして、FlutterのソースコードはGitHubで公開されています。
プログラミング初心者の方は、ソースコードを読むことは指南の技だと思うので、経験者の方や、興味ある方は覗いてみてはいかがでしょうか?
FlutterのGit Hubを見てみよう
ちなみにGitHubが何かが分からない人のために簡単に付け加えておくと、GitHubというのは、ソフトウェアを管理できる場所なのですが、
流石に全部を説明してると尺が長くなりすぎるので、GitHubが分からない人は、こちらの記事がわかりやすいと思いますので、見てみてください。
この記事では、GItHUbの注目すべき部分を見ることで、そのソフトウェアがどれだけ多くの人に支持され、信頼されているプロジェクトなのか見ることができ流ので、
それだけ紹介しようと思います。FlutterのGitHUbを少しみてみましょう。
簡単にではありますが、注目ポイントに数字をふってみました!
順番に説明していくと、
- 13600人々が、Flutterプロジェクトに何か変更があったときにお知らせ通知を受け取るように設定してるということです
- 2は13万人の人々が、Flutterプロジェクトに対して高評価(スター)を与えたということです
- 3は最新の更新日が3時間前であり、これまでに2万5千881回コードがコミット(更新)されたということになる
これだけを見ても、かなり多くの人から支持され、最新状態に更新されてるということがわかりますよね!
Flutterの強み
では、なぜFlutterはそこまで多くの人に評価されているのでしょうか?
シンプルに、「高性能で使いやすいから」と言ってしまえば、それで終わりなのですが、
今回は自分なりに、Flutterが選ばれる理由をピックアップしてみました。
#Flutter の強みTOP5
①全OSで同じコードとUIを使える
②hot reloadで開発時間の短縮
③SwiftやJavaと同等のパフォーマンス
④複雑なアニメーションが実現可能
⑤ネイティブの実行コードにコンパイルされる#プログラミング #プログラミング初心者と繋がりたい #プログラミング初学者と繋がりたい— りょすけ (@ryosuke_hu) September 18, 2021
全OSで同じコードとUIを使える
Flutterでは、いくつかのデザインパターンが既に用意されています。
例えば、一般的に使われるものとしては、material uiというGoogleが提唱している、
美しいUIを作るルール見たいなものがあります。
Flutterでは、そのテーマを決めることで、殆どのUIは自動で綺麗に描画されます。
さらに、それらはレスポンシブに全てのデバイス、OSで綺麗に描画されるので、
デザイン面での開発速度は圧倒的に上がります。
hot reloadで開発時間の短縮
Flutterには、hot reloadと呼ばれる機能が最初から備わっています。
これは、アプリのコードを変えたときに、一々シミュレーターや環境を再起動させなくても、
部分的に変更があったところのみアプリを更新できるというもので、これが凄く便利です。
ネイティブアプリの開発は、ただでさえビルドが遅くて開発速度が遅延しまくるのですが、
このhot reloadは秒速なので、開発がサクサク進みます。
SwiftやJavaと同等のパフォーマンス
Flutterは、最終的にコンパイルすると、コードは全てネイティブの実行コードになるので、
基本はSwiftとかAndroid Javと変わらないネイティブ同等のパフォーマンスが出せます。
Dartとは?
さて、FlutterはDartで作られてると紹介しましたが、Dartとはなんでしょうか?
[st-minihukidashi webicon=”” fontsize=”” fontweight=”” bgcolor=”#f3f3f3″ color=”#000000″ margin=”0 0 20px 0″ radius=”” position=”” myclass=”” add_boxstyle=””]この記事では、詳しいDartの解説はしませんが、簡単に説明します![/st-minihukidashi]
Dartとは、Webやモバイルアプリなどのクライアント開発用に設計されたプログラミング言語です。
今はFlutter御用達の言語という印象がありますが、元々はJavaScriptの弱点をカバーする為に生まれた言語です。
なんならJavaScriptを超えることを目指して生まれた言語と言える。
#Dart って、今は #Flutter 御用達の #プログラミング 言語みたいになってるが、元々はJSの弱点を補うために開発が始まったとWikiにも書かれてる。つまり、ゆくゆくはJSを超えて今のTypeScriptの位置を目指してたってことですよね。#プログラミング #プログラミング初心者 #プログラミング勉強中
— りょすけ (@ryosuke_hu) September 18, 2021
Wikiにもこのように書かれています。
Dart言語はJavaScript言語にある解決できない言語上の問題点を解決し[8]、なおかつ、より優れたパフォーマンスを発揮し、大規模なプロジェクト用途にも耐え得る特徴を備え、セキュリティ面でもより優れた言語[9]として、設計された
事実、Dartはモバイル向けだけではなく、ウェブアプリとモバイルアプリのクライアント開発向けに設計されたプログラミング言語です。
残念ながら、Googleは公式としてTypeScriptを採用してしまったので、DartがJSに置き換わることは無くなりましたが、
開発元は、こちらもGoogleが開発していますので、サーバーアプリケーションやデスクトップアプリケーションの構築にも使用できる。
そのような柔軟性が、今のFlutterと結びついて、さまざまなOSで使える素晴らしいツールに昇華されたという感じですかね。
Flutterチームも、さまざまなプログラミング言語を検討した結果、自分たちのユーザーインターフェースの構築方法にマッチするDartを選びました。
Dartはマルチプラットフォームの開発をする際に、完全なネイティブコードがコンパイルされるので、パフォーマンスも向上させやすいんですよね。
Flutterを使ってアプリ開発をするには何が必要?
ここまでで、Flutterの魅力は十分に伝わったかと思いますので、次はFlutter開発をするには、何が必要かを紹介しています。
パソコン(iOSやMac OSアプリを作るにはMACが必要です)
まず、もしFlutterでiOSアプリやMac OSのアプリを作りたければMacが必要です。
これは、Flutterの問題というよりかは、XcodeでないとiOSプリが動かないから必要なのです。
テキストエディタ
テキストエディタは、プログラミングをする上ではとても大切です。
なんでも良いのですが、もしFlutterで開発するなら、無料で高性能なVSCodeを使うと良いでしょう。
スマホ実機
Flutterスマホアプリを開発するとき、シミュレーターのソフトで動きを確認できます。
ただし、実機でテストしたい場合もあると思います、そのために、色々なデバイスを用意しておくと良いでしょう。
iOSとAndroidのデベロッパーアカウント
もしも、FlutterアプリをApp StoreやPlay Storeにリリースする場合は、別途デベロッパーアカウントが必要になります。
この記事では、詳しくリリース周りの準びは説明しませんが、Androidであれば最初に三千円くらいの登録費用が必要になる。
iOSだと、毎年1万円くらい費用がかかってきます。
Flutterの使い方を学ぶにはどうすればいい?
さて、ここまでFlutterに関して色々と紹介をしてきました。
では、Flutterを学ぶにはどのような方法があるのでしょうか?
実は、Flutterはまだまだ新しい技術なため、日本語の記事が少なかったりします。
英語ができる人は、英語のドキュメントや動画なんかを見たり読んだりできるかもしれない。
でも、多くの日本人にとって英語というのは、そこまで簡単なものではないですよね。
なので、色々とFlutterを学ぶために便利なサイトや本、教材を紹介します。
FlutterやDartの公式ドキュメント
まずは公式のドキュメントを見ましょう、英語が辛いということであれば、日本語のドキュメントも少しずつネットに揃ってきています。
ここら辺のサイトを見てみると良いかもしれない。
Udemyなどの動画教材
Udemyという動画教材プラットフォームがあります。これを見るのも結構良いです。
講師は、プロのエンジニアが直々にコースを出しているので、YouTubeとかで趣味的に出してる動画とはレベルが違う。
特に、体系的に学ぶのであれば最高の教材だと思っています。
世界最大級のオンライン学習プラットフォーム Udemyで今すぐ学ぶ
プログラミングスクールに通う
Flutterは、これまでにネイティブアプリ開発がない人であれば、独学するのは難しいかもしれません。
なので、プログラミングスクールに通って覚えるのもアリだと思っています。
プログラミングスクールに通う意味っていうのは、色々とあると思うんですが、
FLutterアプリを作れるようになれば、自分でサービス開発して金を稼ぐこともできるし、
別の業界からの未経験転職でも出来るようになると思います。
しかし、プログラミングスクールで今Flutterを教えられるスクールは殆どありません・・・
なので、ぶっちゃけ、もしこの記事を読んでいる方でFlutterやDartを学びたいと思ってる人がいたら、
僕が教えます!僕は現在、Flutter歴は1年ほどあり、リリース経験もあるので、良ければDMで相談ください。
他のプログラミングスクールよりは、遥かに格安で教えられるので。
Flutter 採用の基準は?
ちなみにですが、この記事の想定読者は、結構広めに考えています。
だから、多くの人が、どのような目的でFlutterを知りたいか考えてみようと思いました。
ズバリ、Flutterってどういう時に使えばいい?というものです。
そのツイートがこれ。
スマホ開発ツールの選び方
①資金豊富で徹底的にUI/UXに拘るならSwiftとJava
②社内にWeb人材しかいなければReact Native
③低コストで幅広いOSで動くアプリ作るならFlutter
④ゲームならUnity
⑤社内アプリや簡易アプリならNo Codeこんな感じで考えてる。#プログラミング #プログラミング初心者
— りょすけ (@ryosuke_hu) September 18, 2021
僕が考えるに、Flutterを使ってアプリ開発をするのにベストなタイミングというのは、
高性能なアプリを、低価格で早く作りたいという需要がある場合は、Flutterはとても良い選択肢だと思っています。
ぜひ参考にしてみてください。
Flutter 界隈で有名な人たち
では最後に、Flutterの情報の最新を常に発信してるFlutter界隈で有名な方を紹介して終わります。
もしTwitterをやってれば、ぜひ彼らをフォローしてください。最新のFlutter情報が触れられます。
https://twitter.com/ryosuke_hu/status/1439205464676331525