🚙

Flutter2.0出たけどFlutter Web採用して大丈夫そ?

2021/03/04に公開3

Flutter2.0出ましたね。テンション上がりますよね。
日本語で分かり易かった記事↓
https://dev.classmethod.jp/articles/flutter_engage_session_memo/

stableで大丈夫そ?

結論から言うと、まだダメです。 理由を書いていきます。

2020年2月からあったFlutter Webの不具合

3月1日にリリースしたCodeBoyはFlutterのbeta channelで開発してきました。
基本的にはbetaの最新でやってきましたが、2020年2月のアプデあたりからFlutter Webでの表示がおかしくなりました。(後述)

そのため、CodeBoyでは、Github Actionsで自動デプロイする際にbetaの'1.25.0-8.3.pre'にバージョンを固定しています。

比較

わかりやすい例を出して比較してみましょう。フォントがおかしくなって、絵文字が表示できなくなってしまいました。「講師を探す」というフォントに注目すると分かりやすいかも。

beta1.26.0-17.2.pre以降(stableの2.0も同様)

beta1.25.0-8.3.pre

静止画では分かりにくいですが、実際に使ってみると全然違います。また、フォントがおかしいだけじゃなく、画像が表示できない不具合などもあります。

これが2.0で治ってるかなと思ったけど、治ってませんw

追記

コメント欄で教えてもらいましたが、

flutter build web --web-renderer html

こんな感じでweb-rendererをHTMLに指定することでこのバグは治るみたいです!
でもautoで表示おかしくなるのは罠では!!!w

https://flutter.dev/docs/development/tools/web-renderers#examples

GitHub Actionsの方をこのように指定することで自動デプロイ時も対応できそうです。

これに関しては、別記事で対応方法を書きました!

https://zenn.dev/kboy/articles/4b00eae424c991

その他既知のバグ(随時更新)

  • tabキーで予測された単語を選択できない
  • ほか

2.0.0で治ったぽいやつ(随時更新)

  • Textのstyleに行間などを指定しないと複数行だと見切れる
  • ほか

まとめ

そもそもFlutter Webにはこのほかにもバグがたくさんあります。そんな中、上記のような致命的な不具合もまだstableの2.0には残っているため、全然stableではありませんw

ただ、合同会社KBOYとしては、Flutter大学も運営しているし、この不具合があるとしてもFlutter Webを採用する方がメリットとして大きいです。なので今後のFlutterの発展に期待して一緒に頑張っていきたいと思います。

Flutter Webで作られているCodeBoyとは

CodeBoyは現役エンジニアとプログラミング学習者のマッチングプラットフォーム。「教えたいエンジニア」と「学びたい人」を繋ぎます。メンターとして時間を売るだけではなく、エンジニアとしてコンテンツ販売している例も出てきました。講師を審査制にしているため怪しい講師が入ってきにくいことが魅力です。今後もこのzennに負けないようなイケてるエンジニア向けサービスとなるように努めてまいります。

https://codeboy.jp

Flutter大学

Discussion

yana1316yana1316

もしかするとですが、以下のような形で html 書き出しを指定すると直ったりするかもしれません。

flutter build web --release --web-renderer html

私も似たような症状になりまして、調べていたら下記にたどり着きました。
https://flutter.dev/docs/development/tools/web-renderers#examples

kboykboy

auto (default) - automatically chooses which renderer to use. This option chooses the HTML renderer when the app is running in a mobile browser, and CanvasKit renderer when the app is running in a desktop browser.

おおお!たしかにスマホのsafariとかでは大丈夫だったのに、PCのchromeでやるとおかしくなったのでこれかも!!!確認してみます!!!