<

Flutter 1.5.4 リリースノート

1.2 リリース以来、引き続き品質と安定性に重点を置いていることに加えて、Google I/O カンファレンスに向けて、Flutter 1.5.4 安定版リリースでは一連の新機能が追加されています。さらに遠く、Apple には iOS SDK 12.1 バージョンに対するビルド期限がある、今回のアップデートでこれを行うようになりました。 Apple の要件を満たすには、1.5.4 安定版リリースをプルダウンし、Apple Store で Flutter アプリをビルドして更新するだけです。

また、このビルドでは、Flutter 1.2 で確認された 2 つの回帰が修正されています。

  • #28640NoSuchMethodError: **android.view.MotionEvent.isFromSource は閉じられ、1.3.7 以降のすべてのバージョンで修正されました
  • #28484Flutter の更新以降、ウィジェットのレンダリングがおかしくなります:** 変更が加えられ、1.4.0 でこの回帰が修正されました。

最後に、その他の修正と新機能の詳細については、読み続けてください。

重大な変更

私たちの最近の調査によると、Flutter 開発者は、Flutter の API と動作を改善することを意味する場合、破壊的な変更を好むことがわかりました。もちろん、破壊的な変更は控えめに行っています。以下は、このリリースの重大な変更のリストと、各変更の完全な説明と Flutter コードでの処理方法へのリンクです。

  • flutter#26261: CupertinoTextField の CursorColor のデフォルトがアプリのテーマと一致するようになりました (お知らせと緩和策)
  • flutter#26026: 生の EditableText を使用する場合、選択ツールバーを手動でトリガーする必要があります (お知らせと緩和策)
  • flutter#23148: Firebase Messagng Plugin で Android と iOS の応答を統合するための修正を提案 (お知らせと緩和策)
  • flutter#28014: PointerEvent を診断可能に変換 (お知らせと緩和策)
  • flutter#20183: CupertinoTextField: 提供された TextStyle とテーマの TextStyle をマージします (お知らせと緩和策)
  • flutter#20693: 長押し後の LongPressGestureRecognizer の移動でイベントが破棄されなくなりました (お知らせと緩和策)
  • flutter#20693: GestureRecognizerState 列挙型に新しい「accepted」値が追加されました (お知らせと緩和策)
  • flutter#18314、 flutter#22830、 flutter#23424: Drag moveBy 呼び出しは 2 つに分割され、ドラッグ レコグナイザーを備えたすべてのウィジェットのデフォルトの DragStartBehavior が DragStartBehavior.start に変更されます (お知らせと緩和策)
  • flutter#27891: すべてのプラットフォーム上の物理的シェイプの複合レイヤー (お知らせと緩和策)
  • flutter#194​​18: onPlatformViewCreated を AndroidViewController に追加 (お知らせと緩和策)
  • flutter#29070: BackdropFilter はその親/祖先クリップを埋めます (お知らせと緩和策)
  • flutter#29816: 引数が null の場合に null を返す FontWeight.lerp (お知らせと緩和策)
  • flutter#29696: PointerEnterEvent と PointerExitEvent の名前を HoverEvent から fromMouseEvent に変更する提案 (お知らせと緩和策)
  • flutter#28602: PointerEnterEvent および PointerExitEvent を任意の PointerEvent から作成できるようにします。
  • flutter#28953: セマンティクス ツリーに platformViewId を含めます
  • flutter#27612: Strut を使用して TextFields の行の高さを強制します
  • flutter#30991: Android のキャレットの高さにはグリフの全高を使用します
  • flutter#30414: 一部のポインター イベントから圧力のカスタマイズを削除します
  • エンジン#8274: [ui] FontWeight.lerpにnullチェックを追加

重大なパフォーマンスとクラッシュの変更

このリリースでは、いくつかの重大なパフォーマンスとクラッシュの問題を修正しました。

  • flutter#30990: プロファイル モードでのプロファイル ウィジェットの構築を許可します
  • flutter#30985: マイクロベンチマークを含む正しい内容を追加
  • flutter#28651: FlutterJNIがネイティブにアタッチされていないため、操作を実行できません。

iOSの変更点

