Dart/Flutter入門者向けハンズオンに参加しました #dartlang_jp
Dart/Flutter入門者向けハンズオンに参加しました。 dartisans-jp.connpass.com
日曜日の昼間(しかも大雨)ということもありちょっと参加者少なめでしたが、会場の熱量は高かったと思います。ばっちりFlutter入門できました。👌
Flutterとは
Flutter is Google’s mobile app SDK for crafting high-quality native interfaces on iOS and Android in record time. flutter.io
Flutter
は、Googleが提供するモバイルアプリ開発のクロスプラットフォームです。シングルコードベースでiOS/Androidアプリを作ることができます。
モバイルアプリのクロスプラットフォームといえばReactNative
やXamarin
が有名ですが、Flutter
も役割としてそれらに並ぶのではないかと期待されています。Cordovaのことはもう忘れました。
読み方は「フラッター」です。(not フルッター)ネイティブ発音を聴くと「フラタァ」と聞こえます。
「フラッ↑ター↑」じゃなくて、「フラッ↑ター↓」なのか #dartlang_jp
— shanon (@shanonim) 2018年5月13日
つい先日開催されたGoogle I/O '18では、Flutter beta3のリリースが発表されました。 www.youtube.com medium.com
Dart
DartはGoogleが開発しているプログラミング言語です。FlutterはDartで開発を行います。 決してメジャーなプログラミング言語ではありませんが、ここ最近のFlutter界隈の盛り上がりによって言語自体の盛り上がりも加速しているようです。今年の2月にはDart 2が発表されました。 www.publickey1.jp
ハンズオンの講師
講師はntaooさん、メンターで4869さんとlacolacoさんがいらっしゃいました。
ハンズオンの内容
大きく3ステップありました。
- Dartの概要を知る
- Flutterの概要を知る
- サンプルアプリを作ってみる(終わったら自分でオリジナルアプリを作る)
資料はこちらです。(@ntaooさん資料リンクありがとうございます!) docs.google.com docs.google.com
FlutterでiOS/Androidアプリを作る
サンプルアプリがこちらです。
HackerNewsのReaderアプリで、ざっくり以下のような機能を持ちます。
- NewsをListViewで表示する
- Newsをお気に入り登録して一覧で表示する
- タップしたらWebViewで記事を表示する
これをDart未経験・Flutter未経験の状態からたった4時間で作ることができました。(iOS/Androidの開発環境・エミュレータのセットアップ時間は除く)
でざっくり4時間です。びっくりです。 もちろん、ちゃんと同じアプリがiOS/Android両プラットフォームのシミュレーターで動きます。
言葉で聞いて知ってはいたものの、実際に見ると感動するな〜 #dartlang_jp pic.twitter.com/8PZUV8CrLM
— shanon (@shanonim) 2018年5月13日
開発について
セットアップが簡単
公式のセットアップ手順を順番に辿るだけで最初のHelloWorld(Flutterアプリ起動)まで容易にたどり着けました。 flutter.io
慣れ親しんだIDEが使える
- Android Studio
- IntelliJ IDEA
- VS Code
今回のハンズオンではIntelliJ IDEA
を使いました。
IntelliJ IDEAでどうやってエミュレータ指定するんだろう・・と思っていたんですが、Runボタンの付近に選択Windowが表示されるので無問題です。
flutter doctor
が便利
コマンドラインからflutterに関する操作を行うときはflutter
コマンドを使うのですが、flutter doctor
というコマンドがセットアップ時において非常に便利でした。開発環境を走査してFlutter開発に必要なライブラリのインストールやアクションを指示してくれます。
Hot Reload
が便利
UIの変更を即座に反映するHot Reload
がサポートされています。コードを変更して『⚡』ボタンを押すだけでリロード完了です。ReactNative
やSPAなWeb開発なら一般的なのかもしれませんが、普段のネイティブアプリ開発の感覚でいると圧倒的な反映速度に感動します。
雑感
Indentのサイズに慣れない
デフォルトだと2
です。「JavaとJavaScriptをmixさせたような見た目」とも揶揄されるDartですが、見た目からなのか4
で使いたいぐぬぬ・・となってしまいました。慣れるしかない。
フォーマッターどうしよう問題
cmd + option + L
でコードフォーマットした時にばしっとキマるいい感じのフォーマッター設定が知りたいかも。
.gitignoreどうしよう
gibo
にはUnknown argument: Flutter
と言われてしまったので、公式を参考にしました。
flutter/.gitignore at master · flutter/flutter · GitHub
サンプルアプリのコード
講師のntaooさんのコードそのまま写経ですが、GitHubにアップしました。 github.com
機能追加の実験などでこれからもアップデートしてみたいと思います。
まとめ
- Flutter、意外とサクッと入門できた。
- 界隈も盛りがってきているので、始めるには良いタイミングかも。
リンク集
公式サイト
Dart Packages
Flutterを始めとしたDart言語での開発で使えるPackageを探すためのサイトです。 pub.dartlang.org
Awesome Flutter
Flutterに関する""Awesome""なライブラリを集めたrepositoryです。 github.com
コードで見るFlutterアプリの実装
konifarさんがDroidKaigi 2018で講演した資料です。一度入門してから読み返すと、さらに理解度が深まります。
コードで見るFlutterアプリの実装 // Speaker Deck
Flutter Japan User Group
Flutterアプリ開発者のコミュニティです。meetupが5/31にあるみたい。 flutter-jp.connpass.com