FlutterでNNBDを有効化しても静的解析はできるけどコンパイルはできない件Zennttskch💻FlutterでNNBDを有効化しても静的解析はできるけどコンパイルはできない件2020/07/17に公開Fluttertech!この記事は、2020-07-17に別のブログ媒体に投稿した記事のアーカイブです。FlutterプロジェクトでDartのNNBDを「有効化」しようとしたら静的解析はできるけどコンパイルはできなくて色々調べたので共有します。略で、DartにおけるNull安全のための機能です。代入することができなくなります。宣言する必要があります。QiitaDart単体でNNBDを体験してみるまずはFlutter関係なくDart単体で体験してみましょう。コマンドがグローバルで使えるようになるので、一時的に切り替えることで楽に最新版が導入できます。適当にからのディレクトリを作って、その中に以下のようなファイルを作ります。いうNNBDを前提としたコードが含まれているのがポイントです。コマンドで静的解析を行ってみます。)が使われてますよとエラーになりました。found.エラーが消えました。実際にコードを(コンパイル&)実行してみます。^静的解析ではエラーにならなかったのに、コンパイルはエラーになりました。オプションをつけて実行してみましょう。test.darttestコンパイルが成功して正常に動きました。FlutterプロジェクトでNNBDを有効化する方法?ここまでで、Flutterから離れてDartの言語仕様としてのNNBDの使用方法について理解できたと思います。FlutterプロジェクトでNNBDを有効化したい場合どうすればよいかを考えてみましょう。(またはそれ以上)にするといった情報がたくさん出てきます。有効状態でコンパイルするにはコンパイル時にコマンドラインオプションを渡す必要があります。念のため確認してみましょう。いう一文を入れてみます。6.4s)見慣れたエラーが出力されました。して)から再度実行してみます。1.2s)エラーが消えました。(コンパイル&)実行してみます。有効でないためコンパイルは失敗しました。有効にしてコンパイルすることはできるの?ググてみると、いくつかこの問題についての質問が見つかります。ようだというのが僕の結論です。いただけると嬉しいです🙇)もし有効にできるとしても、NNBD前提で書かれていないサードパーティ製のライブラリとかがことごとくコンパイルエラーになっちゃうと思うので現状はまだ実質使える状況じゃないと考えてよいと思います。使わずにコンパイル可能なコードのままできるだけNull安全なコードを心がける、というのが現状のFlutterでのNNBDの使い方ということでしょうか。CEO←フリーランス←カルテットコミュニケーションズ創業CTO。社外CTO/技術顧問数社。PHPとTypeScript。Symfonyの知見をよくブログに書きます。DMまで✉️詳細はリンク先にてバッジを贈って著者を応援しようバッジを受け取った著者にはZennから現金やAmazonギフトカードが還元されます。CEO←フリーランス←カルテットコミュニケーションズ創業CTO。社外CTO/技術顧問数社。PHPとTypeScript。Symfonyの知見をよくブログに書きます。Proよくある質問LinksX(Twitter)GitHubメディアキットLegal利用規約プライバシーポリシ。