Flutter チームにとって、iOS のサポートは Android のサポートと同じくらい重要です。それは、iOS エクスペリエンスをさらに向上させるためにこのリリースで行われた大量の変更からもわかります。

  • flutter#29200: クパチーノ ローカリゼーション ステップ 1: 英語の arb ファイルを追加する
  • flutter#29821: クパチーノ ローカリゼーション ステップ 1.5: cupertino_en.arb のリソースの不一致を修正
  • flutter#30160: Cupertino ローカリゼーション 1.9: cupertino_en.arb に必要な単数リソースを追加
  • flutter#29644: クパチーノ ローカリゼーション ステップ 3: いくつかのマテリアル ツールをその場で移動して、クパチーノ用のスペースを確保します。
  • flutter#29650: クパチーノ ローカリゼーション ステップ 4: 生成された日付ローカリゼーションでマテリアルとクパチーノ ロケールを組み合わせます
  • flutter#29708クパチーノ ローカリゼーション ステップ 5: 翻訳された例としてフランス語の arb を追加します
  • flutter#29767: クパチーノ ローカリゼーション ステップ 6: 日時書式設定を備えた GlobalCupertinoLocalizations 基本クラスを追加します
  • flutter#30527: クパチーノ ローカリゼーション ステップ 11: 説明書に翻訳の明確化を追加
  • flutter#28629: バックスワイプ時にクパチーノのページ遷移のすべてが直線的であることを確認してください
  • flutter#28001: CupertinoTextField: プレースホルダーの色を変更する機能を追加しました
  • flutter#29304: iOS のセマンティクス ツリーに platformViewId を含めます
  • flutter#29946: CupertinoPageScaffold にステータス バーをタップして上部までスクロールさせます
  • flutter#29474: CupertinoTextField のクリア ボタンでも onChanged を呼び出せるようにします
  • flutter#29008: CupertinoTextField を更新します
  • flutter#29630: CupertinoIcons にハートの形を追加します
  • flutter#28597: 残りのクパチーノ ルートのアニメーションをネイティブに合わせて調整します
  • flutter#29407: [cupertino_icons] ラジオボタン用にcircleとcircle_filledを追加。
  • flutter#29024: ビューのインセット変更時の CupertinoTabView ツリーの形状変更を修正
  • flutter#28478: 圧力データ 0 を報告する iOS デバイスをサポート
  • flutter#29987: CupertinoSwitch のドキュメントを更新
  • flutter#29943: ナビゲーション バーとセーフ エリアの子の間の不要なギャップを削除します。
  • flutter#28855: マテリアルを移動 iOS バックスワイプテストをマテリアルに移動
  • flutter#28756: ナビゲーターのプッシュにより中断されたクパチーノの戻るジェスチャーを処理します
  • flutter#31088: テキストフィールドのスクロール物理
  • flutter#30946: クパチーノのアイコンをいくつか追加します
  • flutter#30521: CupertinoTheme でデフォルトの IconTheme を提供します
  • flutter#30475: トラックパッドモードのクラッシュを修正

材料の変更

もちろん、マテリアルは Flutter チームにとっても引き続き優先事項です。

  • flutter#28290: [マテリアル] FloatingActionButton ThemeData を作成し、FloatingActionButton 内でそれを尊重します (#28735)
  • flutter#29980: setState が呼び出されたときにアカウント ドロワー ヘッダーの矢印が回転する問題を修正
  • flutter#29563: ドラッグしてテキストを選択する際のちらつきを回避します
  • flutter#29138: DropdownButton の下線をカスタマイズできるように更新します
  • flutter#29572: ドロップダウンボタンアイコンのカスタマイズ機能
  • flutter#29183: TabBarTheme に labelPadding 設定を実装します
  • flutter#21834: アプリバーにshapeBorderオプションを追加します
  • flutter#28163: [マテリアル] チップおよびチップテーマの影の色と選択した影の色を設定する機能を追加します
  • flutter#27711: 拡張 FAB のアイコンをオプションにします
  • flutter#28159:[素材] BottomNavigationBar APIを展開(リプライズ)
  • flutter#27973: extendBody パラメータを Scaffold に追加し、ボディ MediaQuery は BAB の高さを反映します
  • flutter#30390: [マテリアル] 新しいサイズ、形状、カラーマッピングでスライダーとスライダーテーマを更新
  • flutter#29390: ヘッダーをタップして、拡張パネルの状態をオプションで切り替えます。
  • flutter#30754: [マテリアル] 古いコンテキストによって引き起こされる showDialog クラッシャーを修正
  • flutter#30525: 入力幅の外側にあるカーソルを修正します
  • flutter#30805: スキャフォールド テンプレートを使用して ExpansionPanelList サンプルを更新します
  • flutter#30537: ListTile サンプル コードに画像を埋め込み、バリエーションを追加しました
  • flutter#30455: カードのサイズが画面にフィットするようにすることで、神社での縦スクロールを防止します
  • flutter#29413: ビルダーのみが使用されている場合の MaterialApp の _navigatorObserver を修正

デスクトップの変更

