Whenever you create app using form in flutter, use stateful widget because we need to set new state to show user input data as required. For form key, it is required to use globalkey and set with to save current state or reset state and keep current state when validation fail.
Sometimes, it's gonna be really tedious to make list item from scratch using some widget combining all together. In this case, ListTile is useful. ListTile comes with leading for first section, which can be icon or some images, title for middle text and trailing for last section, which may be number or amount of products etc. This ListTile would be utilised with ListView.builder() function. ListView is more efficient and not affecting the app's performance displaying large number of items. If small number of items need to be displayed, for loops can be used.
To activate animation in flutter app, it's required to utilise class with SingleTickerProviderStateMixin extension, otherwise, your animation will not work. Further details, refer to here: https://api.flutter.dev/flutter/animation/AnimationController-class.html