【初心者向け】Googleが開発したFlutterとは？効率的に学習する方法もご紹介

皆様、こんにちは！フクロウと申します。
今回はGoogleが開発した、フリーでかつオープンソースのフレームワークであるFlutterについて、簡単にご紹介します。
#Flutter(フラッター)とは
使用言語：Dart
開発環境：Linux、Windows、macOS
開発ツール：Android Studio またはVisual Studio Code
Googleが開発したAndroid、iOS、WEBアプリの開発を行うことができるマルチプラットフォームに対応したフレームワークの名称
2018年12月4日に初の正式版「Flutter 1.0」のリリースが発表されたので、比較的新しいフレームワークと言えます。
WindowsとMacの両環境でAndroid/iOSの開発は可能だが、WindowsではAndroidしか実機テストやリリースはできないです。iOSの実機テストやリリースには、別途 Xcodeが必要になります。
### 開発においてのメリット
・WEB開発や、スマホアプリ開発では、複数の言語を学ぶ必要があるが、FlutterではDartを学ぶだけで開発が可能。(Javaやkotlin、swiftとの連携も可能)
・ホットリロードによる開発が可能。
・アプリビルド時は、ネイティブに変換されるため、処理速度が速い。
・Googleが公開し、開発途中であるFuchsia(フクシア)というOSにもDartが使用可能なため、注目が集まっている。
・2019年第一四半期のアンケートでも満足度が高く、将来性があるといえる。
　[2019 年第一四半期の Flutter ユーザー アンケートから見えてきたこと](https://developers-jp.googleblog.com/2019/06/2019-flutter.html)
### 開発においてのデメリット
・コーディングしているうちに、ネストがとても深くなってしまうため、工夫が必要。
・ドキュメントは日本語未対応のため、英語を読む必要がある。
### 効率的な学習方法
2020年8月20日の時点では、参考書が少なく、ある程度は独学が必要ですが、
Udemyなどのオンライン学習サイトで学習する手もあります。
こちらにオススメの参考書をご紹介します。
[「Android/iOSクロス開発フレームワーク Flutter 入門」掌田 津耶乃](https://www.amazon.co.jp/Android-iOS%E3%82%AF%E3%83%AD%E3%82%B9%E9%96%8B%E7%99%BA%E3%83%95%E3%83%AC%E3%83%BC%E3%83%A0%E3%83%AF%E3%83%BC%E3%82%AF-Flutter%E5%85%A5%E9%96%80-%E6%8E%8C%E7%94%B0%E6%B4%A5%E8%80%B6%E4%B9%83-ebook/dp/B07Q19LVW2/ref=sr_1_1?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&dchild=1&keywords=Android%2FiOs%E3%82%AF%E3%83%AD%E3%82%B9%E9%96%8B%E7%99%BA%E3%83%95%E3%83%AC%E3%83%BC%E3%83%A0%E3%83%AF%E3%83%BC%E3%82%AF+Flutter+%E5%85%A5%E9%96%80%E3%80%8D%E6%8E%8C%E7%94%B0+%E6%B4%A5%E8%80%B6%E4%B9%83&qid=1598404579&sr=8-1)
[「Flutter モバイルアプリ開発バイブル」南理 勇気 ](https://www.amazon.co.jp/Flutter-%E3%83%A2%E3%83%90%E3%82%A4%E3%83%AB%E3%82%A2%E3%83%97%E3%83%AA%E9%96%8B%E7%99%BA%E3%83%90%E3%82%A4%E3%83%96%E3%83%AB-%E5%8D%97%E9%87%8C%E5%8B%87%E6%B0%97/dp/4839970874/ref=sr_1_fkmr0_1?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&dchild=1&keywords=%E3%80%8CFlutter+%E3%83%A2%E3%83%90%E3%82%A4%E3%83%AB%E3%82%A2%E3%83%97%E3%83%AA%E9%96%8B%E7%99%BA%E3%83%90%E3%82%A4%E3%83%96%E3%83%AB%E3%80%8D%E5%8D%97%E7%90%86+%E5%8B%87%E6%B0%97&qid=1598404660&sr=8-1-fkmr0)
[「基礎から学ぶ Flutter」石井幸次](https://www.amazon.co.jp/%E5%9F%BA%E7%A4%8E%E3%81%8B%E3%82%89%E5%AD%A6%E3%81%B6-Flutter-%E7%9F%B3%E4%BA%95-%E5%B9%B8%E6%AC%A1/dp/4863542941/ref=sr_1_1?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&dchild=1&keywords=%E3%80%8C%E5%9F%BA%E7%A4%8E%E3%81%8B%E3%82%89%E5%AD%A6%E3%81%B6+Flutter%E3%80%8D%E7%9F%B3%E4%BA%95%E5%B9%B8%E6%AC%A1&qid=1598404620&sr=8-1)
参考書の学習の順番ですが、
基礎は「Android/iOSクロス開発フレームワーク Flutter 入門」を使用して構築方法やdartの書き方を理解し、
関数などの仕組みを学習するなら、「基礎から学ぶ Flutter」を辞書として使用すると効率的に学べると思います。
##Flutterの関数の使い方が不明、または調査したい時
Youtubeがオススメ！
「[Widget of the Week](https://www.youtube.com/watch?v=b_sQ9bMltGU&list=PLjxrf2q8roU23XGwz3Km7sQZFTdB996iG)」といって便利な関数の紹介と使用方法を載せてくれている動画があります。
※音量にご注意ください。
###デザインやアプリのサンプルを見たい！またはデザインのコードを知りたい！
このような場合は、「Marcus Ng」というyoutubeチャンネルが特にオススメです。
[Marcus Ng](https://www.youtube.com/channel/UC6Dy0rQ6zDnQuHQ1EeErGUA)
[Marcus Ng 公式WEBサイト](https://marcusng.com/)
他にも、[The Flutter Way](https://www.youtube.com/channel/UCJm7i4g4z7ZGcJA_HKHLCVw/videos)や[Techie Blossom](https://www.youtube.com/channel/UC3wqIkiaOUpO6EjJoCwH6_Q/videos)もオススメです！
※全て英語です。
### Flutterのパッケージを調べたい！
Flutter専用のパッケージも増えてきており、パッケージを探すためのWEBサイトもあります！
[pub.dev](https://pub.dev/) 
※リンク先は英語です。
※この記事では、パッケージとプラグインを以下のように定義しています。
パッケージとは?
　・Dartで書かれたライブラリ
　・Android、iOS等のプラットフォームは関係ない
プラグインとは?
　・Android、iOS等のプラットフォーム固有の実装も含まれたもの
[Flutter開発に役立つ Package Plugin 10選](https://speakerdeck.com/kuwapp/flutterkai-fa-niyi-li-tu-package-plugin-10xuan?slide=3)の3枚目のスライドを参考にさせていただきました。
### AWSのAmplifyがFlutterをサポート
2020年8月20日にAWS AmplifyがFlutterをサポートすると公式で発表されました。そのため、クラウド型のアプリケーションの開発も可能となったので、さらに期待が高まります！
[AWS AmplifyがFlultterをサポート](https://aws.amazon.com/jp/about-aws/whats-new/2020/08/amplify-flutter-now-available-as-developer-preview/
)
この記事が少しでもお役に立てたら、幸いです。
以上、フクロウでした。