Flutter は、ツールでのデスクトップ サポートの開始とともに、キーボード マッピング、テキスト選択、マウス ホイール、ホバーなどのデスクトップ クラスの入力メカニズムのサポートの拡張を進めてきました。

  • flutter#29993: Linux 用のキーボード マッピングを追加します。
  • flutter#29769: クパチーノのテキストフィールドにマウスによるテキスト選択のサポートを追加します。
  • flutter#22762: スクロールホイールのサポートを追加
  • flutter#28900: クパチーノボタンにキーサポートを追加します
  • flutter#28290: マウスによるテキスト選択
  • flutter#28602: PointerEnterEvent および PointerExitEvent を任意の PointerEvent から作成できるようにします。
  • flutter#30829: ホバー注釈レイヤーをマウス検出器と同期させます。
  • flutter#30648: デスクトップ埋め込みアーティファクトのダウンロードを許可します
  • flutter#31283: デスクトップワークフローをドクターに追加
  • flutter#31229: Linux と Windows の Flutter Run サポートを追加
  • flutter#31277: トラック ウィジェット作成フラグをビルド スクリプトに渡します
  • flutter#31218: macOS ターゲットの実行機能を追加
  • flutter#31205: デスクトップ プロジェクトとビルド コマンドを追加します (実験的)
  • flutter#30670: C++ シェル用の StandardMethodCodec を実装する

フレームワークの変更

プラットフォームの詳細に加えて、私たちは Flutter フレームワークの中核をさらに推進し続けます。

  • エンジン#8402: VM 内のすべてのルート分離のシャットダウンを有効にします。
  • flutter#31210: Android v2 のキャレットの高さにはグリフの全高を使用します
  • flutter#30422: バックスワイプを解除するとすぐに navigator.pop をコミットします。
  • flutter#30792: Border.uniform() -> Border.fromSide() の名前を変更します。
  • flutter#31159: 「Android のキャレットの高さとしてグリフの高さ全体を使用する」を元に戻します
  • flutter#30932: 2D トランスフォーム UX の改善
  • flutter#30898: テスト後に ErrorWidget.builder が変更されていないことを確認します
  • flutter#30809: 問題 23527 を修正: 例外: RenderViewport が最大数を超えました…
  • flutter#30880: sliver.dart _createErrorWidget を他のウィジェットと連携させます
  • flutter#30876: 今後の画像処理を簡素化します
  • flutter#30470: テーブル フレックス列のレイアウト エラー #30437 を修正しました
  • flutter#30215: 無効な標高をチェックします
  • flutter#30667: 追加の @mustCallSuper 間接オーバーライドとミックスインを修正
  • flutter#30814: StatefulWidget および StatelessWidget のサンプル ドキュメントを修正
  • flutter#30760: invokeListMethod および invokeMapMethod のキャスト NPE を修正
  • flutter#30640: const Border.uniformSide() を追加します。
  • flutter#30644: FormField._validate() が void を返すようにします
  • flutter#30645: FormFieldValidator にドキュメントを追加します
  • flutter#30563: 拡張 API ドキュメントのタイプミスを修正しました
  • flutter#30513: 問題 21640 を修正: アサーション エラー : ‘_listenerAttached’: is not true
  • flutter#30305: null 許容リストの重複が短くなります
  • flutter#30468: BottomNavigationBar の埋め込み図。

プラグインの変更

