You have to remove: onChanged: (value){ controller.text = value; } You don't need it because TextField does it automatically. This makes the text written in backward. Removing it will solve the backward issue.
I did all steps , but I could not run my app , it gives this error Exception has occurred. PlatformException (PlatformException(channel-error, Unable to establish connection on channel., null, null))