Platform Feature Flow
Trace a file export feature from UI to platform.
Flow
Export button
-> ExportViewModel.exportCsv()
-> ExpensesRepository.loadForExport()
-> CsvExporter.createFile()
-> PlatformShareService.shareFile()
-> plugin or platform channel
-> Android/iOS/desktop/web implementation
-> target smoke test
Test Points
| Point | Test |
|---|---|
| View model | Export command handles loading, success, and failure |
| Repository | Returns correct rows and sort order |
| Exporter | Produces stable CSV with escaping |
| Platform service | Fake in unit/widget tests |
| Plugin/channel | Integration or manual smoke on each target |
| Release | Export works from release artifact, not only debug |
Unsupported Target Path
If web export is not supported by the chosen plugin, the app should show a clear fallback or hide the feature on web. Do not let a MissingPluginException be the user experience.