very_good_cli
very_good_cli copied to clipboard
feat: Adding `very_good icons`
Description
The default project generated by very_good
contains flavoured icons generated by the very_good flutter app template (~199 files in aggreagate).
This is indeed a very good start for a project, however as part of the development process the user will be required to task of replacing each of these with the app icon of the project. This manual process (documentaed by updating-app-icons and ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md
) is both time intensive and error prune.
Tools such as https://github.com/fluttercommunity/flutter_launcher_icons have support for flavoured app, however currently do not cope well with very_good's flavoured app setup, nor with the depth the platforms requirments.
I believe it would be very helpful to support automated icon generated from a vectorized source placed in the apps assets folder, such that very_good icons
will generated the above rastered as well as adaptive icons for the relevant platforms, it would also add the "STG" and "DEV" tags automatically by simple image manipulation.
Would be happy to hear your thoughs on this?
List of assets for andorid & ios as generated by very_good create
:
m@m-inspiron5567:~/code/savy$ find ios/Runner/Assets.xcassets/ android/app/src/development/ android/app/src/staging/ android/app/src/main
ios/Runner/Assets.xcassets/
ios/Runner/Assets.xcassets/AppIcon.appiconset
ios/Runner/Assets.xcassets/AppIcon.appiconset/100.png
ios/Runner/Assets.xcassets/AppIcon.appiconset/88.png
ios/Runner/Assets.xcassets/AppIcon.appiconset/87.png
ios/Runner/Assets.xcassets/AppIcon.appiconset/144.png
ios/Runner/Assets.xcassets/AppIcon.appiconset/216.png
ios/Runner/Assets.xcassets/AppIcon.appiconset/72.png
ios/Runner/Assets.xcassets/AppIcon.appiconset/196.png
ios/Runner/Assets.xcassets/AppIcon.appiconset/512.png
ios/Runner/Assets.xcassets/AppIcon.appiconset/152.png
ios/Runner/Assets.xcassets/AppIcon.appiconset/57.png
ios/Runner/Assets.xcassets/AppIcon.appiconset/55.png
ios/Runner/Assets.xcassets/AppIcon.appiconset/114.png
ios/Runner/Assets.xcassets/AppIcon.appiconset/167.png
ios/Runner/Assets.xcassets/AppIcon.appiconset/58.png
ios/Runner/Assets.xcassets/AppIcon.appiconset/128.png
ios/Runner/Assets.xcassets/AppIcon.appiconset/120.png
ios/Runner/Assets.xcassets/AppIcon.appiconset/60.png
ios/Runner/Assets.xcassets/AppIcon.appiconset/40.png
ios/Runner/Assets.xcassets/AppIcon.appiconset/180.png
ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json
ios/Runner/Assets.xcassets/AppIcon.appiconset/76.png
ios/Runner/Assets.xcassets/AppIcon.appiconset/20.png
ios/Runner/Assets.xcassets/AppIcon.appiconset/80.png
ios/Runner/Assets.xcassets/AppIcon.appiconset/172.png
ios/Runner/Assets.xcassets/AppIcon.appiconset/29.png
ios/Runner/Assets.xcassets/AppIcon.appiconset/50.png
ios/Runner/Assets.xcassets/AppIcon.appiconset/32.png
ios/Runner/Assets.xcassets/AppIcon.appiconset/1024.png
ios/Runner/Assets.xcassets/AppIcon.appiconset/48.png
ios/Runner/Assets.xcassets/AppIcon.appiconset/256.png
ios/Runner/Assets.xcassets/AppIcon.appiconset/64.png
ios/Runner/Assets.xcassets/AppIcon.appiconset/16.png
ios/Runner/Assets.xcassets/AppIcon-stg.appiconset
ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/100.png
ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/88.png
ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/87.png
ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/144.png
ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/216.png
ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/72.png
ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/196.png
ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/512.png
ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/152.png
ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/57.png
ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/55.png
ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/114.png
ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/167.png
ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/58.png
ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/128.png
ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/120.png
ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/60.png
ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/40.png
ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/180.png
ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/Contents.json
ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/76.png
ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/20.png
ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/80.png
ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/172.png
ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/29.png
ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/50.png
ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/32.png
ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/1024.png
ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/48.png
ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/256.png
ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/64.png
ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/16.png
ios/Runner/Assets.xcassets/LaunchImage.imageset
ios/Runner/Assets.xcassets/LaunchImage.imageset/[email protected]
ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md
ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json
ios/Runner/Assets.xcassets/LaunchImage.imageset/[email protected]
ios/Runner/Assets.xcassets/LaunchImage.imageset/[email protected]
ios/Runner/Assets.xcassets/AppIcon-dev.appiconset
ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/100.png
ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/88.png
ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/87.png
ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/144.png
ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/216.png
ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/72.png
ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/196.png
ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/512.png
ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/152.png
ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/57.png
ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/55.png
ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/114.png
ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/167.png
ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/58.png
ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/128.png
ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/120.png
ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/60.png
ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/40.png
ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/180.png
ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/Contents.json
ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/76.png
ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/20.png
ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/80.png
ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/172.png
ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/29.png
ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/50.png
ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/32.png
ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/1024.png
ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/48.png
ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/256.png
ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/64.png
ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/16.png
ios/Runner/Assets.xcassets/Contents.json
android/app/src/development/
android/app/src/development/res
android/app/src/development/res/values
android/app/src/development/res/values/ic_launcher_background.xml
android/app/src/development/res/drawable
android/app/src/development/res/drawable/ic_launcher_foreground.xml
android/app/src/development/res/mipmap-xhdpi
android/app/src/development/res/mipmap-xhdpi/ic_launcher.png
android/app/src/development/res/mipmap-xhdpi/ic_launcher_round.png
android/app/src/development/res/mipmap-xxhdpi
android/app/src/development/res/mipmap-xxhdpi/ic_launcher.png
android/app/src/development/res/mipmap-xxhdpi/ic_launcher_round.png
android/app/src/development/res/mipmap-mdpi
android/app/src/development/res/mipmap-mdpi/ic_launcher.png
android/app/src/development/res/mipmap-mdpi/ic_launcher_round.png
android/app/src/development/res/mipmap-hdpi
android/app/src/development/res/mipmap-hdpi/ic_launcher.png
android/app/src/development/res/mipmap-hdpi/ic_launcher_round.png
android/app/src/development/res/mipmap-xxxhdpi
android/app/src/development/res/mipmap-xxxhdpi/ic_launcher.png
android/app/src/development/res/mipmap-xxxhdpi/ic_launcher_round.png
android/app/src/development/res/mipmap-anydpi-v26
android/app/src/development/res/mipmap-anydpi-v26/ic_launcher_round.xml
android/app/src/development/res/mipmap-anydpi-v26/ic_launcher.xml
android/app/src/development/ic_launcher-playstore.png
android/app/src/staging/
android/app/src/staging/res
android/app/src/staging/res/values
android/app/src/staging/res/values/ic_launcher_background.xml
android/app/src/staging/res/drawable
android/app/src/staging/res/drawable/ic_launcher_foreground.xml
android/app/src/staging/res/mipmap-xhdpi
android/app/src/staging/res/mipmap-xhdpi/ic_launcher.png
android/app/src/staging/res/mipmap-xhdpi/ic_launcher_round.png
android/app/src/staging/res/mipmap-xxhdpi
android/app/src/staging/res/mipmap-xxhdpi/ic_launcher.png
android/app/src/staging/res/mipmap-xxhdpi/ic_launcher_round.png
android/app/src/staging/res/mipmap-mdpi
android/app/src/staging/res/mipmap-mdpi/ic_launcher.png
android/app/src/staging/res/mipmap-mdpi/ic_launcher_round.png
android/app/src/staging/res/mipmap-hdpi
android/app/src/staging/res/mipmap-hdpi/ic_launcher.png
android/app/src/staging/res/mipmap-hdpi/ic_launcher_round.png
android/app/src/staging/res/mipmap-xxxhdpi
android/app/src/staging/res/mipmap-xxxhdpi/ic_launcher.png
android/app/src/staging/res/mipmap-xxxhdpi/ic_launcher_round.png
android/app/src/staging/res/mipmap-anydpi-v26
android/app/src/staging/res/mipmap-anydpi-v26/ic_launcher_round.xml
android/app/src/staging/res/mipmap-anydpi-v26/ic_launcher.xml
android/app/src/staging/ic_launcher-playstore.png
android/app/src/main
android/app/src/main/java
android/app/src/main/java/io
android/app/src/main/java/io/flutter
android/app/src/main/java/io/flutter/plugins
android/app/src/main/java/io/flutter/plugins/GeneratedPluginRegistrant.java
android/app/src/main/res
android/app/src/main/res/values
android/app/src/main/res/values/ic_launcher_background.xml
android/app/src/main/res/values/styles.xml
android/app/src/main/res/drawable
android/app/src/main/res/drawable/launch_background.xml
android/app/src/main/res/drawable/ic_launch_image.xml
android/app/src/main/res/drawable/ic_launcher_foreground.xml
android/app/src/main/res/mipmap-xhdpi
android/app/src/main/res/mipmap-xhdpi/ic_launcher.png
android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png
android/app/src/main/res/mipmap-xxhdpi
android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png
android/app/src/main/res/mipmap-mdpi
android/app/src/main/res/mipmap-mdpi/ic_launcher.png
android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png
android/app/src/main/res/mipmap-hdpi
android/app/src/main/res/mipmap-hdpi/ic_launcher.png
android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png
android/app/src/main/res/values-night
android/app/src/main/res/values-night/styles.xml
android/app/src/main/res/drawable-v21
android/app/src/main/res/drawable-v21/launch_background.xml
android/app/src/main/res/mipmap-xxxhdpi
android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png
android/app/src/main/res/mipmap-anydpi-v26
android/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml
android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml
android/app/src/main/kotlin
android/app/src/main/kotlin/app
android/app/src/main/kotlin/app/savy
android/app/src/main/kotlin/app/savy/MainActivity.kt
android/app/src/main/ic_launcher-playstore.png
android/app/src/main/AndroidManifest.xml
Hey @maximveksler maybe you could help me.. I just can't replace the very_good default icon (even manually!) https://stackoverflow.com/q/73379903/12695188
How do I achieve that? Note - I want to use adaptive icons for android
Can I delete all the files and just run flutter_launcher_icons
? Or is there a way to override all those files (not manually!)
Any update on this ?
Anyone with a workaround for this ?
following this link https://stackoverflow.com/a/52671273/6014172 then you will be fine
https://stackoverflow.com/a/52671273/6014172
I also need to know
I’ve opened a bug ticket in flutter_launcher_icons
: https://github.com/fluttercommunity/flutter_launcher_icons/issues/466
I've spent some time looking into why this is occurring for the Android app at least. It looks like the issue is to do with
ic_launcher.xml
within themipmap-anydpi-v26
for bothmain
and whatever flavor you're trying to run.I setup a basic quick test with flutter_launcher_icons and found that if I delete both of these then
ic_launcher.png
which is generated by flutter_launcher_icons is used instead
https://github.com/fluttercommunity/flutter_launcher_icons/issues/466#issuecomment-1510576600
This should help for the Android icons, I haven't spent time looking into the iOS icons yet
Hello there. Here are some updates on this:
After some discussion, we decided not to go forward with an automated tool for icon generation integrated with the VG CLI, there is to much nuances with all the image manipulation we have to do, and essentially, we would be cloning flutter_launcher_icons.
Instead, we are solving this with the power of documentation!
For that, we are tracking #768
I am closing this for now.