Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: Adding very_good icons #481

Closed
maximveksler opened this issue Aug 9, 2022 · 9 comments
Closed

feat: Adding very_good icons #481

maximveksler opened this issue Aug 9, 2022 · 9 comments
Labels
feature A new feature or request

Comments

@maximveksler
Copy link

maximveksler commented Aug 9, 2022

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 maximveksler added the bug Something isn't working as expected label Aug 9, 2022
@CartmanGD
Copy link

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
Copy link

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

@nehal076
Copy link

Any update on this ?

@ignertic
Copy link

Anyone with a workaround for this ?

@chrisgate
Copy link

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

@dawid-niedzwiecki
Copy link

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

I also need to know

@aalex
Copy link

aalex commented Mar 20, 2023

I’ve opened a bug ticket in flutter_launcher_icons : fluttercommunity/flutter_launcher_icons#466

@MarkOSullivan94
Copy link

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

fluttercommunity/flutter_launcher_icons#466 (comment)

This should help for the Android icons, I haven't spent time looking into the iOS icons yet

@renancaraujo
Copy link
Contributor

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feature A new feature or request
Projects
Development

No branches or pull requests

9 participants