diff --git a/android/app/src/main/res/mipmap-hdpi/ic_launcher.png b/android/app/src/main/res/mipmap-hdpi/ic_launcher.png
index 10b1c0ddae0ae2c9972003413d99c11b8050babb..0e8b1a7cea27253cc59732375a6be3f21736839b 100644
Binary files a/android/app/src/main/res/mipmap-hdpi/ic_launcher.png and b/android/app/src/main/res/mipmap-hdpi/ic_launcher.png differ
diff --git a/android/app/src/main/res/mipmap-mdpi/ic_launcher.png b/android/app/src/main/res/mipmap-mdpi/ic_launcher.png
index 7a98d75e3263cd0c3ada23bccec5b230f6fb11d1..d3aa70245f9c77d9db2dde46b45b8d40f4eb9e0a 100644
Binary files a/android/app/src/main/res/mipmap-mdpi/ic_launcher.png and b/android/app/src/main/res/mipmap-mdpi/ic_launcher.png differ
diff --git a/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png b/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png
index 4eecceb2353b21e060a934112e5b7c46d86cc397..96e7d6ef2a216a978bc15074ace6250e921c1551 100644
Binary files a/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png and b/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png differ
diff --git a/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png b/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
index 3ce5673ac19737ee93b1d1d40c08812832c6d89d..c82f7b7ef6afdfdb0b1563f16ae952b0794a5898 100644
Binary files a/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png and b/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png differ
diff --git a/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
index 6c1acb7c68faf7c6d6204ba52a6fe2b160412a19..e937ce1ea0b60fb815ae2347fec10c3f82cdebef 100644
Binary files a/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png and b/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png differ
diff --git a/android/gradle.properties b/android/gradle.properties
index 4818be8ca52a6781003f81fbeb0e73520e42eba3..6395f8a4ee8564a4d8b7f792419b33cb88da09a1 100644
--- a/android/gradle.properties
+++ b/android/gradle.properties
@@ -1,5 +1,5 @@
 org.gradle.jvmargs=-Xmx1536M
 android.useAndroidX=true
 android.enableJetifier=true
-app.versionName=1.0.11
-app.versionCode=12
+app.versionName=1.0.12
+app.versionCode=13
diff --git a/fastlane/metadata/android/en-US/changelogs/0.txt b/fastlane/metadata/android/en-US/changelogs/0.txt
new file mode 100644
index 0000000000000000000000000000000000000000..1bdc5cab87c5631b216ee01fb1d70cdcec45109e
--- /dev/null
+++ b/fastlane/metadata/android/en-US/changelogs/0.txt
@@ -0,0 +1 @@
+Initial commit
\ No newline at end of file
diff --git a/fastlane/metadata/android/en-US/changelogs/1.txt b/fastlane/metadata/android/en-US/changelogs/1.txt
new file mode 100644
index 0000000000000000000000000000000000000000..d31cbdf898baef135940db3b747ade854fc694e1
--- /dev/null
+++ b/fastlane/metadata/android/en-US/changelogs/1.txt
@@ -0,0 +1 @@
+First commit, init application
\ No newline at end of file
diff --git a/fastlane/metadata/android/en-US/changelogs/10.txt b/fastlane/metadata/android/en-US/changelogs/10.txt
new file mode 100644
index 0000000000000000000000000000000000000000..0cd579ee1d6ac5bc796c8d5f0b1dfaba9def5f3d
--- /dev/null
+++ b/fastlane/metadata/android/en-US/changelogs/10.txt
@@ -0,0 +1 @@
+Add GPLv3 license file
\ No newline at end of file
diff --git a/fastlane/metadata/android/en-US/changelogs/11.txt b/fastlane/metadata/android/en-US/changelogs/11.txt
new file mode 100644
index 0000000000000000000000000000000000000000..5c8a88e48b7c9ed54d2c97e533821ccc4dcb240b
--- /dev/null
+++ b/fastlane/metadata/android/en-US/changelogs/11.txt
@@ -0,0 +1 @@
+Upgrade flutter framework and dependencies
\ No newline at end of file
diff --git a/fastlane/metadata/android/en-US/changelogs/12.txt b/fastlane/metadata/android/en-US/changelogs/12.txt
new file mode 100644
index 0000000000000000000000000000000000000000..d1140b3e3563c89ada1c0cd78e444666fe9e8a89
--- /dev/null
+++ b/fastlane/metadata/android/en-US/changelogs/12.txt
@@ -0,0 +1 @@
+Clean some code
\ No newline at end of file
diff --git a/fastlane/metadata/android/en-US/changelogs/13.txt b/fastlane/metadata/android/en-US/changelogs/13.txt
new file mode 100644
index 0000000000000000000000000000000000000000..5ddcb4c6802e45bd744b1b3e7c38106ca55be626
--- /dev/null
+++ b/fastlane/metadata/android/en-US/changelogs/13.txt
@@ -0,0 +1 @@
+Improve app metadata, include fdroid metadata in repository
\ No newline at end of file
diff --git a/fastlane/metadata/android/en-US/changelogs/2.txt b/fastlane/metadata/android/en-US/changelogs/2.txt
new file mode 100644
index 0000000000000000000000000000000000000000..bcf2d053699369ae28d07d05b7ea9f7c77751b65
--- /dev/null
+++ b/fastlane/metadata/android/en-US/changelogs/2.txt
@@ -0,0 +1 @@
+Fix application icon
\ No newline at end of file
diff --git a/fastlane/metadata/android/en-US/changelogs/3.txt b/fastlane/metadata/android/en-US/changelogs/3.txt
new file mode 100644
index 0000000000000000000000000000000000000000..d26db9c56d292e8a369e75db972095e2848ccfb5
--- /dev/null
+++ b/fastlane/metadata/android/en-US/changelogs/3.txt
@@ -0,0 +1 @@
+Add icons on menus
\ No newline at end of file
diff --git a/fastlane/metadata/android/en-US/changelogs/4.txt b/fastlane/metadata/android/en-US/changelogs/4.txt
new file mode 100644
index 0000000000000000000000000000000000000000..61f869160a096f9414b68ab8334b0ce620e732f0
--- /dev/null
+++ b/fastlane/metadata/android/en-US/changelogs/4.txt
@@ -0,0 +1 @@
+Reduce font size in menus, fix orientation
\ No newline at end of file
diff --git a/fastlane/metadata/android/en-US/changelogs/5.txt b/fastlane/metadata/android/en-US/changelogs/5.txt
new file mode 100644
index 0000000000000000000000000000000000000000..369e4866c4e9748e5eba76f7a7154b8abf579b8f
--- /dev/null
+++ b/fastlane/metadata/android/en-US/changelogs/5.txt
@@ -0,0 +1 @@
+Improve CI build tasks
\ No newline at end of file
diff --git a/fastlane/metadata/android/en-US/changelogs/6.txt b/fastlane/metadata/android/en-US/changelogs/6.txt
new file mode 100644
index 0000000000000000000000000000000000000000..e318c7f4dfbe532f083452f3fc696b4b1aa8e74d
--- /dev/null
+++ b/fastlane/metadata/android/en-US/changelogs/6.txt
@@ -0,0 +1 @@
+Improve CI/CD, create tag on new release step
\ No newline at end of file
diff --git a/fastlane/metadata/android/en-US/changelogs/7.txt b/fastlane/metadata/android/en-US/changelogs/7.txt
new file mode 100644
index 0000000000000000000000000000000000000000..f854128dce0c85ba879510d36819a80e7672260a
--- /dev/null
+++ b/fastlane/metadata/android/en-US/changelogs/7.txt
@@ -0,0 +1 @@
+Improve CI/CD, fix release, skip jobs
\ No newline at end of file
diff --git a/fastlane/metadata/android/en-US/changelogs/8.txt b/fastlane/metadata/android/en-US/changelogs/8.txt
new file mode 100644
index 0000000000000000000000000000000000000000..53b9ded7b28803e4290110ab7ddabbf46b1895af
--- /dev/null
+++ b/fastlane/metadata/android/en-US/changelogs/8.txt
@@ -0,0 +1 @@
+Add jabber notification on create tag
\ No newline at end of file
diff --git a/fastlane/metadata/android/en-US/changelogs/9.txt b/fastlane/metadata/android/en-US/changelogs/9.txt
new file mode 100644
index 0000000000000000000000000000000000000000..d2375b03ef015cf8fb81cd3e09e791471cc1a502
--- /dev/null
+++ b/fastlane/metadata/android/en-US/changelogs/9.txt
@@ -0,0 +1,2 @@
+Fix display/layout/style
+Improve application icon
\ No newline at end of file
diff --git a/fastlane/metadata/android/en-US/full_description.txt b/fastlane/metadata/android/en-US/full_description.txt
new file mode 100644
index 0000000000000000000000000000000000000000..af66564132f9783f037960a8852c16aa66ad8118
--- /dev/null
+++ b/fastlane/metadata/android/en-US/full_description.txt
@@ -0,0 +1 @@
+Puissance4, simple and classic
\ No newline at end of file
diff --git a/fastlane/metadata/android/en-US/images/featureGraphic.png b/fastlane/metadata/android/en-US/images/featureGraphic.png
new file mode 100644
index 0000000000000000000000000000000000000000..d94cd4c48e61c0b2a131b828585ef141878cbe03
Binary files /dev/null and b/fastlane/metadata/android/en-US/images/featureGraphic.png differ
diff --git a/fastlane/metadata/android/en-US/images/icon.png b/fastlane/metadata/android/en-US/images/icon.png
new file mode 100644
index 0000000000000000000000000000000000000000..b88d18ce458c99c6e370c3557ab7c8863e7e0f16
Binary files /dev/null and b/fastlane/metadata/android/en-US/images/icon.png differ
diff --git a/fastlane/metadata/android/en-US/short_description.txt b/fastlane/metadata/android/en-US/short_description.txt
new file mode 100644
index 0000000000000000000000000000000000000000..af66564132f9783f037960a8852c16aa66ad8118
--- /dev/null
+++ b/fastlane/metadata/android/en-US/short_description.txt
@@ -0,0 +1 @@
+Puissance4, simple and classic
\ No newline at end of file
diff --git a/fastlane/metadata/android/en-US/title.txt b/fastlane/metadata/android/en-US/title.txt
new file mode 100644
index 0000000000000000000000000000000000000000..af66564132f9783f037960a8852c16aa66ad8118
--- /dev/null
+++ b/fastlane/metadata/android/en-US/title.txt
@@ -0,0 +1 @@
+Puissance4, simple and classic
\ No newline at end of file
diff --git a/fastlane/metadata/android/fr-FR/changelogs/0.txt b/fastlane/metadata/android/fr-FR/changelogs/0.txt
new file mode 100644
index 0000000000000000000000000000000000000000..0cc9d7a6fcd401fbc87f617a1e24fb5e70264201
--- /dev/null
+++ b/fastlane/metadata/android/fr-FR/changelogs/0.txt
@@ -0,0 +1 @@
+Premier commit
\ No newline at end of file
diff --git a/fastlane/metadata/android/fr-FR/changelogs/1.txt b/fastlane/metadata/android/fr-FR/changelogs/1.txt
new file mode 100644
index 0000000000000000000000000000000000000000..b3c879ba701134f02fbf89e6c0a44fb75afef345
--- /dev/null
+++ b/fastlane/metadata/android/fr-FR/changelogs/1.txt
@@ -0,0 +1 @@
+Premier commit, création de l'application
\ No newline at end of file
diff --git a/fastlane/metadata/android/fr-FR/changelogs/10.txt b/fastlane/metadata/android/fr-FR/changelogs/10.txt
new file mode 100644
index 0000000000000000000000000000000000000000..e4cc3950010222a720376404c96d7b640fca0147
--- /dev/null
+++ b/fastlane/metadata/android/fr-FR/changelogs/10.txt
@@ -0,0 +1 @@
+Ajout du fichier de licence GPLv3
\ No newline at end of file
diff --git a/fastlane/metadata/android/fr-FR/changelogs/11.txt b/fastlane/metadata/android/fr-FR/changelogs/11.txt
new file mode 100644
index 0000000000000000000000000000000000000000..5df598f5484db54a72c4c13715743b6587b5b4a1
--- /dev/null
+++ b/fastlane/metadata/android/fr-FR/changelogs/11.txt
@@ -0,0 +1 @@
+Mise à jour du framework Flutter et de ses dépendances
\ No newline at end of file
diff --git a/fastlane/metadata/android/fr-FR/changelogs/12.txt b/fastlane/metadata/android/fr-FR/changelogs/12.txt
new file mode 100644
index 0000000000000000000000000000000000000000..40bd48993773c37f07c0805d14f815c948d10c12
--- /dev/null
+++ b/fastlane/metadata/android/fr-FR/changelogs/12.txt
@@ -0,0 +1 @@
+Nettoyage de code
\ No newline at end of file
diff --git a/fastlane/metadata/android/fr-FR/changelogs/13.txt b/fastlane/metadata/android/fr-FR/changelogs/13.txt
new file mode 100644
index 0000000000000000000000000000000000000000..1fc4947ae4830c9795066d2f2022992b1cff4e65
--- /dev/null
+++ b/fastlane/metadata/android/fr-FR/changelogs/13.txt
@@ -0,0 +1 @@
+Ajout des métadata fdroid dans le dépôt
\ No newline at end of file
diff --git a/fastlane/metadata/android/fr-FR/changelogs/2.txt b/fastlane/metadata/android/fr-FR/changelogs/2.txt
new file mode 100644
index 0000000000000000000000000000000000000000..bfaf22c1b0048d4382adcf34adf0d89efcabbd4e
--- /dev/null
+++ b/fastlane/metadata/android/fr-FR/changelogs/2.txt
@@ -0,0 +1 @@
+Correction de l'icone de l'application
\ No newline at end of file
diff --git a/fastlane/metadata/android/fr-FR/changelogs/3.txt b/fastlane/metadata/android/fr-FR/changelogs/3.txt
new file mode 100644
index 0000000000000000000000000000000000000000..4b236018bd8d66e6646fdad648da41b8e97d41b0
--- /dev/null
+++ b/fastlane/metadata/android/fr-FR/changelogs/3.txt
@@ -0,0 +1 @@
+Ajout d'icones dans les menus
\ No newline at end of file
diff --git a/fastlane/metadata/android/fr-FR/changelogs/4.txt b/fastlane/metadata/android/fr-FR/changelogs/4.txt
new file mode 100644
index 0000000000000000000000000000000000000000..56532dba64fb00b19935b843553ec23d532e6865
--- /dev/null
+++ b/fastlane/metadata/android/fr-FR/changelogs/4.txt
@@ -0,0 +1 @@
+Réduction de la taille de police dans les menus, correction sur l'orientation de l'appareil
\ No newline at end of file
diff --git a/fastlane/metadata/android/fr-FR/changelogs/5.txt b/fastlane/metadata/android/fr-FR/changelogs/5.txt
new file mode 100644
index 0000000000000000000000000000000000000000..126ee0b637a0b9bb23ce8be18cb5b2059dc93e07
--- /dev/null
+++ b/fastlane/metadata/android/fr-FR/changelogs/5.txt
@@ -0,0 +1 @@
+Améliorations de la chaine de construction de l'application
\ No newline at end of file
diff --git a/fastlane/metadata/android/fr-FR/changelogs/6.txt b/fastlane/metadata/android/fr-FR/changelogs/6.txt
new file mode 100644
index 0000000000000000000000000000000000000000..ca45d4f524a4d388d8bffcfa3371ea96e78dad94
--- /dev/null
+++ b/fastlane/metadata/android/fr-FR/changelogs/6.txt
@@ -0,0 +1 @@
+Améliorations de la chaine de construction, création d'un tag pour une nouvelle version
\ No newline at end of file
diff --git a/fastlane/metadata/android/fr-FR/changelogs/7.txt b/fastlane/metadata/android/fr-FR/changelogs/7.txt
new file mode 100644
index 0000000000000000000000000000000000000000..bbb4221ff9f5a9141f20dc010d28a4e287abf035
--- /dev/null
+++ b/fastlane/metadata/android/fr-FR/changelogs/7.txt
@@ -0,0 +1 @@
+Améliorations de la chaine de construction, corrections sur la création d'une nouvelle version
\ No newline at end of file
diff --git a/fastlane/metadata/android/fr-FR/changelogs/8.txt b/fastlane/metadata/android/fr-FR/changelogs/8.txt
new file mode 100644
index 0000000000000000000000000000000000000000..25647138bfc1c4cf673d3edba8dbd92473d3150b
--- /dev/null
+++ b/fastlane/metadata/android/fr-FR/changelogs/8.txt
@@ -0,0 +1 @@
+Ajout d'une notification Jabber à la création d'une nouvelle version
\ No newline at end of file
diff --git a/fastlane/metadata/android/fr-FR/changelogs/9.txt b/fastlane/metadata/android/fr-FR/changelogs/9.txt
new file mode 100644
index 0000000000000000000000000000000000000000..56052472bd30d0322d062eeca27d608364bf1c6e
--- /dev/null
+++ b/fastlane/metadata/android/fr-FR/changelogs/9.txt
@@ -0,0 +1,2 @@
+Correction d'affichage, de style et de mise en page
+Amélioration de l'icone de l'application
\ No newline at end of file
diff --git a/fastlane/metadata/android/fr-FR/full_description.txt b/fastlane/metadata/android/fr-FR/full_description.txt
new file mode 100644
index 0000000000000000000000000000000000000000..bf06a5be1d65b01da1741ef2fa9c01b2baf0c4e8
--- /dev/null
+++ b/fastlane/metadata/android/fr-FR/full_description.txt
@@ -0,0 +1 @@
+Puissance4, simple et classique
\ No newline at end of file
diff --git a/fastlane/metadata/android/fr-FR/short_description.txt b/fastlane/metadata/android/fr-FR/short_description.txt
new file mode 100644
index 0000000000000000000000000000000000000000..bf06a5be1d65b01da1741ef2fa9c01b2baf0c4e8
--- /dev/null
+++ b/fastlane/metadata/android/fr-FR/short_description.txt
@@ -0,0 +1 @@
+Puissance4, simple et classique
\ No newline at end of file
diff --git a/fastlane/metadata/android/fr-FR/title.txt b/fastlane/metadata/android/fr-FR/title.txt
new file mode 100644
index 0000000000000000000000000000000000000000..bf06a5be1d65b01da1741ef2fa9c01b2baf0c4e8
--- /dev/null
+++ b/fastlane/metadata/android/fr-FR/title.txt
@@ -0,0 +1 @@
+Puissance4, simple et classique
\ No newline at end of file
diff --git a/fdroid_metadata.yml b/fdroid_metadata.yml
new file mode 100644
index 0000000000000000000000000000000000000000..d60781ddb2a9e6dd96373c5ebd84072be2c51b3a
--- /dev/null
+++ b/fdroid_metadata.yml
@@ -0,0 +1,17 @@
+AuthorName:   'Benoît Harrault'
+Categories:
+  - Games
+Name:         Puissance 4
+AutoName:     Puissance4
+License:      GPL-3.0-only
+WebSite:      'https://git.harrault.fr/android/puissance4'
+SourceCode:   https://git.harrault.fr/android/puissance4
+IssueTracker: https://git.harrault.fr/android/puissance4/issues
+Changelog:    https://git.harrault.fr/android/puissance4/-/tags
+Summary:      ''
+
+Description:  |-
+    Puissance4, simple and classic.
+
+RepoType:     git
+Repo:         'https://git.harrault.fr/android/puissance4.git'
diff --git a/icons/build_icons.sh b/icons/build_application_icons.sh
similarity index 58%
rename from icons/build_icons.sh
rename to icons/build_application_icons.sh
index fa5fb29591c92843af6dc8a81f6b1db72ac5c4ed..7d5ebb61276b80b4034edfc0f4703c7e60c4f5fe 100755
--- a/icons/build_icons.sh
+++ b/icons/build_application_icons.sh
@@ -4,14 +4,23 @@
 command -v inkscape >/dev/null 2>&1 || { echo >&2 "I require inkscape but it's not installed. Aborting."; exit 1; }
 command -v scour >/dev/null 2>&1 || { echo >&2 "I require scour but it's not installed. Aborting."; exit 1; }
 command -v optipng >/dev/null 2>&1 || { echo >&2 "I require optipng but it's not installed. Aborting."; exit 1; }
-command -v convert >/dev/null 2>&1 || { echo >&2 "I require convert (imagemagick) but it's not installed. Aborting."; exit 1; }
 
 CURRENT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" >/dev/null 2>&1 && pwd)"
 BASE_DIR="$(dirname "${CURRENT_DIR}")"
 
 SOURCE="${CURRENT_DIR}/icon.svg"
+SOURCE_FASTLANE="${CURRENT_DIR}/featureGraphic.svg"
+
 OPTIPNG_OPTIONS="-preserve -quiet -o7"
 
+if [ ! -f "${SOURCE}" ]; then
+  echo "Missing file: ${SOURCE}"
+fi
+
+if [ ! -f "${SOURCE_FASTLANE}" ]; then
+  echo "Missing file: ${SOURCE_FASTLANE}"
+fi
+
 # optimize svg
 cp ${SOURCE} ${SOURCE}.tmp
 scour \
@@ -20,6 +29,7 @@ scour \
     --enable-viewboxing \
     --enable-comment-stripping \
     --nindent=4 \
+    --quiet \
     -i ${SOURCE}.tmp \
     -o ${SOURCE}
 rm ${SOURCE}.tmp
@@ -29,6 +39,8 @@ function build_icon() {
   ICON_SIZE="$1"
   TARGET="$2"
 
+  echo "Building ${TARGET}"
+
   TARGET_PNG="${TARGET}.png"
 
   inkscape \
@@ -40,12 +52,42 @@ function build_icon() {
   optipng ${OPTIPNG_OPTIONS} ${TARGET_PNG}
 }
 
+# build fastlane image
+function build_fastlane_image() {
+  WIDTH="$1"
+  HEIGHT="$2"
+  TARGET="$3"
+
+  echo "Building ${TARGET}"
+
+  cp ${SOURCE_FASTLANE} ${SOURCE_FASTLANE}.tmp
+  scour \
+      --remove-descriptive-elements \
+      --enable-id-stripping \
+      --enable-viewboxing \
+      --enable-comment-stripping \
+      --nindent=4 \
+      --quiet \
+      -i ${SOURCE_FASTLANE}.tmp \
+      -o ${SOURCE_FASTLANE}
+  rm ${SOURCE_FASTLANE}.tmp
+
+  TARGET_PNG="${TARGET}.png"
+
+  inkscape \
+      --export-width=${WIDTH} \
+      --export-height=${HEIGHT} \
+      --export-filename=${TARGET_PNG} \
+      ${SOURCE_FASTLANE}
+
+  optipng ${OPTIPNG_OPTIONS} ${TARGET_PNG}
+}
 
 build_icon  72 ${BASE_DIR}/android/app/src/main/res/mipmap-hdpi/ic_launcher
 build_icon  48 ${BASE_DIR}/android/app/src/main/res/mipmap-mdpi/ic_launcher
 build_icon  96 ${BASE_DIR}/android/app/src/main/res/mipmap-xhdpi/ic_launcher
 build_icon 144 ${BASE_DIR}/android/app/src/main/res/mipmap-xxhdpi/ic_launcher
 build_icon 192 ${BASE_DIR}/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher
+build_icon 512 ${BASE_DIR}/fastlane/metadata/android/en-US/images/icon
 
-build_icon 192 ${BASE_DIR}/web/icons/Icon-192
-build_icon 512 ${BASE_DIR}/web/icons/Icon-512
+build_fastlane_image 1024 500 ${BASE_DIR}/fastlane/metadata/android/en-US/images/featureGraphic
diff --git a/icons/build_game_icons.sh b/icons/build_game_icons.sh
new file mode 100755
index 0000000000000000000000000000000000000000..218080d1eb12952690ba1e182a468f6e3cf03d65
--- /dev/null
+++ b/icons/build_game_icons.sh
@@ -0,0 +1,98 @@
+#! /bin/bash
+
+# Check dependencies
+command -v inkscape >/dev/null 2>&1 || { echo >&2 "I require inkscape but it's not installed. Aborting."; exit 1; }
+command -v scour >/dev/null 2>&1 || { echo >&2 "I require scour but it's not installed. Aborting."; exit 1; }
+command -v optipng >/dev/null 2>&1 || { echo >&2 "I require optipng but it's not installed. Aborting."; exit 1; }
+
+CURRENT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" >/dev/null 2>&1 && pwd)"
+BASE_DIR="$(dirname "${CURRENT_DIR}")"
+ASSETS_DIR="${BASE_DIR}/assets"
+
+OPTIPNG_OPTIONS="-preserve -quiet -o7"
+ICON_SIZE=192
+
+#######################################################
+
+# Game images
+AVAILABLE_GAME_IMAGES="
+"
+
+# Settings images
+AVAILABLES_GAME_SETTINGS="
+"
+
+#######################################################
+
+# optimize svg
+function optimize_svg() {
+  SOURCE="$1"
+
+  cp ${SOURCE} ${SOURCE}.tmp
+  scour \
+      --remove-descriptive-elements \
+      --enable-id-stripping \
+      --enable-viewboxing \
+      --enable-comment-stripping \
+      --nindent=4 \
+      --quiet \
+      -i ${SOURCE}.tmp \
+      -o ${SOURCE}
+  rm ${SOURCE}.tmp
+}
+
+# build icons
+function build_icon() {
+  SOURCE="$1"
+  TARGET="$2"
+
+  echo "Building ${TARGET}"
+
+  if [ ! -f "${SOURCE}" ]; then
+    echo "Missing file: ${SOURCE}"
+    exit 1
+  fi
+
+  optimize_svg "${SOURCE}"
+
+  inkscape \
+      --export-width=${ICON_SIZE} \
+      --export-height=${ICON_SIZE} \
+      --export-filename=${TARGET} \
+      ${SOURCE}
+
+  optipng ${OPTIPNG_OPTIONS} ${TARGET}
+}
+
+function build_settings_icons() {
+  INPUT_STRING="$1"
+
+  SETTING_NAME="$(echo "${INPUT_STRING}" | cut -d":" -f1)"
+  SETTING_VALUES="$(echo "${INPUT_STRING}" | cut -d":" -f2 | tr "," " ")"
+
+  for SETTING_VALUE in ${SETTING_VALUES}
+  do
+    SETTING_CODE="${SETTING_NAME}_${SETTING_VALUE}"
+    build_icon ${CURRENT_DIR}/${SETTING_CODE}.svg ${ASSETS_DIR}/icons/${SETTING_CODE}.png
+  done
+}
+
+#######################################################
+
+# Create output folders
+mkdir -p ${ASSETS_DIR}/icons
+
+# Delete existing generated images
+find ${ASSETS_DIR}/icons -type f -name "*.png" -delete
+
+# build game images
+for GAME_IMAGE in ${AVAILABLE_GAME_IMAGES}
+do
+  build_icon ${CURRENT_DIR}/${GAME_IMAGE}.svg ${ASSETS_DIR}/icons/${GAME_IMAGE}.png
+done
+
+# build settings images
+for GAME_SETTING in ${AVAILABLES_GAME_SETTINGS}
+do
+  build_settings_icons "${GAME_SETTING}"
+done
diff --git a/icons/featureGraphic.svg b/icons/featureGraphic.svg
new file mode 100644
index 0000000000000000000000000000000000000000..2033f317c082bce27115e88ca068d358b08318d0
--- /dev/null
+++ b/icons/featureGraphic.svg
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg enable-background="new 0 0 100 100" version="1.1" viewBox="0 0 1024 500" xml:space="preserve" xmlns="http://www.w3.org/2000/svg"><rect width="1024" height="500" rx="0" ry="0" fill="#977cff"/></svg>
diff --git a/pubspec.yaml b/pubspec.yaml
index d6521c6afefc496d365d0cde9d1cbf64f0e91ee7..f9e000c7fd7eac18eee83ad24f0e100f8aaca04b 100644
--- a/pubspec.yaml
+++ b/pubspec.yaml
@@ -4,7 +4,7 @@ publish_to: 'none'
 version: 1.0.0+1
 
 environment:
-  sdk: ">=2.12.0 <3.0.0"
+  sdk: ">=2.16.1 <3.0.0"
 
 dependencies:
   flutter: