Flutter for 初学者さん
Flutter初学者さんが、どうアプリ開発を学ぶのが良いのか考えてみました。
ってことで、Flutter を学ぶ上で 胡散臭い組織や書籍にお金をかけることもなく 開発ができる様になるためのヒントをまとめてみたいと思います。
0. 環境構築
新しめの Mac を使ってる人向けの情報は書いておきました → M1 MacでサクッとFlutterの環境構築
Windows の方がちょっと大変だと思うけど、今の Windows ってデフォルトで bash 使えるんだっけか。やり方はそんなに大きく変わらないと思うけどどうなんでしょ。詰まったらGoogle でも Twitter でも、stackoverflow でもなんでも使って優しい人に助けてもらってください笑
1. Dartの言語仕様
正直、初学者さんがガッツリここに時間使うと萎えます(心が折れるって言った方がいいかな)。ですので、アプリを作りながら慣れる、わからんことに出くわしたら調べる。ってくらいでいいと思います。ってことでまずは、
あたりの内容をコードを書きながら、ちょっとだけ慣れておく。くらいでいいと思います。
1.1 ここまでで詰まってしまったら
公式のドキュメントは英語です。なので英語が苦手な方は、Google 翻訳や、お金にちょっとだけ余裕があれば DeepL さんに月額 750円 払えば、胡散臭い組織や書籍に数千円払うより得られるものが大きいと思います(二回目)。理由としては、英語を含む多くの情報をかなり正確な翻訳で得られる様になるからです。
また、どうしてもわからなければ テラテイルさんや、日本語版のstackoverflowなどで質問してもいいと思います。
きっと優しい人はいます。
2. Flutter 公式に沿って触ってみる
以下のリンクの内容を翻訳しつつ動かしてみる。
これだけでもなんとなく雰囲気は掴めると思う。英語が苦手な人にとっては敵は英語なだけ。ここでも翻訳ツールを頼り切ってください
3. Constraints について学ぶ
これ結構重要です。今このページの噛み砕いた記事を作ってるのでそのうちリンクを貼りますが、差し当たり翻訳しつつ、コードを書きながら理解するといいと思います。
4. どんな Widget があるのか動画で学ぶ
Flutter公式 Flutter Package of the week は触りの部分の解説集の様なものですが、どんな Widget があるのか、何ができるのかを知るのに大きく役立ちます。
5. (おすすめ) Flutter Mapp
Flutter Map さんもかなり強力な情報源です。Youtubeでの自動翻訳を駆使してどんな Widget があるのか、「使えるWidgetランキング」的な動画もあるので、Flutterの世界の理解を加速してくれるでしょう。
6. 良いデザインを知る
Flutter のデフォルトの UI はどうしてもデフォルト臭さが残ります。どうせ作るならかっこいいアプリを作りたいですよね?
そのためには、まず良いデザインってのが何なのかを知る必要があります。dribble は、世界中のデザイナー向けの SNS です。こちらで作品を公開したり、仕事を受けたりしている様です。美しいデザインを知ると、デフォルトのダサさがちょっとだけ気になるようになります。
7. UXを考える。
もし、作りたいアプリがあるのならば、紙ベースでもいいので画面の構成や、機能を書き出してみましょう。ユーザーをお客様と想定し、僕ら開発者が提供できる最大限のおもてなしを考えます。
UX は簡単に言うと「そのアプリを通じて得る体験」です。たどり着きたい結果に対して、わかりやすくなっているか? とある操作がユーザーの想定される通りの動作になっているか? 面倒臭くないか? と自問と自己否定を繰り返して、ユーザーに愛されるアプリになるよう UI を練り上げていきましょう。
8. 慣れる
いきなり作りたいアプリを作っていくのでもいいかもしれませんが、できるなら沢山の Widget に触れたり、複雑なレイアウトや描画をしてみたりして慣れることが重要です。沢山の問題と触れ合うことで作りたいアプリを作り始めるタイミングでちょっとは選択肢は増えているはずです。
選択肢が多ければ、適切な場面で適切な Widget の選択をすることができ、変に妥協したり遠回りしないで済むかもしれません。その為には多くの Widget に触れるしかないんですよね。
まとめ
あーだーこーだー書いて来ましたが、大抵の場合、ググりゃ何とかなります。この記事でとくに言いたかったのは 翻訳ツールの使い方を洗練させることや、より良い翻訳ツールに投資することは、得られる結果が良くわからないものに投資することより価値があるってことを伝えたかったのです(英語が得意な人にとっては関係のない話ですが、、、)
Discussion