very_good_cli icon indicating copy to clipboard operation
very_good_cli copied to clipboard

feat: Adding `very_good icons`

Open maximveksler opened this issue 1 year ago • 2 comments

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

maximveksler avatar Aug 09 '22 10:08 maximveksler

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

CartmanGD avatar Aug 16 '22 20:08 CartmanGD

Can I delete all the files and just run flutter_launcher_icons? Or is there a way to override all those files (not manually!)

CartmanGD avatar Aug 17 '22 09:08 CartmanGD

Any update on this ?

nehal076 avatar Sep 27 '22 05:09 nehal076

Anyone with a workaround for this ?

ignertic avatar Oct 25 '22 06:10 ignertic

following this link https://stackoverflow.com/a/52671273/6014172 then you will be fine

chrisgate avatar Dec 01 '22 11:12 chrisgate

https://stackoverflow.com/a/52671273/6014172

I also need to know

dawid-niedzwiecki avatar Dec 23 '22 13:12 dawid-niedzwiecki

I’ve opened a bug ticket in flutter_launcher_icons : https://github.com/fluttercommunity/flutter_launcher_icons/issues/466

aalex avatar Mar 20 '23 19:03 aalex

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 the mipmap-anydpi-v26 for both main 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

MarkOSullivan94 avatar Apr 19 '23 12:04 MarkOSullivan94

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.

renancaraujo avatar Aug 03 '23 14:08 renancaraujo