超初心者でもわかる! Flutter2で変わった主なこと

アプリ開発:Flutter

つい半月ほど前、日本時間の3月4日未明にFlutter2が発表されました。

今までのFlutterと何が違うの?
アップデートした方がいいの?
アップデート情報はどこで見れるの?

というわけで、最近Flutterの勉強を始めたひとや、アプリ開発を勉強し始めたひとの、そんな疑問や心細さをちょっとだけ解消します。

最近Flutter始めたひと、っていうのは、そう、この私です…

Web/Windows/MacOS/Linuxのサポート

Flutterは、モバイル向けのクロスプラットフォームでした

でもこれまでも、モバイルだけではなくWebアプリの開発もできたのですが、実はそれはベータ版。

今回のFlutter2で、Flutter Webベータ版が安定版(Stable)になりました。

Sound null safety

今回のFlutter2のリリースと同時にDartもDart2.12になって、Null Safetyにちゃんと対応するようになりました。

それ、どういうこと?
Null Safetyとは何? ということで、ちょっとだけ説明すると…

Nullというのはちょっと厄介者で、Nullが発生するとアプリが使用中にクラッシュしてしまいます。

Flutter2では、この「nullによるアプリ使用中のクラッシュ」が起きないようにするために、コードを書く段階で「Nullエラー」をキャッチする仕組みがちゃんと取り入れられたというわけです。

ここで理解しておきたいことは「Flutter2でサポートするDart2.12からは、Nullは許容しなくなったので、nullが発生するコードを書くとエラーの赤線がつくよ」ってこと。

だけど、「どんなときも、Nullが発生しないように書かないとダメ」ということじゃありません

その理由は、「アプリを動かしてみてはじめて、それがnullかnullじゃないかがわかる」こともあるし、そもそも、「まずはnullでオブジェクトを作っておかないとダメなんだ」ってこともあるからです。

なので、「nullの状態が起こると考えられるときは、とかlateを使う書き方ができるようになったよ。そうしておけば、もしアプリの動作中にnullが発生しても、nullのまま安全にプログラムが走ってくれるよ」というわけです。

そしたら、アプリが実際に使われているときにクラッシュして、ユーザーに「このアプリすぐ落ちて使えないよ!」って怒られることが少なくなるよ、と。

というわけで、今までのDartでは、この「?」を使った書き方はできなかったのだけど、今回のFlutter2がサポートするDart2.12からは「final int major = version?.major;」というように書くことで「versionがnullだったら、int majorもnullにしてね」ということが可能になった、ということなんです。

でも、Flutter2にアップグレードしたからと言って、それだけで、Null Safetyが強制されることはありません

いろいろ、準備があるのです。こちら↓を参考にどうぞ。

非推奨になったWidget:RaisedButton/FlatButton

RaisedButtonは、かなり頻繁に使っているウィジェットのひとつだと思うけど、これが非推奨になりました。

「マジか!」って感じなんだけど、RaisedButtonではなくElevatedButtonを使ってください、ということです。

FlatButtonも非推奨になったので、こちらは代わりにTextButtonの使用が推奨されています。

Udemy でFlutterの講座を開講しているみんプロ さん↓↓が、YouTubeでも紹介しています。
みんプロのFlutter講座 では、Flutter2で対応になったNull Safetyについても、初心者向けにわかりやすく説明しています。

Flutter2.0以降はRaisedButtonとFlatButtonが非推奨に−初心者向けiOS/Androidスマホアプリプログラミング講座(Flutter/Kotlin/Java)-みんプロ式

こちら↓↓は、公式文書です。

PUBLICLY SHARED
Migrating to the New Material Buttons and their Themes
https://docs.google.com/document/d/1yohSuYrvyya5V1hB6j9pJskavCdVq9sVeTqSoEPsWH0/edit#heading=h.s6balucy11bi

Flutter2にアップデートした方がいいの?

Flutterのアップデートは、「Excelの新しいバージョン買ったので、古いExcelファイルを開いて新バージョンで上書き保存しよう!」っていうのとは、ワケが違います。

今、Flutterで開発しているコードをFlutter2にしたいというのなら、SDKのアップデートとともに、使っているパッケージのFlutter2の対応状況も把握したり、コードの書き換えも必要になってきます。

例えば、Flutter2で非推奨になったRaisedButtonには「非推奨だよ」のコメントが示されるので、WidgetをElevatedButtonに修正して、color:などのElevatedButtonにはないものは、別のコードに置き換える必要が出てきます。(非推奨というだけなので、エラーにはなりませんが)

このあたりの修正には、Flutterから移行ツールを使ったり、手動でコツコツ書き換える、ということになるようです。

その他の参考サイト

itome.team.blogさんのサイトです。日本語で、いろいろわかりやすく解説してくれています。

上記のサイトをもとに、KBOYのFlutter大学さんが解説しているYouTube動画です。

Flutter2.0で何が変わったのか

コメント

タイトルとURLをコピーしました