Flutter/Dartを始めたときに参考になったものたち

2018年4月からFlutter/Dartを勉強し始めました。

それまではずっとiOS/Swiftをやっていたので、何から手をつければいいかわからずとにかく色々な記事やサイトを漁って勉強してきました。

まだ勉強中&初心者であるのには変わりないんですが、自分が参考になったもの・あまり参考にならなかったものはそれなりに溜まってきたので、同じくFlutter/Dartの勉強を始めたいけど何からやればいいかわからない方のお役に立てればと思い、この記事を残します(環境構築の話はしません)。


0. 勉強を始める前に

別に実戦導入しないよという人は多いと思いますが、実戦でFlutterを使おうが使わまいが、実際の導入事例の記事を読むとFlutter開発のイメージが湧きます。

以下の2つの記事が日本語だと最も参考になる記事かなと個人的に思っています。


1. まずは公式

これは書かなくても誰でも当たり前に読むところだと思います。

やはり公式は一番正確で新しい情報が書いてあるのでここをすっ飛ばすのは良くないかと。

公式の中でも特にオススメのところをピックアップします。

Dart

FlutterはDartを使って開発するので、まずはDartを学ぶのをオススメします。

Dartに関しては、まずは「A Tour of the Dart Language」を読むのがオススメです。

読むだけで理解できるところもありますが、しっくりこないこともあるので、僕はDartPadというWeb上でDartを実行できるサービス(公式が提供)で気になったところを実際に書きつつ勉強しました。

DartPadじゃなくても、ローカルにDartを入れて実行するのでもいいと思います。

実際に手を動かすことで理解が深まるのと、A Tour of the Dart Languageを読んでて、「じゃあこういう場合はどうなるんだろう?」と疑問が出たときに実際に動かせて「なるほど」となるので良かったです。

A Tour of the Dart Languageを読めば大体Dartがどんな言語かというのはわかると思うので基本はこれだけで大丈夫ですが、これに加えて実践よりのサンプルを読みたい場合は「Sample Code」を、Dartのお作法をしっかり知っておきたい場合は「Effective Dart」を読むことをオススメします。

Flutter

こちらも素直にまずはGet Startedを進めていくのが無難に思います。

特にGet Startedの「Write Your First Flutter App」はシンプルなリスト表示+state更新+画面遷移を学べるので良いです。

その次は「A Tour of the Flutter Widget Framework」がオススメです。

Write Your First Flutter Appに加えてこれを一通りやると大体Flutterの雰囲気がつかめてくると思います。

加えて「Building Beautiful UIs with Flutter」もやっておくとなお良いかなーと。

絶対にやるべき!というレベル感ではないと思います。

あとは「Cookbook」と「Widget Catalog」をさらっと目を通しておくのをオススメします


2. オープンソースを読む

公式を一通り読み終えたら、より実戦的に使われているオープンソースを読むのがいいかと思います。

オススメはkonifarさんのDroidKaigiのオープンソースです。

勉強会のアプリとはいえ、実際にアプリとしてリリースされているものであってよくできているのでとても参考になります。

実際にアプリを触りながら「ここどうやって実装しているんだろう」とソースコードを読むと勉強になるのでオススメです。

加えて、以下のawesome-flutterにはライブラリだけでなく、記事やオープンソースも載っているのでここから辿って色々読むのもオススメです。


3. 実際に作ってみる

やはり自分でこれを作ろうと頭に描いたものを実際に自分で手を動かして作るのが一番勉強になります。

私の場合は、1の公式で作った簡単なものをアレンジしたり、Qiitaクライアントを作ったりしました。

他の開発者の方もよく作っているかと思いますが、QiitaクライアントやGitHubクライアントは、APIを叩いてリスト表示するという単純なものですが、サンプルよりも実戦に近いがために実戦で使うときはこんな感じかと想像力が働くので個人的にはオススメです。

めちゃくちゃシンプルかつアーキテクチャや拡張性を考えていませんが、もし参考にしたい方がいたらどうぞ↑

作ってるとライブラリを使うことにはなるんですが、Dart Packagesで他にどんなライブラリがあるのかと調べたりするのも楽しい&勉強になります。


まだまだ私も初心者なので、これからも勉強に励みたいと思います!

はてなブログにもメモ程度の記事をたまに書いてあるので良かったらどぞ。


Twitterはこちら https://twitter.com/kitoko552