Introduction

ID・パスワードの入力画面を作り、Debug で動かしているとレスポンスが急激に悪くなる時があった。
Release ビルドだとそれほど気にならないが、Debug だと明らかに遅い、というかキーボード入力が全く受け付けない。
現象が発生するのは TextField または TextFormField がフォーカスを受け取った時。

ただし、簡単なサンプルだとそこまでひどくなく、会社で組んだコードだと酷い状況になる。
とはいえ、CPU 使用率が跳ね上がるのは、簡単なサンプルでも同様なので、忘備録として残す。

How to resolve?

この現象自体は既に報告されている。

原因は明滅する透過カーソル。これの負荷がかなり高いとのこと。
根本的な解決は Flutter 側で対応してもらうしかないのだが、TextField または TextFormFieldcursorOpacityAnimatesfalse を設定することで回避できる。

どのくらい違うのかは下記。

cursorOpacityAnimates が true (または指定なし)

exception

cursorOpacityAnimates が false

exception