Repository: flutter
Issue: Multiplatform tooling: A way to store and update app properties, like name, descriptions, icons, permission and apply them to all platform runners/embedders
Labels: c: new feature,tool,customer: crowd,c: proposal,P3,team-tool,triaged-tool

## Use case

The increased amount of target platforms that Flutter supports makes it challenging to maintain and update all the information each platform runner/embedder needs in order to be able to show the right application name, description and icons in a platform correct manner. 

It is very difficult to keep up with what info goes where for each platform's runner/embedder, and it is tedious to maintain when it needs to be changed.

Sometimes the Flutter tooling moves forward and requires that the runners/embedders must be upgraded for some platform in order to support new features or work correctly. To apply such an upgrade you can today delete the runner/embedder and recreate it with 

`flutter create .`

While this works, it results in that all carefully and manually applied configurations for the application on the platform in question are lost, and must be re-applied. Sometimes the updated runner/embedder might even have changed to the degree that past info on how to apply the properties might have changed, thus further complicating the situation.

## Proposal

Add a Flutter multiplatform application info tooling UI, and a central maintenance point of all this info, as a part of this tooling. Embed it into the supported IDE's, kind of like DevTools, but this as a tool that functions as a central place where you can add and update all the info that the application needs to include in the runners/embedders for all different platforms. This info could include, but might not be limited to:

- App name
- App display name
- App task switcher name/info
- App description
- Organization
- All needed app icons for all platforms
- Potentially also platform native splash image(gif) loader image and its setup
- Needed device permission for each platform
- Other? (The above list is probably not complete)

This tool should then be able to apply these settings to all the runners/embedders for all platforms, as applicable to each platform. The tool should also be able to check if the runners/embedders used in the project, needs to be updated to a new version on any platform. If needed, it should be able to make such a refresh and then re-apply all the above application/project settings to all the updated runners/embedders. 

Currently with all the above info and all platforms, it is becoming difficult to even keep track on what goes where for each embedder/runner, for every platform. Once you know or figure it out, you then need to add all the needed info and/or update them manually if/when you need to change the info, in every runner/embedder. 

Today when a runner/embedder must be updated, you have to delete the embedders/runners and create new ones with latest Flutter version. This is already an easy way to update them to get the latest version from the current tooling in Flutter, but then you have to re-apply all the above app config information, that you probably googled (months ago) to figure out how to add it to the platforms you might not be natively familiar with. Then after an embedder update, the how and where all this stuff goes, might even have changed in the updated runner/embedder and you need to figure it out all again. So all in all, not a very pleasant developer UX and very time consuming.

This is of course a high level tooling improvement suggestion. I think it would be very useful and helpful now that the amount of platforms have gown to six, and might grow even more later. It would also give more possibilities to develop and update the runners/embedders when so needed, since upgrading them and re-applying application settings to them, would be a part of easy to use included tooling.

I'm not sure if this idea already exists as a general improvement suggestion in the Flutter repo, or if it is something that is on the roadmap already, or if it would is even considered interesting, but in any case I just wanted to capture it as a suggestion.

It would be really useful and helpful to see built-in support in the Flutter tooling for all this.  💙