このリリースでは、カメラ、Google マップ、Web ビュー、イメージ ピッカー、Firebase プラグインを含む Flutter プラグインにも多くの変更が加えられ、アプリで使用できるようになりました。アプリ内購入プラグインのベータ版。

  • プラグイン#1477: [カメラ] アクティビティのライフサイクルを削除します
  • プラグイン#1022: [カメラ] UIのブロックを避けるためにカメラプラグインのシリアルdispatch_queueを追加します
  • プラグイン#1331: [接続] 現在の Wi-Fi ネットワークの BSSID の取得を有効にします
  • プラグイン#1455: [接続性]統合テストを追加しました。
  • プラグイン#1377: [firebase_admob] iOS Admob ID を追加するドキュメントを更新し、サンプル プロジェクトに iOS Admob ID を追加します
  • プラグイン#1492: [firebase_analytics] 初期統合テスト
  • プラグイン#896: [firebase-analytics] iOS の setAnalyticsCollectionEnabled サポートを有効にする
  • プラグイン#1159: [firebase_auth] パスワードなしのサインインを有効にする
  • プラグイン#1487: [firebase_auth] 非推奨の API から FlutterAuthPlugin を移行する
  • プラグイン#1443: [firebase_core] firebase_core で Gradle BoM を使用する
  • プラグイン#1427: [firebase_crashlytics] デバッグ ログの形式を壊さないでください。
  • プラグイン#1437: [firebase_crashlytics] ファブリックの初期化を修正
  • プラグイン#1096:[firebase_database]DatabaseError#toString() からのエラー メッセージを返します
  • プラグイン#1532: [firebase_messaging] 廃止されたドキュメント命令を削除します
  • プラグイン#1405: [firebase_messaging] iOS の追加手順
  • プラグイン#1353: [firebase_messaging] 更新例
  • プラグイン#1223: [firebase_ml_vision] iOS で URL QR コードをスキャンする際のクラッシュを修正
  • プラグイン#1514: [firebase_remote_config] 初期統合テスト
  • プラグイン#815: [google_maps_flutter] バイト配列 (PNG) からのカスタム アイコンのサポートを追加します
  • プラグイン#1229: [google_maps_flutter] マーカー API がウィジェットベースになりました (Android)
  • プラグイン#1421: [in_app_purchase]支払いを統合した API を作成する
  • プラグイン#1380: [in_app_purchase]購入をロードする
  • flutter#26329: IAP: 自動更新サブスクリプションを購入する
  • flutter#26331: IAP: 非更新サブスクリプションを購入する
  • flutter#26326: IAP: 以前の購入をロードします
  • プラグイン#1249: [in_app_purchase] 支払いキュー Dart iOS
  • flutter#26327: IAP: ロック解除を購入する
  • flutter#26328: IAP: 消耗品を購入する
  • flutter#29837: barcode_scan と image_picker を併用すると、image_picker がちらつく
  • flutter#17950: ネイティブの Flutter アクティビティが表示されているときに Flutter アクティビティが強制終了されると、Image_picker プラグインが失敗します
  • flutter#18700: [image_picker] カメラを使用しようとすると、Galaxy S5 および Note 4 でクラッシュする
  • プラグイン#1372: [image_picker] 「カメラが最初にアクセスされた場合、ギャラリーにキャンセル ボタンが表示されない」を修正
  • プラグイン#1471: [image_picker] Google フォトから返される無効なパスを修正
  • flutter#29422: image_picker エラー: アクセス許可の拒否
  • プラグイン#1237: [share] シェアプラグインのcompileSdkVersionを28に変更しました
  • プラグイン#1373: [shared_preferences] contains メソッドを追加
  • プラグイン#1470: [video_player] Android: 欠落していたevent.put(“event”, “completed”);を追加しました。
  • flutter#25329: [WebView] URL がロードされようとしているときに WebView が制御できるようにします。

ツールの変更

最後に重要なことですが、特にホット リロードのパフォーマンスの向上に関して、開発者のエクスペリエンスを向上させるために、コアの Flutter リポジトリに多くのツールの変更を加えました (そして、以前は高速だと思っていましたよね!)。

  • flutter#29693: コンパイラからのソース リストを使用して、ホット リロード用に無効化されたファイルを追跡します。
  • flutter#28152: ホットリロードのパフォーマンスを向上させます
  • flutter#29494: ツールのカバレッジ生成スクリプトの初期作業
  • flutter#31171: 環境変数を介してすべての指紋キャッシュを無効にすることを許可します
  • flutter#31073: Fuchsia ステップ 1: SDK バージョン ファイルの追加とアーティファクトのダウンロード
  • flutter#31064: Flutterバージョンコマンドにソートを追加
  • flutter#31063: Flutter パッチが適用された SDK の製品バージョンをダウンロードして処理します
  • flutter#31074: CoverageCollector の flutterProject オプションをオプションにします
  • flutter#30818: デバイスへの新しいアプリのインストールをスキップするためにドライブを flutterする新しいフラグ
  • flutter#30867: debugProfileWidgetBuilds のトグルを追加
  • flutter#27034: 更新されたパッケージ テンプレート .gitignore ファイル
  • flutter#30115: 不足している pub コマンドを転送します
  • flutter#30254: Reland: flutter run/drive/test/update_packages が必要なアーティファクトのみをダウンロードするようにする
  • flutter#30153: 実験的なコマンド、安定したブランチ上のデバイスの無効化を許可します
  • flutter#30428: Arch Linux の修復コマンドを更新

さらに、Flutter の最後の安定版リリース以来、Flutter の IDE プラグインには多数の更新が行われています。

  • Visual Studio コード:2019 年 2 月 21 日 (2.23.1)
  • Visual Studio コード:2019 年 2 月 27 日 (2.24.0)
  • IntelliJ/Android スタジオ:2019年3月29日(M34)
  • Visual Studio コード:2019 年 4 月 17 日 (2.25.1)
  • IntelliJ/Android スタジオ:2019年4月26日(M35)
  • Visual Studio コード:2019 年 5 月 1 日 (2.26.1)

動的更新 (別名コードプッシュ)

最後になりますが、今年も半ばに近づき、最も重要な領域を再評価する時期が来たため、2019 年のロードマップから動的更新 (別名コード プッシュ) の計画を削除することを決定しました。 。その理由に興味がある場合は、読んでください詳しい説明。この作業を中止することで、Web 用 Flutter とデスクトップ用 Flutter での実験だけでなく、品質にも重点を置くことができます。

全問題リスト

ご覧いただけますこのリリースでコミットされた PR の完全なリスト