What’s New in Flutter 2を読んだメモ
Flutter2のキャッチアップするために What’s New in Flutter 2 を読んだので、そのメモです〜
Web
- webのサポートが安定版になったよ
- HTMLレンダラーに加えて、CanvasKitベースのレンダラーも追加したよ
- これでコードの再利用性も高まる
Sound Null Safety
- Dart 2.12に追加された機能で、Flutter2でも完全対応された
- nullable型とnon-nullable型を区別することで型システムを強化してる
- null safeのパッケージ開発者はマイグレーションガイドを見て移行してね
Dartのドキュメントでもあった Dart is a sound language.
の sound
の意味がよくわからなかったけど、堅牢とか健全とかいうニュアンスっぽい
refs: types - What is a sound programming language? - Stack Overflow
Desktop
- 早期リリースフラグ(β版?)として安定版でも利用できるようになったよ
- 今年後半に安定版リリースの予定
- テキスト編集やマウス操作の検知、スクロールバーあたりが強化されたっぽい
- コマンドライン引数の処理が可能になった
- IMEも有効にできるようになった
Flutter Folio scrapbooking app
- いろんな画面サイズや入力方法に対応するにはどうしたらいいか、という疑問に答えるために、Flutter Folioスクラップブックアプリを作成したよ
- 単一コードベースで複数のプラットフォームでいい感じに動作させる簡単な例になってる
- このようなアプリをプラットフォーム適応型と呼んでる
- 複数プラットフォーム対応するときに困ったらソースコードが参考になるかも
refs:
Google Mobile Ads to Beta
新しいiOSの機能
- iOSまわりも色々新機能を追加したよ
- xcodeを起動せずに、コマンドラインからIPAをビルドできるようになったよ
- 他iOSウィジェットがいくつか追加されたよ
- シェーダーやアニメーションまわりのパフォーマンス改善も引き続きやっているよ
新しいウィジェット: Autocomplete と ScaffoldMessenger
- AutocompleteCoreとScaffoldMessengerという2つの新しいウィジェットが追加された
- AutocompleteCoreはオートコンプリート機能のためのウィジェット
- ScaffoldMessengerはSnackBar関連の問題解決のためのウィジェット
Add-to-Appによる複数のFlutterインスタンス
- 既存のアプリにFlutterを追加する際の Add-to-App機能で、Flutterインスタンスを追加したときのメモリコストを大幅削減(99%ダウン)
Flutter Fix
- Flutter Fix = Flutter APIの改善をつづけていく際に開発者をサポートするツール類
dart fix --dry-run
でプロジェクト全体の修正項目を確認できる (適用までしたいときはdart fix --apply
- IDEでもインタラクティブに修正することが可能
- 非推奨APIの削除についてのポリシー
- https://medium.com/flutter/deprecation-lifetime-in-flutter-e4d76ee738ad
- 1年または4回の安定版リリースのうち、いずれか長い方
- https://medium.com/flutter/deprecation-lifetime-in-flutter-e4d76ee738ad
Flutter DevTools
- DevToolsの名前をFlutter DevToolsにしたよ
- IDEでも例外が発生したときに、DevToolsのオプション指定の提案などをしてくれるようになった
- 今はlayout overflowの例外にのみ対応しているけど、ゆくゆくは他の一般的な例外も同様にできるようにする予定
- DevToolsを起動すると、タブ上にエラーバッジを表示して特定の問題を追跡しやすくしたりしている
- もう一つの新機能は、表示されているよりも高い解像度の画像を簡単に見ることができる機能で、アプリのサイズやメモリの過剰使用を追跡するのに役立つ
- この機能を有効にするには、Flutterインスペクタの「Invert Oversized Images」を有効する
- 表示サイズより解像度が大幅に大きい画像が上下逆さに表示されるようになる
- その他レイアウトまわりのデバッグが可能になったり、いろいろな機能を追加している
Android Studio/IntelliJ Extension
- IntelliJ系のIDEのためのプラグインに色々新機能を追加したよ
- プロジェクト作成ウィザードも新しくなった様子
- M51
- M52
- Android Studio 4.2以降、新しいプロジェクト作成ウィザードになった
- M53
- プロジェクト作成ウィザードでプラットフォーム選択できるようになった
- Render overflowエラーが出たとき、通知をクリックすると原因のウィジェットがDevToolsに表示されるようになった
- 今までコードの横に色のプレビューが強制表示されていたけど、カラーアイコンをクリックすると、デフォルトのカラーピッカーが立ち上がるようになった
- ANSIカラーエスケープシーケンスを使ってIDEのコンソールの出力をカラー化することができるようになった
- Flutter SnapのパスがLinuxの既知のSDKパスのリストに追加されたので、LinuxユーザはFlutterの設定が簡単になった
- DevToolsのインストール時に問題が起きたとき、再インストールできるようになった
- M54
- DevToolsのサーバー起動を効率化
- flutter attachの引数用のフィールドを追加
- canary buildのベースが安定版に切り替わったので、なんか色々対応が必要らしい(よくわからなかった)
Visual Studio Code Extension
DartPad updated to support Flutter 2
- DartPadもFlutter2サポートされるようになった
Ecosystem updates
- プラグインまわりも色々アップデートされているので、以前試してうまく行かなかった人はまた試してほしい
- アプリクラッシュのレポートがほしいときは、sentryがFlutterアプリ用のSDKを公開したので検討するといいかも
- プラグインたくさんあって検討が大変になってきたので、いろいろな指標や品質が高いパッケージに"Flutter Favorite"マークをつけたよ
- pub.greenサイトで最近のバージョンで動くかもチェックできるようになったよ
目玉としてはWebが安定版になったのと、Desktopがベータ版になったあたりかなぁという印象。あとはDartがNULL安全になったので、Flutter2でもそれに完全対応したよというあたりも大きな変更っぽい。
あとは、前々からオートコンプリート機能実装のときに結構パッケージを探したりして手間がかかっていたので、 AutocompleteCore
の追加は気になるところだなー。
パッケージ探しもなかなか大変だったので、 "Flutter Favorite"マークは参考になりそうで助かる。
ひとまず自作アプリのFlutter2対応を早く進めなくては💨
UdacityのBuild Native Mobile Apps with Flutterコースを受けてみる その2
結構日数が経ってしまいましたがその2です。 前回に引き続き、UdacityのFlutterコースの受講メモを書いていきます。 今回はFlutterの内部の動きやウィジェットの紹介の話(7〜11回)でした。
Udacityのコース www.udacity.com
7.Flutter's Reactive Framework
- Flutter
- Widget
- ウィジェットはFlutterアプリの基盤
- ウイジェットはユーザインタフェースの一部で、ほぼすべてのウィジェットはDartで書かれている
- レイアウトのカスタマイズやテキスト配置のための個別のファイルは無い
- 一つのFlutterウィジェットの中で、すべての必要なコードは定義される
- Widget Lifcycle
- ユーザ入力やアニメーションなどによってUIの状態が変わったとき、ウィジェットは新しい状態に従って自身を再構築する
- UIを状態の関数として定義できる
- UIの状態が変わった時、UIを更新するためだけのコードを書く必要は無い
- Flutterの内部での動き
- フレームワークはレンダーツリーの更新のために最小限の変更を決めるための差分を作る
- レンダリングエンジンが自体がアプリの一部であるので、UIのレンダリングコードをネイティブプラットフォームにブリッジする必要は無い
- レイアウトとレンダリングの呼び出しは、デバイスのカメラのようなプラットフォーム固有の呼び出しよりはるかに頻繁に発生する。すべてのレンダリング作業をアプリ側で行うことで、Flutterは高速なウィジェットツリーの描画、再描画を行うことができ、それに従いリッチな動きとスムーズなスクロールができる。
- このレンダリングエンジンは、2DグラフィックスのレンダリングライブラリであるSkiaとDartで構築されていて、IOSとAndroidデバイスの両方にウィジェットを表示できる
- 各プラットフォームはウィジェットを配置するためのキャンバスを提供するだけで良い
8.Flutter's Development Tools
- ウィジェットの説明に入る前にFlutterの3つの開発ツールの紹介
- ホットリロード
- ウィジェットインスペクタ
- ChromeのWeb Inspectorみたいなもの
- デバイスのピクセル、ウィジェット、ウィジェットツリー、アプリでウィジェットが生成されたコード行を行き来できる
- インスペクタモードを使用するときはアプリが実行されている必要がある
- AndroidStudioの view > tool windows から開く(もしくはウィンドウ右端のタブ)
- Xのついた丸いアイコンが inspect ボタン
- 2つの長方形のアイコンはプラットフォーム切り替えボタン
- inspect ボタンを押してinspectモードにするとアプリの画面が青くなり、特定のウィジェットを検査できる
- アプリ画面左下に出ている虫眼鏡アイコンをクリックすると、ウィジェットを選択できる
- インスペクタを利用してウィジェットのパディング等の値を見ることができる
- コードの自動整形
9. The Wonderful Things about Widgets
- Widget
- StatelessWidget
- 不変
- プロパティがfinalになっているので、一旦作成すると変更できない
- StatefulWidget
- ステートオブジェクトを持つ
- 詳細は後で
- Widgetがレイアウトでどのように使われるか
- Widgetは一部のパラメータを解析してインスタンス化される
- コンテナウィジェットはアプリの分割や既存のWidgetの修飾など色々な用途に使われるWidget
- webでいうと、コンテナウィジェット=React Nativeのdivみたいなもの
- コンテナウィジェットをカスタマイズするには、widthやheightなどのプロパティを入力していく
- 殆どのWidgetは child または children プロパティを持っていて、Widgetを入れ子にするときに使う
- child プロパティは paddingやマテリアルアプリなど、1つの子だけを持つwidgetに存在する
- childrenプロパティは子にリストをとるような、column、ListViewウィジェットに存在する
- 子を持たせなくてもよい(デフォルト動作)し、わざわざnullを入れたりする必要もない
10. Quiz: Explore Flutter Widgets
- Widgetに慣れるためのクイズ
- シナリオごとに適切なWidgetを選択する
- https://flutter.dev/docs/development/ui/widgets から適切なWidgetを探す
WIdgetの数がかなりたくさんあるので、しっかり覚えていかないとなーという感じでした。 Youtubeで公式が今週のウィジェットという動画を出しているので、こちらもチェックしていきたいです。
Flutter Widget of the Week - YouTube
次回は 11.Dissect Hello Rectangle から。
そろそろ手を動かすターンに入りそうなので楽しみです。
UdacityのBuild Native Mobile Apps with Flutterコースを受けてみる その1
チュートリアルを一通り終えたので、おすすめされていたUdacityの Flutter コース(無料)を受けてみています。英語なので必死にメモを取りつつやっているので、ここに残しておこうと思います。
今回はイントロダクションから最初の演習まで。
Udacityのコース www.udacity.com
1. Introduction
- FlutterはGoogleのモバイルUIフレームワークで、ひとつのコードでiOS/Androidアプリの高速なビルドができる
- Flutterはオープンソース
- Flutterは以下のものを含む
- 今回のコースの焦点は以下の通り
- 学べること
2.Why Flutter?
- ユーザはスムーズなアニメーションや良いパフォーマンスを期待しているが、それだけでは成功するアプリとしては不十分
- ユーザに愛されるアプリになるためには、品質やパフォーマンスを妥協せず、素早い新機能実装が求められる
- Flutterは一つのコードで、各プラットフォームのバイナリを出力するので、開発効率とパフォーマンス両方を得られる
3.Why Dart?
- Dartは簡潔、型付け、オブジェクト指向の言語
- Swift, C#, Java, JavaScriptをやっていたら親しみやすいかも
- Dartがモバイル開発に適している理由としては、まずアクティブな開発環境や本番環境でパフォーマンスが良いこと
- JITと事前コンパイルをサポートしている
- JITコンパイルでは、直接起動中のデバイスにリコンパイルされるので、ホットリロードが実現されている。それにより、高速な開発サイクルが可能になっている
- 事前コンパイルは、ARMコードに直接コンパイルされるため、高速なスタートアップや予想通りのパフォーマンスを発揮できる。これはリリースビルドに適している
- また、Dartは静的型付け、堅牢な型システム(※)のため、コンパイル時にバグを見つけやすい
- ※ sound type system の意味がわからなかったのでググったところ、この場合のsound は頑丈な、や堅牢な、という意味合いのようす。
- dartのドキュメント https://dart.dev/guides/language/type-system#what-is-soundness
- 同じ質問がstackoverflowにもあった https://stackoverflow.com/questions/49360792/what-is-a-sound-programming-language
4.Set Up Your Environment
- https://flutter.io/setup ここに従って環境をセットアップする
- AndroidStudioを使う場合は3.1.xのバージョンにすること
- エミュレータのセットアップはこちら https://developer.android.com/studio/run/managing-avds
- もしわからない場合はPixel2と最新のSDKを入れるようにする
- エラーが起こったときは、Github issues、StackOverflowで #Flutter タグを参照する(もしくはissueを立てたりする)
- 参考のリンク先
- Documentation: https://docs.flutter.io/
- Github: https://github.com/flutter/flutter
- StackOverflow: https://stackoverflow.com/questions/tagged/flutter
- Gitter: https://gitter.im/flutter/flutter
5.Build a Flutter App
- 正しくセットアップできたかの確認も兼ねてサンプルアプリ(HelloRectangle)をビルドする
- AndroidStudioの Create a new Flutter project で作るか、コマンドラインから flutter create hello_rectangle でも作れる
- 様々なファイルが自動生成されるが、これは各プラットフォームごとにディレクトリが作られていることにも注意する
- 色々気になるけど、ひとまず lib/main.dart を見ればOK
- ここからFlutterアプリが起動される
- https://github.com/flutter/udacity-course/blob/master/course/01_hello_rectangle/solution_01_hello_rectangle/lib/main.dart ここのコードをmain.dart(自動生成されたコードは消しておく)にコピペ
- エミュレータor実機でrunする
6. Quiz: Build the Hello Rectangle App(演習問題)
- ゴール
- AndroidStudioがセットアップされることの確認
- Flutterプラグインがインストールされていることの確認
- アプリの実行
- ステップ
- アプリ作成(コマンドラインorAndroidStudioのメニューから)
- lib/main.dart の内容を削除する
- https://github.com/flutter/udacity-course/blob/master/course/01_hello_rectangle/solution_01_hello_rectangle/lib/main.dart ここからHelloRectangleアプリのコードを lib/main.dart にコピペする
- 実機もしくはエミュレータでビルドし、アプリを起動する
- 確認すること
- タイトルがあるか
- AppBarにタイトルがあるか
- 四角形は画面中央に表示されているか
- テキストが中央に表示されているか
次は 7.Flutter's Reactive Framework から
MacでFlutterの環境構築(2020年7月)
9年ぶりの記事……😇
最近Flutterの勉強を始めたので、覚書き等投稿していきます。 まずは環境構築から。
公式サイトはこちら
こちらの手順のままでも十分できるのですが、Xcodeまわり、AndroidのAVDマネージャまわりがちょっと変わっていました。
Flutter SDKの取得
macOS install - Flutter からダウンロード or バージョンを固定したくない場合は下記コマンドでリポジトリをgitからcloneします
$ git clone https://github.com/flutter/flutter.git
使っているshellの.rcファイルに↓を追記してflutterのパスを通します。
$ vi ~/.zshrc # For Flutter export PATH="$PATH:`SDKをダウンロード or git cloneしたディレクトリのパス`/flutter/bin"
Flutterは基本的に必要に応じて固有のバイナリファイルなどをダウンロードしますが、事前にすべてダウンロードしておきたいというような場合(インターネットに繋げない環境になるなど)は下記コマンドを実施しておきます。
$ flutter precache
Flutter doctorコマンド
Flutter doctorコマンドでは、必要なライブラリが不足していないかなどをチェックしてくれたりします。何かflutterコマンドでエラーが出たときは、とりあえずこのコマンドを実行するとよさそう。
まっさらの環境でここまで実施した時点でdoctorコマンドを実行すると、下記のようになるはずです。
$ flutter doctor Downloading Dart SDK from Flutter engine dcc9a4048da890660f0880b4c2afed7c9470d335... % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 255M 100 255M 0 0 3559k 0 0:01:13 0:01:13 --:--:-- 5705k Building flutter tool... ╔════════════════════════════════════════════════════════════════════════════╗ ║ Welcome to Flutter! - https://flutter.dev ║ ║ ║ ║ The Flutter tool uses Google Analytics to anonymously report feature usage ║ ║ statistics and basic crash reports. This data is used to help improve ║ ║ Flutter tools over time. ║ ║ ║ ║ Flutter tool analytics are not sent on the very first run. To disable ║ ║ reporting, type 'flutter config --no-analytics'. To display the current ║ ║ setting, type 'flutter config'. If you opt out of analytics, an opt-out ║ ║ event will be sent, and then no further information will be sent by the ║ ║ Flutter tool. ║ ║ ║ ║ By downloading the Flutter SDK, you agree to the Google Terms of Service. ║ ║ Note: The Google Privacy Policy describes how data is handled in this ║ ║ service. ║ ║ ║ ║ Moreover, Flutter includes the Dart SDK, which may send usage metrics and ║ ║ crash reports to Google. ║ ║ ║ ║ Read about data we send with crash reports: ║ ║ https://flutter.dev/docs/reference/crash-reporting ║ ║ ║ ║ See Google's privacy policy: ║ ║ https://policies.google.com/privacy ║ ╚════════════════════════════════════════════════════════════════════════════╝ Downloading Material fonts... 2.4s Downloading Gradle Wrapper... 0.3s Downloading package sky_engine... 0.7s Downloading flutter_patched_sdk tools... 23.3s Downloading flutter_patched_sdk_product tools... 4.5s Downloading darwin-x64 tools... 21.1s Downloading libimobiledevice... 1.1s Downloading usbmuxd... 0.3s Downloading libplist... 0.3s Downloading openssl... 0.7s Downloading ios-deploy... 0.6s Downloading darwin-x64/font-subset tools... 1.0s Downloading android-arm-profile/darwin-x64 tools... 11.4s Downloading android-arm-release/darwin-x64 tools... 1.1s Downloading android-arm64-profile/darwin-x64 tools... 0.9s Downloading android-arm64-release/darwin-x64 tools... 1.6s Downloading android-x64-profile/darwin-x64 tools... 0.9s Downloading android-x64-release/darwin-x64 tools... 1.0s Doctor summary (to see all details, run flutter doctor -v): [✓] Flutter (Channel master, 1.21.0-2.0.pre.114, on Mac OS X 10.15.5 19F101, locale ja-JP) [✗] Android toolchain - develop for Android devices ✗ Unable to locate Android SDK. Install Android Studio from: https://developer.android.com/studio/index.html On first launch it will assist you in installing the Android SDK components. (or visit https://flutter.dev/docs/get-started/install/macos#android-setup for detailed instructions). If the Android SDK has been installed to a custom location, set ANDROID_SDK_ROOT to that location. You may also want to add it to your PATH environment variable. [✗] Xcode - develop for iOS and macOS ✗ Xcode installation is incomplete; a full installation is necessary for iOS development. Download at: https://developer.apple.com/xcode/download/ Or install Xcode via the App Store. Once installed, run: sudo xcode-select --switch /Applications/Xcode.app/Contents/Developer sudo xcodebuild -runFirstLaunch ✗ CocoaPods not installed. CocoaPods is used to retrieve the iOS and macOS platform side's plugin code that responds to your plugin usage on the Dart side. Without CocoaPods, plugins will not work on iOS or macOS. For more info, see https://flutter.dev/platform-plugins To install: sudo gem install cocoapods [!] Android Studio (not installed) [✓] VS Code (version 1.47.2) [!] Connected device ! No devices available ! Doctor found issues in 4 categories.
AndroidSDKまわり、AndroidStudio、Xcode、使えるデバイスが無いよ〜という結果になります そのあたりは次のセクションで入れていくので、いったんはこのままで次に進みます。
動作確認用のアプリを作る
次セクションでセットアップする環境の動作確認用にアプリを作っておきます
$ flutter create my_app
これでカウンターアプリが作成されます。
各プラットフォームの設定
MacではiOS/Android/Webの開発ができるので、最低各環境のうち1つのセットアップを完了させていきます。今回はiOSとAndroidのセットアップを説明していきます。
iOS
Xcodeのインストール
AppStoreからインストールします
apps.apple.comインストールが終わったら、Xcodeを開くか、コマンドラインからライセンスの同意をおこないます。
最新のコマンドラインツールを使うよう下記コマンドで設定します。
$ sudo xcode-select --switch /Applications/Xcode.app/Contents/Developer $ sudo xcodebuild -runFirstLaunch
あとは、実機へのデプロイに使うためのgemをインストールしておきます。(今回実機へのデプロイ手順の説明は省いています。必要な方は macOS install - Flutter 参照してください)
$ sudo gem install cocoapods $ pod setup
iOSシミュレータのセットアップ
下記コマンド(もしくはXcodeから)シミュレーターを開きます。
$ open -a Simulator
File>OpenDeviceから64bitデバイス(iPhone5s以上)を選択していることを確認します。公式サイトではHardware>Deviceとなっていますが、Xcode9からなくなっているメニューのため、Fileメニューから確認します。
公式サイトでは、次にWindow > Scaleからサイズの調整の項目がありますが、こちらもXcode9からは、ドラッグして任意のサイズに変更できるようになったので、なくなっているメニューになります。
動作確認
シミュレーターを起動した状態で、動作確認用アプリのディレクトリに移動後下記コマンドを実行します
$ cd my_app $ flutter run Downloading ios tools... 12.0s Downloading ios-profile tools... 7.3s Downloading ios-release tools... 83.0s Launching lib/main.dart on iPhone SE (2nd generation) in debug mode... Running Xcode build... └─Compiling, linking and signing... 59.1s Xcode build done. 83.4s Waiting for iPhone SE (2nd generation) to report its views... 4ms Syncing files to device iPhone SE (2nd generation)... 182ms Flutter run key commands. r Hot reload. 🔥🔥🔥 R Hot restart. h Repeat this help message. d Detach (terminate "flutter run" but leave application running). c Clear the screen q Quit (terminate the application on the device). An Observatory debugger and profiler on iPhone SE (2nd generation) is available at: http://127.0.0.1:50135/vCEgznKhEwY=/
シミュレーターを見るとカウンターアプリが表示されているはずです。
Android
ここではAndroidStudioをインストールが必要になりますが、実際開発していく際は他のエディターを使うことも可能です。私はAndroidStudioを使っていますが、vim等も使えるようです。
AndroidStudioのインストール
Download Android Studio and SDK tools | Android Developers からAndroidStudioのダウンロード&インストールします。
初回起動時、AndroidStudioのセットアップウィザードが開くので、最新版のAndroidSDK,Android SDK Command-line Tools, and Android SDK Build-Toolsをインストールします(特に特別な事をしなくても勝手にインストールされるので、デフォルトのまま Next
ボタンで進めて行けばよいです。
プラグインのインストール
Preferences > Plugins
から、Flutter
プラグインをインストールします(この時一緒に Dart
のプラグインもインストールされます)
Androidエミュレータのセットアップ
ハードウェアアクセラレーションの設定
AndroidStudioでAVD Managerを開きます。
AndroidStudioを開いた時に出るウィンドウの右下の Configure
から AVD Manager
を選択します。
(上記ウィンドウではなく、通常のコード編集ウィンドウが開いている場合は、 Tools > Android > AVD Manager
から開きます)
AVD Managerが開いたら、 +Create Virtual Device...
から新規作成を行います。
Choose a device definition
では、 Play Store
が無いものを選ぶようにします。バグ?なのか、Play Store があるdeviceにすると、ハードウェアアクセラレーションが選択できなくなるためです…。(refs:
https://stackoverflow.com/questions/53016119/why-cant-i-change-the-emulated-performance-graphics-setting-in-the-android-v )
作成できたら、Verify Configuration
の Emulated Performance
で Hardware - GLES 2.0
を選択します。
これでAVDの設定は完了です。
動作確認
まず下記コマンドでAndroidSDKのライセンスの同意を行います。
$ flutter doctor --android-licenses Warning: File /Users/xxxx/.android/repositories.cfg could not be loaded. 6 of 7 SDK package licenses not accepted. 100% Computing updates... Review licenses that have not been accepted (y/N)? y 1/6: License android-googletv-license: --------------------------------------- Terms and Conditions This is the Google TV Add-on for the Android Software Development Kit License Agreement. (...中略...) All SDK package licenses accepted
エミュレータを起動した状態で、動作確認用アプリのディレクトリに移動後下記コマンドを実行します
$ cd my_app $ flutter run Using hardware rendering with device sdk gphone x86 arm. If you notice graphics artifacts, consider enabling software rendering with "--enable-software-rendering". Launching lib/main.dart on sdk gphone x86 arm in debug mode... Checking the license for package Android SDK Build-Tools 28.0.3 in /Users/xxx/Library/Android/sdk/licenses License for package Android SDK Build-Tools 28.0.3 accepted. Preparing "Install Android SDK Build-Tools 28.0.3 (revision: 28.0.3)". "Install Android SDK Build-Tools 28.0.3 (revision: 28.0.3)" ready. Installing Android SDK Build-Tools 28.0.3 in /Users/xxx/Library/Android/sdk/build-tools/28.0.3 "Install Android SDK Build-Tools 28.0.3 (revision: 28.0.3)" complete. "Install Android SDK Build-Tools 28.0.3 (revision: 28.0.3)" finished. Checking the license for package Android SDK Platform 28 in /Users/xxx/Library/Android/sdk/licenses License for package Android SDK Platform 28 accepted. Preparing "Install Android SDK Platform 28 (revision: 6)". Running Gradle task 'assembleDebug'... "Install Android SDK Platform 28 (revision: 6)" ready. Installing Android SDK Platform 28 in /Users/xxx/Library/Android/sdk/platforms/android-28 "Install Android SDK Platform 28 (revision: 6)" complete. "Install Android SDK Platform 28 (revision: 6)" finished. Running Gradle task 'assembleDebug'... Running Gradle task 'assembleDebug'... Done 232.2s (!) ✓ Built build/app/outputs/flutter-apk/app-debug.apk. Installing build/app/outputs/flutter-apk/app.apk... 1.4s Waiting for sdk gphone x86 arm to report its views... 10ms Syncing files to device sdk gphone x86 arm... 269ms Flutter run key commands. r Hot reload. 🔥🔥🔥 R Hot restart. h Repeat this help message. d Detach (terminate "flutter run" but leave application running). c Clear the screen q Quit (terminate the application on the device). An Observatory debugger and profiler on sdk gphone x86 arm is available at: http://127.0.0.1:56194/sN9MGqne9Qo=/
エミュレータにカウンターアプリが表示されればOKです。
最後の確認
最後に flutter doctor
コマンドを実行してみます。
$ flutter doctor Doctor summary (to see all details, run flutter doctor -v): [✓] Flutter (Channel master, 1.21.0-6.0.pre.3, on Mac OS X 10.15.5 19F101, locale ja-JP) [✓] Android toolchain - develop for Android devices (Android SDK version 30.0.1) [✓] Xcode - develop for iOS and macOS (Xcode 11.6) [✓] Android Studio (version 4.0) [✓] VS Code (version 1.47.2) [!] Connected device ! No devices available ! Doctor found issues in 1 category.
使えるデバイスが無いとは言われていますが、これはエミュレータ等を起動 or 実機を接続していないためなので、特に問題はありません。
レイアウトxmlファイルが開けない
私が遭遇したエラーではないですが、メモとして残しておきます。
レイアウトXMLファイルを開こうとすると、下記のようなエラーが出てファイルが開けない
エラーが発生しました。詳細については、エラー・ログを参照してください。 com.android.ide.eclipse.adt.internal.editors .layout.configuration.ConfigurationComposite .setFile(Lorg/eclipse/core/resources/IFile;)
Eclipse3.6でADTをバージョンアップすると出るらしいです。
そんな時はeclipseを-cleanオプションを付けて再起動すると解消されるかもです。
MacOSX v10.6.6でrvmを使ったruby1.9のインストールができない
**ruby1.9がインストールできない>