Why
Turn the package from an API client into a real Flutter SDK: drop-in chat UI.
Estimated effort: 3-5 days. The biggest chantier on the roadmap — involves a structuring decision.
Recommended decision
Ship a separate package flutter_ai_sdk_ui (same repo as a workspace/monorepo, or a distinct repo) so people who only want the API client don't pull in a material dependency. The main package currently has zero material import — keep it that way.
Minimal viable content
AIChatController (a ChangeNotifier wrapping FlutterAI: messages, isGenerating state, errors, abort).
AIChatView: message ListView + input field + token-by-token streaming display (listen to streamChat, rebuild per chunk), typing indicator, error handling with retry.
- Themable
MessageBubble (via a ThemeExtension), basic markdown support (evaluate markdown_widget vs flutter_markdown).
- A full example in
example/.
Infra if a separate package
- Its own
pubspec.yaml, CI (matrix job), pub.dev publishing — reuse the
tag → OIDC workflow with a tag pattern like ui-v{{version}} and its own
pub.dev admin configuration.
Definition of done
Why
Turn the package from an API client into a real Flutter SDK: drop-in chat UI.
Estimated effort: 3-5 days. The biggest chantier on the roadmap — involves a structuring decision.
Recommended decision
Ship a separate package
flutter_ai_sdk_ui(same repo as a workspace/monorepo, or a distinct repo) so people who only want the API client don't pull in amaterialdependency. The main package currently has zeromaterialimport — keep it that way.Minimal viable content
AIChatController(aChangeNotifierwrappingFlutterAI: messages,isGeneratingstate, errors, abort).AIChatView: messageListView+ input field + token-by-token streaming display (listen tostreamChat, rebuild per chunk), typing indicator, error handling with retry.MessageBubble(via aThemeExtension), basic markdown support (evaluatemarkdown_widgetvsflutter_markdown).example/.Infra if a separate package
pubspec.yaml, CI (matrix job), pub.dev publishing — reuse thetag → OIDC workflow with a tag pattern like
ui-v{{version}}and its ownpub.dev admin configuration.
Definition of done
AIChatController+AIChatView+ themable message bubble