Convert XML Fluent Icons to ImageVector Compose Icons #597
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
What has been done 🔥
This pull request (PR) aims to enhance the icons set provided by fluent system icons converting existing XML icons to Jetpack Compose ImageVector icons. By migrating to Jetpack Compose, we can leverage the declarative nature of Compose UI and take advantage of its powerful features for rendering scalable icons. This conversion will result in improved performance, flexibility, and maintainability of the icons in the project.
The main purpose was to have fluent API access to Fluent icons, the developer using Jetpack Compose can create an
Icon
like the following:How it was done ✅
I have created a parser that parses the XML icons and converts them to
fluentIcons
usingImageVector
compose's nature usingmaterialPath
.Changes Made 💡
Testing Done ✔
I think we can also make some screenshot tests for each icon, but that would take a long time to run the tests.
Missing Stuff 😅
Three icons are still remaining since they don't share the same structure as the other icons (they contain an extra
clip-path
); I will try to convert those manually. Here are the icons: