diff --git a/android/gradle.properties b/android/gradle.properties
index 14eed3944b547f02179b1b42f4b601f91b7957c0..aa51064abebb79ba519e600afb7af23779154d4e 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=0.0.4
-app.versionCode=4
+app.versionName=0.0.5
+app.versionCode=5
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..2bbe4a913393aeeceb8a7d8c9812849dd191a35e
--- /dev/null
+++ b/fastlane/metadata/android/en-US/changelogs/5.txt
@@ -0,0 +1 @@
+Upgrade Flutter framework and dependencies, clean some code
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..864ad0a1475fcf2e546cb12d3c49c1d895ef43b2
--- /dev/null
+++ b/fastlane/metadata/android/fr-FR/changelogs/5.txt
@@ -0,0 +1 @@
+Mise à jour du framework Flutter et de ses dépendances, nettoyage de code
diff --git a/ios/Flutter/Generated.xcconfig b/ios/Flutter/Generated.xcconfig
index 4af11693640741b35411f1104efca88396610b1d..afe693b45ed348a5935fec534c7c9b5f1b3143f4 100644
--- a/ios/Flutter/Generated.xcconfig
+++ b/ios/Flutter/Generated.xcconfig
@@ -7,7 +7,8 @@ FLUTTER_BUILD_DIR=build
 FLUTTER_BUILD_NAME=1.0.0
 FLUTTER_BUILD_NUMBER=1
 EXCLUDED_ARCHS[sdk=iphonesimulator*]=i386
+EXCLUDED_ARCHS[sdk=iphoneos*]=armv7
 DART_OBFUSCATION=false
-TRACK_WIDGET_CREATION=false
+TRACK_WIDGET_CREATION=true
 TREE_SHAKE_ICONS=false
 PACKAGE_CONFIG=.dart_tool/package_config.json
diff --git a/ios/Flutter/flutter_export_environment.sh b/ios/Flutter/flutter_export_environment.sh
index e945041d386dbdd86aabefa55ed6e13a5c6906c0..8201732940780f08ac40f6457e9e921c1b01290f 100755
--- a/ios/Flutter/flutter_export_environment.sh
+++ b/ios/Flutter/flutter_export_environment.sh
@@ -8,6 +8,6 @@ export "FLUTTER_BUILD_DIR=build"
 export "FLUTTER_BUILD_NAME=1.0.0"
 export "FLUTTER_BUILD_NUMBER=1"
 export "DART_OBFUSCATION=false"
-export "TRACK_WIDGET_CREATION=false"
+export "TRACK_WIDGET_CREATION=true"
 export "TREE_SHAKE_ICONS=false"
 export "PACKAGE_CONFIG=.dart_tool/package_config.json"
diff --git a/lib/layout/game.dart b/lib/layout/game.dart
index 980f0ca96ce62fd4037f429503eede3b40f3f8f1..50665042385cbfb71937a216dfa84df3e928ebab 100644
--- a/lib/layout/game.dart
+++ b/lib/layout/game.dart
@@ -1,12 +1,9 @@
-import 'dart:math';
-
 import 'package:flutter/material.dart';
 
 import '../provider/data.dart';
 import '../utils/game_utils.dart';
 
 class Game {
-
   static Container buildGameWidget(Data myProvider) {
     bool gameIsFinished = myProvider.isGameFinished();
 
@@ -25,9 +22,7 @@ class Game {
           Container(
             height: 150,
             width: double.maxFinite,
-            child: gameIsFinished
-              ? Game.buildEndGameMessage(myProvider)
-              : Text('CONTROLS'),
+            child: gameIsFinished ? Game.buildEndGameMessage(myProvider) : Text('CONTROLS'),
           ),
         ],
       ),
@@ -39,46 +34,42 @@ class Game {
       children: [
         TableRow(
           children: [
-            Column(
-              children: [
-                Text(
-                  'SCORE',
-                  style: TextStyle(
-                    fontSize: 40,
-                    fontWeight: FontWeight.w600,
-                    color: Colors.black,
-                  ),
+            Column(children: [
+              Text(
+                'SCORE',
+                style: TextStyle(
+                  fontSize: 40,
+                  fontWeight: FontWeight.w600,
+                  color: Colors.black,
                 ),
-                Text(
-                  'TARGET',
-                  style: TextStyle(
-                    fontSize: 15,
-                    fontWeight: FontWeight.w600,
-                    color: Colors.grey,
-                  ),
+              ),
+              Text(
+                'TARGET',
+                style: TextStyle(
+                  fontSize: 15,
+                  fontWeight: FontWeight.w600,
+                  color: Colors.grey,
                 ),
-              ]
-            ),
-            Column(
-              children: [
-                Text(
-                  'INFOS',
-                  style: TextStyle(
-                    fontSize: 20,
-                    fontWeight: FontWeight.w600,
-                    color: Colors.green,
-                  ),
+              ),
+            ]),
+            Column(children: [
+              Text(
+                'INFOS',
+                style: TextStyle(
+                  fontSize: 20,
+                  fontWeight: FontWeight.w600,
+                  color: Colors.green,
                 ),
-              ]
-            ),
+              ),
+            ]),
           ],
         ),
       ],
     );
   }
 
-  static FlatButton buildRestartGameButton(Data myProvider) {
-    return FlatButton(
+  static TextButton buildRestartGameButton(Data myProvider) {
+    return TextButton(
       child: Container(
         child: Image(
           image: AssetImage('assets/icons/button_back.png'),
@@ -97,28 +88,20 @@ class Game {
       decorationImageAssetName = 'assets/icons/game_fail.png';
     }
 
-    Image decorationImage = Image(
-      image: AssetImage(decorationImageAssetName),
-      fit: BoxFit.fill
-    );
+    Image decorationImage =
+        Image(image: AssetImage(decorationImageAssetName), fit: BoxFit.fill);
 
     return Container(
-      margin: EdgeInsets.all(2),
-      padding: EdgeInsets.all(2),
-
-      child: Table(
-        defaultColumnWidth: IntrinsicColumnWidth(),
-        children: [
+        margin: EdgeInsets.all(2),
+        padding: EdgeInsets.all(2),
+        child: Table(defaultColumnWidth: IntrinsicColumnWidth(), children: [
           TableRow(
             children: [
-              Column(children: [ decorationImage ]),
-              Column(children: [ buildRestartGameButton(myProvider) ]),
-              Column(children: [ decorationImage ]),
+              Column(children: [decorationImage]),
+              Column(children: [buildRestartGameButton(myProvider)]),
+              Column(children: [decorationImage]),
             ],
           ),
-        ]
-      )
-    );
+        ]));
   }
-
 }
diff --git a/lib/layout/parameters.dart b/lib/layout/parameters.dart
index 6f29867bf36c40408a9ddc8c3da8112bd41a7faa..c7541138fcec29a6d1ec820cd27606202d5d2e4d 100644
--- a/lib/layout/parameters.dart
+++ b/lib/layout/parameters.dart
@@ -4,7 +4,6 @@ import '../provider/data.dart';
 import '../utils/game_utils.dart';
 
 class Parameters {
-
   static Container buildParametersSelector(Data myProvider) {
     return Container(
       child: Column(
@@ -34,44 +33,32 @@ class Parameters {
   }
 
   static Container buildStartGameButton(Data myProvider) {
-    Column decorationImage = Column(
-      children: [
-        Image(
-          image: AssetImage('assets/icons/game_win.png'),
-          fit: BoxFit.fill
-        ),
-      ]
-    );
+    Column decorationImage = Column(children: [
+      Image(image: AssetImage('assets/icons/game_win.png'), fit: BoxFit.fill),
+    ]);
 
     return Container(
-      margin: EdgeInsets.all(2),
-      padding: EdgeInsets.all(2),
-
-      child: Table(
-        defaultColumnWidth: IntrinsicColumnWidth(),
-        children: [
+        margin: EdgeInsets.all(2),
+        padding: EdgeInsets.all(2),
+        child: Table(defaultColumnWidth: IntrinsicColumnWidth(), children: [
           TableRow(
             children: [
               decorationImage,
-              Column(
-                children: [
-                  FlatButton(
-                    child: Container(
-                      child: Image(
-                        image: AssetImage('assets/icons/button_start.png'),
-                        fit: BoxFit.fill,
-                      ),
+              Column(children: [
+                TextButton(
+                  child: Container(
+                    child: Image(
+                      image: AssetImage('assets/icons/button_start.png'),
+                      fit: BoxFit.fill,
                     ),
-                    onPressed: () => GameUtils.startGame(myProvider),
                   ),
-                ]
-              ),
+                  onPressed: () => GameUtils.startGame(myProvider),
+                ),
+              ]),
               decorationImage,
             ],
           ),
-        ]
-      )
-    );
+        ]));
   }
 
   static Widget buildParameterSelector(Data myProvider, String parameterCode) {
@@ -87,18 +74,17 @@ class Parameters {
         TableRow(
           children: [
             for (var index = 0; index < availableValues.length; index++)
-              Column(
-                children: [
-                  _buildParameterButton(myProvider, parameterCode, availableValues[index])
-                ]
-              ),
+              Column(children: [
+                _buildParameterButton(myProvider, parameterCode, availableValues[index])
+              ]),
           ],
         ),
       ],
     );
   }
 
-  static TextButton _buildParameterButton(Data myProvider, String parameterCode, String parameterValue) {
+  static TextButton _buildParameterButton(
+      Data myProvider, String parameterCode, String parameterValue) {
     String currentValue = myProvider.getParameterValue(parameterCode).toString();
 
     bool isActive = (parameterValue == currentValue);
@@ -123,5 +109,4 @@ class Parameters {
       onPressed: () => myProvider.setParameterValue(parameterCode, parameterValue),
     );
   }
-
 }
diff --git a/lib/provider/data.dart b/lib/provider/data.dart
index 1f0872cfa00f1c71babea2c63514d3ee230de9e8..01bd3706624825294397ced4fbeb9f93c4ed4b02 100644
--- a/lib/provider/data.dart
+++ b/lib/provider/data.dart
@@ -2,7 +2,6 @@ import 'package:flutter/foundation.dart';
 import 'package:shared_preferences/shared_preferences.dart';
 
 class Data extends ChangeNotifier {
-
   // Configuration available values
   List _availableLevelValues = ['easy', 'medium', 'hard'];
   List _availableSkinValues = ['default', 'images'];
@@ -28,37 +27,52 @@ class Data extends ChangeNotifier {
     _parameterLevel = parameterLevel;
     notifyListeners();
   }
+
   void updateParameterSkin(String parameterSkin) {
     _parameterSkin = parameterSkin;
     notifyListeners();
   }
 
   String getParameterValue(String parameterCode) {
-    switch(parameterCode) {
-      case 'level': { return _parameterLevel; }
-      break;
-      case 'skin': { return _parameterSkin; }
-      break;
+    switch (parameterCode) {
+      case 'level':
+        {
+          return _parameterLevel;
+        }
+      case 'skin':
+        {
+          return _parameterSkin;
+        }
     }
     return '';
   }
 
   List getParameterAvailableValues(String parameterCode) {
-    switch(parameterCode) {
-      case 'level': { return _availableLevelValues; }
-      break;
-      case 'skin': { return _availableSkinValues; }
-      break;
+    switch (parameterCode) {
+      case 'level':
+        {
+          return _availableLevelValues;
+        }
+      case 'skin':
+        {
+          return _availableSkinValues;
+        }
     }
     return [];
   }
 
   setParameterValue(String parameterCode, String parameterValue) async {
-    switch(parameterCode) {
-      case 'level': { updateParameterLevel(parameterValue); }
-      break;
-      case 'skin': { updateParameterSkin(parameterValue); }
-      break;
+    switch (parameterCode) {
+      case 'level':
+        {
+          updateParameterLevel(parameterValue);
+        }
+        break;
+      case 'skin':
+        {
+          updateParameterSkin(parameterValue);
+        }
+        break;
     }
     final prefs = await SharedPreferences.getInstance();
     prefs.setString(parameterCode, parameterValue);
@@ -91,5 +105,4 @@ class Data extends ChangeNotifier {
     _gameWon = false;
     notifyListeners();
   }
-
 }
diff --git a/lib/screens/home.dart b/lib/screens/home.dart
index 1381d16b440973da96a90597717c719d2a262b58..7126080adbdb788b5df784d4e19f6af93f34743c 100644
--- a/lib/screens/home.dart
+++ b/lib/screens/home.dart
@@ -31,7 +31,7 @@ class _HomeState extends State<Home> {
 
     if (myProvider.gameIsRunning) {
       menuActions = [
-        FlatButton(
+        TextButton(
           child: Container(
             decoration: BoxDecoration(
               borderRadius: BorderRadius.circular(4),
@@ -41,10 +41,7 @@ class _HomeState extends State<Home> {
               ),
             ),
             margin: EdgeInsets.all(8),
-            child: Image(
-              image: AssetImage('assets/icons/button_back.png'),
-              fit: BoxFit.fill
-            ),
+            child: Image(image: AssetImage('assets/icons/button_back.png'), fit: BoxFit.fill),
           ),
           onPressed: () => toast('Long press to quit game...'),
           onLongPress: () => GameUtils.resetGame(myProvider),
@@ -53,16 +50,14 @@ class _HomeState extends State<Home> {
     }
 
     return Scaffold(
-      appBar: AppBar(
-        actions: menuActions,
-      ),
-      body: SafeArea(
-        child: Center(
-          child: myProvider.gameIsRunning
-            ? Game.buildGameWidget(myProvider)
-            : Parameters.buildParametersSelector(myProvider)
+        appBar: AppBar(
+          actions: menuActions,
         ),
-      )
-    );
+        body: SafeArea(
+          child: Center(
+              child: myProvider.gameIsRunning
+                  ? Game.buildGameWidget(myProvider)
+                  : Parameters.buildParametersSelector(myProvider)),
+        ));
   }
 }
diff --git a/pubspec.lock b/pubspec.lock
index a8aeb511abf801d6cd36b4fa0fe2b5a422a317df..c6a8d1d185d50a811c7dc375a759a3567d303e2f 100644
--- a/pubspec.lock
+++ b/pubspec.lock
@@ -7,7 +7,7 @@ packages:
       name: async
       url: "https://pub.dartlang.org"
     source: hosted
-    version: "2.8.2"
+    version: "2.9.0"
   boolean_selector:
     dependency: transitive
     description:
@@ -21,21 +21,14 @@ packages:
       name: characters
       url: "https://pub.dartlang.org"
     source: hosted
-    version: "1.2.0"
-  charcode:
-    dependency: transitive
-    description:
-      name: charcode
-      url: "https://pub.dartlang.org"
-    source: hosted
-    version: "1.3.1"
+    version: "1.2.1"
   clock:
     dependency: transitive
     description:
       name: clock
       url: "https://pub.dartlang.org"
     source: hosted
-    version: "1.1.0"
+    version: "1.1.1"
   collection:
     dependency: transitive
     description:
@@ -49,21 +42,21 @@ packages:
       name: fake_async
       url: "https://pub.dartlang.org"
     source: hosted
-    version: "1.3.0"
+    version: "1.3.1"
   ffi:
     dependency: transitive
     description:
       name: ffi
       url: "https://pub.dartlang.org"
     source: hosted
-    version: "2.0.0"
+    version: "2.0.1"
   file:
     dependency: transitive
     description:
       name: file
       url: "https://pub.dartlang.org"
     source: hosted
-    version: "6.1.2"
+    version: "6.1.4"
   flutter:
     dependency: "direct main"
     description: flutter
@@ -92,21 +85,21 @@ packages:
       name: matcher
       url: "https://pub.dartlang.org"
     source: hosted
-    version: "0.12.11"
+    version: "0.12.12"
   material_color_utilities:
     dependency: transitive
     description:
       name: material_color_utilities
       url: "https://pub.dartlang.org"
     source: hosted
-    version: "0.1.4"
+    version: "0.1.5"
   meta:
     dependency: transitive
     description:
       name: meta
       url: "https://pub.dartlang.org"
     source: hosted
-    version: "1.7.0"
+    version: "1.8.0"
   nested:
     dependency: transitive
     description:
@@ -127,7 +120,7 @@ packages:
       name: path
       url: "https://pub.dartlang.org"
     source: hosted
-    version: "1.8.1"
+    version: "1.8.2"
   path_provider_linux:
     dependency: transitive
     description:
@@ -148,7 +141,7 @@ packages:
       name: path_provider_windows
       url: "https://pub.dartlang.org"
     source: hosted
-    version: "2.1.0"
+    version: "2.1.3"
   platform:
     dependency: transitive
     description:
@@ -162,7 +155,7 @@ packages:
       name: plugin_platform_interface
       url: "https://pub.dartlang.org"
     source: hosted
-    version: "2.1.2"
+    version: "2.1.3"
   process:
     dependency: transitive
     description:
@@ -190,7 +183,7 @@ packages:
       name: shared_preferences_android
       url: "https://pub.dartlang.org"
     source: hosted
-    version: "2.0.12"
+    version: "2.0.13"
   shared_preferences_ios:
     dependency: transitive
     description:
@@ -218,7 +211,7 @@ packages:
       name: shared_preferences_platform_interface
       url: "https://pub.dartlang.org"
     source: hosted
-    version: "2.0.0"
+    version: "2.1.0"
   shared_preferences_web:
     dependency: transitive
     description:
@@ -244,7 +237,7 @@ packages:
       name: source_span
       url: "https://pub.dartlang.org"
     source: hosted
-    version: "1.8.2"
+    version: "1.9.0"
   stack_trace:
     dependency: transitive
     description:
@@ -265,21 +258,21 @@ packages:
       name: string_scanner
       url: "https://pub.dartlang.org"
     source: hosted
-    version: "1.1.0"
+    version: "1.1.1"
   term_glyph:
     dependency: transitive
     description:
       name: term_glyph
       url: "https://pub.dartlang.org"
     source: hosted
-    version: "1.2.0"
+    version: "1.2.1"
   test_api:
     dependency: transitive
     description:
       name: test_api
       url: "https://pub.dartlang.org"
     source: hosted
-    version: "0.4.9"
+    version: "0.4.12"
   vector_math:
     dependency: transitive
     description:
@@ -293,14 +286,14 @@ packages:
       name: win32
       url: "https://pub.dartlang.org"
     source: hosted
-    version: "2.7.0"
+    version: "3.0.0"
   xdg_directories:
     dependency: transitive
     description:
       name: xdg_directories
       url: "https://pub.dartlang.org"
     source: hosted
-    version: "0.2.0+1"
+    version: "0.2.0+2"
 sdks:
   dart: ">=2.17.0 <3.0.0"
   flutter: ">=3.0.0"
diff --git a/test/widget_test.dart b/test/widget_test.dart
deleted file mode 100644
index 517cd573d98c112fc71276004c7f0f76d1677588..0000000000000000000000000000000000000000
--- a/test/widget_test.dart
+++ /dev/null
@@ -1,30 +0,0 @@
-// This is a basic Flutter widget test.
-//
-// To perform an interaction with a widget in your test, use the WidgetTester
-// utility that Flutter provides. For example, you can send tap and scroll
-// gestures. You can also use WidgetTester to find child widgets in the widget
-// tree, read text, and verify that the values of widget properties are correct.
-
-import 'package:flutter/material.dart';
-import 'package:flutter_test/flutter_test.dart';
-
-import 'package:calculus/main.dart';
-
-void main() {
-  testWidgets('Counter increments smoke test', (WidgetTester tester) async {
-    // Build our app and trigger a frame.
-    await tester.pumpWidget(const MyApp());
-
-    // Verify that our counter starts at 0.
-    expect(find.text('0'), findsOneWidget);
-    expect(find.text('1'), findsNothing);
-
-    // Tap the '+' icon and trigger a frame.
-    await tester.tap(find.byIcon(Icons.add));
-    await tester.pump();
-
-    // Verify that our counter has incremented.
-    expect(find.text('0'), findsNothing);
-    expect(find.text('1'), findsOneWidget);
-  });
-}