diff --git a/analysis_options.yaml b/analysis_options.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..f9b303465f19b5fbf5ec669cd083c9cc38ecda9a
--- /dev/null
+++ b/analysis_options.yaml
@@ -0,0 +1 @@
+include: package:flutter_lints/flutter.yaml
diff --git a/android/app/build.gradle b/android/app/build.gradle
index 4f6811fe7f673bb298dad54c13561be0a840fbe0..052bdddb64e23df130d41a7bc34d0f5398d43de9 100644
--- a/android/app/build.gradle
+++ b/android/app/build.gradle
@@ -44,7 +44,7 @@ android {
 
     defaultConfig {
         applicationId "org.benoitharrault.momomotus"
-        minSdkVersion 16
+        minSdkVersion flutter.minSdkVersion
         targetSdkVersion 30
         versionCode appVersionCode.toInteger()
         versionName appVersionName
diff --git a/android/gradle.properties b/android/gradle.properties
index 357cef39a7f1619a4f0ba1c191a85a0dd10b7266..f0fcf6cdd8fc72bc76b35e7be0dc622b20c03b0f 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.25
-app.versionCode=25
+app.versionName=0.0.26
+app.versionCode=26
diff --git a/fastlane/metadata/android/en-US/changelogs/26.txt b/fastlane/metadata/android/en-US/changelogs/26.txt
new file mode 100644
index 0000000000000000000000000000000000000000..6ab11150150fc75a46c9acc317890208e5a120b9
--- /dev/null
+++ b/fastlane/metadata/android/en-US/changelogs/26.txt
@@ -0,0 +1 @@
+Add automatic flutter linter. Apply code lints. Update dependencies.
diff --git a/fastlane/metadata/android/fr-FR/changelogs/26.txt b/fastlane/metadata/android/fr-FR/changelogs/26.txt
new file mode 100644
index 0000000000000000000000000000000000000000..315dd65b6fea52abf09c73bd8b62e0a6e41082b7
--- /dev/null
+++ b/fastlane/metadata/android/fr-FR/changelogs/26.txt
@@ -0,0 +1 @@
+Ajout d'un correcteur automatique de code. Application des correction. Mise à jour des dépendances.
diff --git a/lib/layout/board.dart b/lib/layout/board.dart
index 17b35c4c40248c6047dae28ae304603eb0693891..bbec9314ddda93544bb0b932ce1938f49bf4b14f 100644
--- a/lib/layout/board.dart
+++ b/lib/layout/board.dart
@@ -27,7 +27,7 @@ class Board {
       }
 
       Image imageWidget = Image(
-        image: AssetImage('assets/skins/' + skin + '_' + cellImage + '.png'),
+        image: AssetImage('assets/skins/${skin}_$cellImage.png'),
         fit: BoxFit.fill,
       );
 
@@ -124,7 +124,7 @@ class Board {
     if (myProvider.isGameFinished() && !myProvider.gameWon) {
       gameBoard.add(Text(
         myProvider.word,
-        style: TextStyle(
+        style: const TextStyle(
           fontSize: 40,
           fontWeight: FontWeight.bold,
         ),
@@ -133,7 +133,7 @@ class Board {
 
     return Container(
       margin: EdgeInsets.symmetric(horizontal: horizontalMargins),
-      padding: EdgeInsets.all(2),
+      padding: const EdgeInsets.all(2),
       child: Column(
         children: gameBoard,
       ),
diff --git a/lib/layout/game.dart b/lib/layout/game.dart
index 1e08a793058052bd87b0beafb1c95f3e5b4c03ec..4110e266f73602b903678e84a9c0196e5c68e73a 100644
--- a/lib/layout/game.dart
+++ b/lib/layout/game.dart
@@ -6,33 +6,31 @@ import '../provider/data.dart';
 import '../utils/game_utils.dart';
 
 class Game {
-  static Container buildGameWidget(Data myProvider) {
+  static Widget buildGameWidget(Data myProvider) {
     bool gameIsFinished = myProvider.isGameFinished();
 
-    return Container(
-      child: Column(
-        mainAxisAlignment: MainAxisAlignment.start,
-        crossAxisAlignment: CrossAxisAlignment.center,
-        children: [
-          Expanded(
-            child: Board.buildGameBoard(myProvider),
-          ),
-          SizedBox(height: 2),
-          Container(
-            height: 150,
-            width: double.maxFinite,
-            child: gameIsFinished
-                ? Game.buildEndGameMessage(myProvider)
-                : Keyboard.buildWidget(myProvider),
-          ),
-        ],
-      ),
+    return Column(
+      mainAxisAlignment: MainAxisAlignment.start,
+      crossAxisAlignment: CrossAxisAlignment.center,
+      children: [
+        Expanded(
+          child: Board.buildGameBoard(myProvider),
+        ),
+        const SizedBox(height: 2),
+        SizedBox(
+          height: 150,
+          width: double.maxFinite,
+          child: gameIsFinished
+              ? Game.buildEndGameMessage(myProvider)
+              : Keyboard.buildWidget(myProvider),
+        ),
+      ],
     );
   }
 
   static TextButton buildQuitGameButton(Data myProvider) {
     return TextButton(
-      child: Image(
+      child: const Image(
         image: AssetImage('assets/icons/button_back.png'),
         fit: BoxFit.fill,
       ),
@@ -53,14 +51,14 @@ class Game {
         image: AssetImage(decorationImageAssetName),
         fit: BoxFit.fill,
       ),
-      onPressed: () => null,
+      onPressed: () {},
     );
 
     return Container(
-      margin: EdgeInsets.all(2),
-      padding: EdgeInsets.all(2),
+      margin: const EdgeInsets.all(2),
+      padding: const EdgeInsets.all(2),
       child: Table(
-        defaultColumnWidth: IntrinsicColumnWidth(),
+        defaultColumnWidth: const IntrinsicColumnWidth(),
         children: [
           TableRow(
             children: [
diff --git a/lib/layout/keyboard.dart b/lib/layout/keyboard.dart
index 5dd9d1fe4ced96203acf2d122eba6dbd951354de..c68931d68d19c873747e9d1f4268c8fd9c403a6e 100644
--- a/lib/layout/keyboard.dart
+++ b/lib/layout/keyboard.dart
@@ -22,13 +22,13 @@ class Keyboard {
       Color keyColor = Colors.black;
 
       if (key == ' ') {
-        return SizedBox();
+        return const SizedBox();
       }
 
       return Stack(
         alignment: Alignment.center,
         children: <Widget>[
-          Image(
+          const Image(
             image: AssetImage('assets/icons/key.png'),
             fit: BoxFit.fill,
           ),
@@ -62,19 +62,19 @@ class Keyboard {
     }
 
     List<TableRow> tableRows = [];
-    keys.forEach((row) {
+    for (var row in keys) {
       List<TableCell> tableCells = [];
-      row.forEach((key) {
+      for (var key in row) {
         tableCells.add(TableCell(
           child: buildKeyWidget(key),
         ));
-      });
+      }
       tableRows.add(TableRow(children: tableCells));
-    });
+    }
 
     return Container(
-      margin: EdgeInsets.symmetric(horizontal: 2),
-      padding: EdgeInsets.all(2),
+      margin: const EdgeInsets.symmetric(horizontal: 2),
+      padding: const EdgeInsets.all(2),
       child: Table(
         defaultVerticalAlignment: TableCellVerticalAlignment.middle,
         children: tableRows,
diff --git a/lib/layout/parameters.dart b/lib/layout/parameters.dart
index a9faa02f5608bcd12ab7963e6659bc14242ba491..cfee15552da24652725f4c2004dc34d60cf8cbe6 100644
--- a/lib/layout/parameters.dart
+++ b/lib/layout/parameters.dart
@@ -6,26 +6,26 @@ import '../utils/game_utils.dart';
 class Parameters {
   static Container buildParametersSelector(Data myProvider) {
     return Container(
-      padding: EdgeInsets.all(2),
-      margin: EdgeInsets.all(2),
+      padding: const EdgeInsets.all(2),
+      margin: const EdgeInsets.all(2),
       child: Column(
         mainAxisSize: MainAxisSize.min,
         mainAxisAlignment: MainAxisAlignment.center,
         children: [
           Parameters.buildParameterSelector(myProvider, 'lang'),
-          SizedBox(height: 5),
+          const SizedBox(height: 5),
           Parameters.buildParameterSelector(myProvider, 'length'),
-          SizedBox(height: 5),
+          const SizedBox(height: 5),
           Parameters.buildParameterSelector(myProvider, 'skin'),
-          SizedBox(height: 5),
+          const SizedBox(height: 5),
           Parameters.buildStartGameButton(myProvider),
         ],
       ),
     );
   }
 
-  static Container buildStartGameButton(Data myProvider) {
-    Column decorationImage = Column(
+  static Widget buildStartGameButton(Data myProvider) {
+    Column decorationImage = const Column(
       children: [
         Image(
           image: AssetImage('assets/icons/game_win.png'),
@@ -35,10 +35,10 @@ class Parameters {
     );
 
     return Container(
-      margin: EdgeInsets.all(2),
-      padding: EdgeInsets.all(2),
+      margin: const EdgeInsets.all(2),
+      padding: const EdgeInsets.all(2),
       child: Table(
-        defaultColumnWidth: IntrinsicColumnWidth(),
+        defaultColumnWidth: const IntrinsicColumnWidth(),
         children: [
           TableRow(
             children: [
@@ -46,11 +46,9 @@ class Parameters {
               Column(
                 children: [
                   TextButton(
-                    child: Container(
-                      child: Image(
-                        image: AssetImage('assets/icons/button_start.png'),
-                        fit: BoxFit.fill,
-                      ),
+                    child: const Image(
+                      image: AssetImage('assets/icons/button_start.png'),
+                      fit: BoxFit.fill,
                     ),
                     onPressed: () => GameUtils.startGame(myProvider),
                   ),
@@ -68,11 +66,11 @@ class Parameters {
     List availableValues = myProvider.getParameterAvailableValues(parameterCode);
 
     if (availableValues.length == 1) {
-      return SizedBox(height: 1);
+      return const SizedBox(height: 1);
     }
 
     return Table(
-      defaultColumnWidth: IntrinsicColumnWidth(),
+      defaultColumnWidth: const IntrinsicColumnWidth(),
       children: [
         TableRow(
           children: [
@@ -93,11 +91,11 @@ class Parameters {
     String currentValue = myProvider.getParameterValue(parameterCode).toString();
 
     bool isActive = (parameterValue == currentValue);
-    String imageAsset = 'assets/icons/' + parameterCode + '_' + parameterValue + '.png';
+    String imageAsset = 'assets/icons/${parameterCode}_$parameterValue.png';
 
     return TextButton(
       child: Container(
-        padding: EdgeInsets.all(2),
+        padding: const EdgeInsets.all(2),
         decoration: BoxDecoration(
           color: Colors.white,
           borderRadius: BorderRadius.circular(10),
diff --git a/lib/main.dart b/lib/main.dart
index 7f448662ed2c1ea856492d67bacbf56f62d81c3a..f6256a8081c24288ae5c9ac252286f37919b685a 100644
--- a/lib/main.dart
+++ b/lib/main.dart
@@ -9,10 +9,12 @@ import 'screens/home.dart';
 void main() {
   WidgetsFlutterBinding.ensureInitialized();
   SystemChrome.setPreferredOrientations([DeviceOrientation.portraitUp])
-      .then((value) => runApp(MyApp()));
+      .then((value) => runApp(const MyApp()));
 }
 
 class MyApp extends StatelessWidget {
+  const MyApp({super.key});
+
   @override
   Widget build(BuildContext context) {
     return ChangeNotifierProvider(
@@ -25,9 +27,9 @@ class MyApp extends StatelessWidget {
               primaryColor: Colors.blue,
               visualDensity: VisualDensity.adaptivePlatformDensity,
             ),
-            home: Home(),
+            home: const Home(),
             routes: {
-              Home.id: (context) => Home(),
+              Home.id: (context) => const Home(),
             },
           ),
         );
diff --git a/lib/provider/data.dart b/lib/provider/data.dart
index 12b20407a98f4a307fc88e38b0157ea9ffc60041..689e514e468d6d789943463776044d460bd11106 100644
--- a/lib/provider/data.dart
+++ b/lib/provider/data.dart
@@ -3,10 +3,10 @@ import 'package:shared_preferences/shared_preferences.dart';
 
 class Data extends ChangeNotifier {
   // Configuration available values
-  List _availableLangValues = ['fr'];
-  List _availableWordLengthValues = ['4', '5', '6', '7', '8'];
-  List _availableLevelValues = ['easy', 'normal'];
-  List _availableSkinValues = ['default'];
+  final List _availableLangValues = ['fr'];
+  final List _availableWordLengthValues = ['4', '5', '6', '7', '8'];
+  final List _availableLevelValues = ['easy', 'normal'];
+  final List _availableSkinValues = ['default'];
 
   List get availableLangValues => _availableLangValues;
   List get availableWordLengthValues => _availableWordLengthValues;
@@ -15,13 +15,13 @@ class Data extends ChangeNotifier {
 
   // Application default configuration
   String _lang = '';
-  String _langDefault = 'fr';
+  final String _langDefault = 'fr';
   String _length = '';
-  String _lengthDefault = '5';
+  final String _lengthDefault = '5';
   String _level = '';
-  String _levelDefault = 'normal';
+  final String _levelDefault = 'normal';
   String _skin = '';
-  String _skinDefault = 'default';
+  final String _skinDefault = 'default';
 
   // Game data
   bool _gameIsRunning = false;
@@ -32,7 +32,7 @@ class Data extends ChangeNotifier {
   List<String> _guesses = [];
   String _currentGuess = '';
   String _foundLetters = '';
-  int _maxGuessesCount = 7;
+  final int _maxGuessesCount = 7;
 
   String get lang => _lang;
   void updateLang(String lang) {
@@ -69,7 +69,7 @@ class Data extends ChangeNotifier {
   }
 
   void currentGuessRemoveLetter() {
-    if (_currentGuess.length > 0) {
+    if (_currentGuess.isNotEmpty) {
       _currentGuess = _currentGuess.substring(0, _currentGuess.length - 1);
       notifyListeners();
     }
diff --git a/lib/screens/home.dart b/lib/screens/home.dart
index 1df4d023b64c2c538df0a9ab3543aaf9a03b205f..a01f5592d3ea88c9d10a45c9b355965532aa7556 100644
--- a/lib/screens/home.dart
+++ b/lib/screens/home.dart
@@ -10,11 +10,13 @@ import '../utils/game_utils.dart';
 class Home extends StatefulWidget {
   static const String id = 'home';
 
+  const Home({super.key});
+
   @override
-  _HomeState createState() => _HomeState();
+  HomeState createState() => HomeState();
 }
 
-class _HomeState extends State<Home> {
+class HomeState extends State<Home> {
   @override
   void initState() {
     super.initState();
@@ -32,11 +34,9 @@ class _HomeState extends State<Home> {
     if (myProvider.gameIsRunning) {
       menuActions = [
         TextButton(
-          child: Container(
-            child: Image(
-              image: AssetImage('assets/icons/button_back.png'),
-              fit: BoxFit.fill,
-            ),
+          child: const Image(
+            image: AssetImage('assets/icons/button_back.png'),
+            fit: BoxFit.fill,
           ),
           onPressed: () => toast('Long press to quit game...'),
           onLongPress: () => GameUtils.quitGame(myProvider),
diff --git a/lib/utils/game_utils.dart b/lib/utils/game_utils.dart
index 82ea300c89b7311dc12133916216f181a09a36c6..9bc8b9f693e6ecd2d8c18e7b89a63633677db46b 100644
--- a/lib/utils/game_utils.dart
+++ b/lib/utils/game_utils.dart
@@ -7,13 +7,7 @@ class GameUtils {
   }
 
   static Future<void> startGame(Data myProvider) async {
-    print('Starting game (' +
-        myProvider.lang +
-        ' / ' +
-        myProvider.length +
-        ' / ' +
-        myProvider.level +
-        ' )');
+    print('Starting game (${myProvider.lang} / ${myProvider.length} / ${myProvider.level} )');
 
     myProvider.resetGame();
 
@@ -42,7 +36,7 @@ class GameUtils {
       }
     } while (myProvider.word != word && attempts < 10);
 
-    print('Picked word: ' + word);
+    print('Picked word: $word');
   }
 
   static void addLetter(Data myProvider, String letter) {
@@ -95,10 +89,10 @@ class GameUtils {
 
   static void submitWord(Data myProvider) {
     if (GameUtils.checkCurrentlyGuessedWordExists(myProvider)) {
-      print('Ok word allowed: "' + myProvider.currentGuess + '".');
+      print('Ok word allowed: "${myProvider.currentGuess}".');
       myProvider.currentGuessSubmitWord();
     } else {
-      print('Unknown word: "' + myProvider.currentGuess + '".');
+      print('Unknown word: "${myProvider.currentGuess}".');
       myProvider.currentGuessSubmitWrongWord();
     }
   }
diff --git a/lib/utils/random_pick_word.dart b/lib/utils/random_pick_word.dart
index d514e9b648cc0251dbcee398967f015a4aa006ba..2e031531c60145b1a1ff5d7c6b05f7b7fad69e1b 100644
--- a/lib/utils/random_pick_word.dart
+++ b/lib/utils/random_pick_word.dart
@@ -30,13 +30,13 @@ class RandomPickWord {
       dictionary.clear();
       wordList.clear();
 
-      String wordBaseFilename = 'words-' + length.toString() + '-' + lang;
+      String wordBaseFilename = 'words-$length-$lang';
 
       // Get full dictionary (eligible words)
-      print('Reload dictionary (' + lang + ' / ' + length.toString() + ')');
+      print('Reload dictionary ($lang / $length)');
       try {
-        String wordsFile = wordBaseFilename + '-' + 'dictionary';
-        var data = await rootBundle.loadString('assets/files/' + wordsFile + '.txt');
+        String wordsFile = '$wordBaseFilename-dictionary';
+        var data = await rootBundle.loadString('assets/files/$wordsFile.txt');
         LineSplitter.split(data).forEach((line) {
           if (line.length == length) {
             dictionary.add(line.toUpperCase());
@@ -47,10 +47,10 @@ class RandomPickWord {
       }
 
       // Get guessable words list (will pick random word from)
-      print('Reload words list (' + lang + ' / ' + length.toString() + ' / ' + level + ')');
+      print('Reload words list ($lang / $length / $level)');
       try {
-        String wordsFile = wordBaseFilename + '-' + level;
-        var data = await rootBundle.loadString('assets/files/' + wordsFile + '.txt');
+        String wordsFile = '$wordBaseFilename-$level';
+        var data = await rootBundle.loadString('assets/files/$wordsFile.txt');
         LineSplitter.split(data).forEach((line) {
           if (line.length == length) {
             wordList.add(line.toUpperCase());
@@ -61,8 +61,8 @@ class RandomPickWord {
       }
     }
 
-    print('Words in dictionary: ' + dictionary.length.toString());
-    print('Words in words list: ' + wordList.length.toString());
+    print('Words in dictionary: ${dictionary.length}');
+    print('Words in words list: ${wordList.length}');
 
     _word = '';
     await wordFromLocalFile();
@@ -70,12 +70,12 @@ class RandomPickWord {
 
   Future<void> wordFromLocalFile() async {
     // Check we have enough words
-    if (wordList.length < 1) {
+    if (wordList.isEmpty) {
       print('Not enough words in list.');
       _word = '';
     } else {
-      final _random = new Random();
-      _word = wordList.elementAt(_random.nextInt(wordList.length));
+      final random = Random();
+      _word = wordList.elementAt(random.nextInt(wordList.length));
     }
   }
 
diff --git a/pubspec.lock b/pubspec.lock
index f78ae3bfbc5b91625f56452dcbc944e3e78db356..f2dad354fa91396500fef3d18d03b00e93cac1bf 100644
--- a/pubspec.lock
+++ b/pubspec.lock
@@ -21,52 +21,68 @@ packages:
     dependency: transitive
     description:
       name: collection
-      sha256: f092b211a4319e98e5ff58223576de6c2803db36221657b46c82574721240687
+      sha256: ee67cb0715911d28db6bf4af1026078bd6f0128b07a5f66fb2ed94ec6783c09a
       url: "https://pub.dev"
     source: hosted
-    version: "1.17.2"
+    version: "1.18.0"
   ffi:
     dependency: transitive
     description:
       name: ffi
-      sha256: "7bf0adc28a23d395f19f3f1eb21dd7cfd1dd9f8e1c50051c069122e6853bc878"
+      sha256: "493f37e7df1804778ff3a53bd691d8692ddf69702cf4c1c1096a2e41b4779e21"
       url: "https://pub.dev"
     source: hosted
-    version: "2.1.0"
+    version: "2.1.2"
   file:
     dependency: transitive
     description:
       name: file
-      sha256: "1b92bec4fc2a72f59a8e15af5f52cd441e4a7860b49499d69dfa817af20e925d"
+      sha256: "5fc22d7c25582e38ad9a8515372cd9a93834027aacf1801cf01164dac0ffa08c"
       url: "https://pub.dev"
     source: hosted
-    version: "6.1.4"
+    version: "7.0.0"
   flutter:
     dependency: "direct main"
     description: flutter
     source: sdk
     version: "0.0.0"
+  flutter_lints:
+    dependency: "direct dev"
+    description:
+      name: flutter_lints
+      sha256: e2a421b7e59244faef694ba7b30562e489c2b489866e505074eb005cd7060db7
+      url: "https://pub.dev"
+    source: hosted
+    version: "3.0.1"
   flutter_web_plugins:
     dependency: transitive
     description: flutter
     source: sdk
     version: "0.0.0"
+  lints:
+    dependency: transitive
+    description:
+      name: lints
+      sha256: cbf8d4b858bb0134ef3ef87841abdf8d63bfc255c266b7bf6b39daa1085c4290
+      url: "https://pub.dev"
+    source: hosted
+    version: "3.0.0"
   material_color_utilities:
     dependency: transitive
     description:
       name: material_color_utilities
-      sha256: "9528f2f296073ff54cb9fee677df673ace1218163c3bc7628093e7eed5203d41"
+      sha256: "0e0a020085b65b6083975e499759762399b4475f766c21668c4ecca34ea74e5a"
       url: "https://pub.dev"
     source: hosted
-    version: "0.5.0"
+    version: "0.8.0"
   meta:
     dependency: transitive
     description:
       name: meta
-      sha256: "3c74dbf8763d36539f114c799d8a2d87343b5067e9d796ca22b5eb8437090ee3"
+      sha256: d584fa6707a52763a52446f02cc621b077888fb63b93bbcb1143a7be5a0c0c04
       url: "https://pub.dev"
     source: hosted
-    version: "1.9.1"
+    version: "1.11.0"
   nested:
     dependency: transitive
     description:
@@ -87,10 +103,10 @@ packages:
     dependency: transitive
     description:
       name: path
-      sha256: "8829d8a55c13fc0e37127c29fedf290c102f4e40ae94ada574091fe0ff96c917"
+      sha256: "087ce49c3f0dc39180befefc60fdb4acd8f8620e5682fe2476afd0b3688bb4af"
       url: "https://pub.dev"
     source: hosted
-    version: "1.8.3"
+    version: "1.9.0"
   path_provider_linux:
     dependency: transitive
     description:
@@ -103,10 +119,10 @@ packages:
     dependency: transitive
     description:
       name: path_provider_platform_interface
-      sha256: "94b1e0dd80970c1ce43d5d4e050a9918fce4f4a775e6142424c30a29a363265c"
+      sha256: "88f5779f72ba699763fa3a3b06aa4bf6de76c8e5de842cf6f29e2e06476c2334"
       url: "https://pub.dev"
     source: hosted
-    version: "2.1.1"
+    version: "2.1.2"
   path_provider_windows:
     dependency: transitive
     description:
@@ -119,34 +135,34 @@ packages:
     dependency: transitive
     description:
       name: platform
-      sha256: ae68c7bfcd7383af3629daafb32fb4e8681c7154428da4febcff06200585f102
+      sha256: "12220bb4b65720483f8fa9450b4332347737cf8213dd2840d8b2c823e47243ec"
       url: "https://pub.dev"
     source: hosted
-    version: "3.1.2"
+    version: "3.1.4"
   plugin_platform_interface:
     dependency: transitive
     description:
       name: plugin_platform_interface
-      sha256: da3fdfeccc4d4ff2da8f8c556704c08f912542c5fb3cf2233ed75372384a034d
+      sha256: "4820fbfdb9478b1ebae27888254d445073732dae3d6ea81f0b7e06d5dedc3f02"
       url: "https://pub.dev"
     source: hosted
-    version: "2.1.6"
+    version: "2.1.8"
   provider:
     dependency: "direct main"
     description:
       name: provider
-      sha256: cdbe7530b12ecd9eb455bdaa2fcb8d4dad22e80b8afb4798b41479d5ce26847f
+      sha256: "9a96a0a19b594dbc5bf0f1f27d2bc67d5f95957359b461cd9feb44ed6ae75096"
       url: "https://pub.dev"
     source: hosted
-    version: "6.0.5"
+    version: "6.1.1"
   shared_preferences:
     dependency: "direct main"
     description:
       name: shared_preferences
-      sha256: b7f41bad7e521d205998772545de63ff4e6c97714775902c199353f8bf1511ac
+      sha256: "81429e4481e1ccfb51ede496e916348668fd0921627779233bd24cc3ff6abd02"
       url: "https://pub.dev"
     source: hosted
-    version: "2.2.1"
+    version: "2.2.2"
   shared_preferences_android:
     dependency: transitive
     description:
@@ -159,42 +175,42 @@ packages:
     dependency: transitive
     description:
       name: shared_preferences_foundation
-      sha256: "7bf53a9f2d007329ee6f3df7268fd498f8373602f943c975598bbb34649b62a7"
+      sha256: "7708d83064f38060c7b39db12aefe449cb8cdc031d6062280087bc4cdb988f5c"
       url: "https://pub.dev"
     source: hosted
-    version: "2.3.4"
+    version: "2.3.5"
   shared_preferences_linux:
     dependency: transitive
     description:
       name: shared_preferences_linux
-      sha256: c2eb5bf57a2fe9ad6988121609e47d3e07bb3bdca5b6f8444e4cf302428a128a
+      sha256: "9f2cbcf46d4270ea8be39fa156d86379077c8a5228d9dfdb1164ae0bb93f1faa"
       url: "https://pub.dev"
     source: hosted
-    version: "2.3.1"
+    version: "2.3.2"
   shared_preferences_platform_interface:
     dependency: transitive
     description:
       name: shared_preferences_platform_interface
-      sha256: d4ec5fc9ebb2f2e056c617112aa75dcf92fc2e4faaf2ae999caa297473f75d8a
+      sha256: "22e2ecac9419b4246d7c22bfbbda589e3acf5c0351137d87dd2939d984d37c3b"
       url: "https://pub.dev"
     source: hosted
-    version: "2.3.1"
+    version: "2.3.2"
   shared_preferences_web:
     dependency: transitive
     description:
       name: shared_preferences_web
-      sha256: d762709c2bbe80626ecc819143013cc820fa49ca5e363620ee20a8b15a3e3daf
+      sha256: "7b15ffb9387ea3e237bb7a66b8a23d2147663d391cafc5c8f37b2e7b4bde5d21"
       url: "https://pub.dev"
     source: hosted
-    version: "2.2.1"
+    version: "2.2.2"
   shared_preferences_windows:
     dependency: transitive
     description:
       name: shared_preferences_windows
-      sha256: f763a101313bd3be87edffe0560037500967de9c394a714cd598d945517f694f
+      sha256: "841ad54f3c8381c480d0c9b508b89a34036f512482c407e6df7a9c4aa2ef8f59"
       url: "https://pub.dev"
     source: hosted
-    version: "2.3.1"
+    version: "2.3.2"
   sky_engine:
     dependency: transitive
     description: flutter
@@ -212,26 +228,26 @@ packages:
     dependency: transitive
     description:
       name: web
-      sha256: dc8ccd225a2005c1be616fe02951e2e342092edf968cf0844220383757ef8f10
+      sha256: "4188706108906f002b3a293509234588823c8c979dc83304e229ff400c996b05"
       url: "https://pub.dev"
     source: hosted
-    version: "0.1.4-beta"
+    version: "0.4.2"
   win32:
     dependency: transitive
     description:
       name: win32
-      sha256: "350a11abd2d1d97e0cc7a28a81b781c08002aa2864d9e3f192ca0ffa18b06ed3"
+      sha256: "464f5674532865248444b4c3daca12bd9bf2d7c47f759ce2617986e7229494a8"
       url: "https://pub.dev"
     source: hosted
-    version: "5.0.9"
+    version: "5.2.0"
   xdg_directories:
     dependency: transitive
     description:
       name: xdg_directories
-      sha256: "589ada45ba9e39405c198fe34eb0f607cddb2108527e658136120892beac46d2"
+      sha256: faea9dee56b520b55a566385b84f2e8de55e7496104adada9962e0bd11bcff1d
       url: "https://pub.dev"
     source: hosted
-    version: "1.0.3"
+    version: "1.0.4"
 sdks:
-  dart: ">=3.1.0-185.0.dev <4.0.0"
-  flutter: ">=3.7.0"
+  dart: ">=3.3.0-279.1.beta <4.0.0"
+  flutter: ">=3.16.0"
diff --git a/pubspec.yaml b/pubspec.yaml
index 84556d4717d18065fcdc5e876499b0e587249e68..2188641ec94960d9112d74961c9b562e0089558d 100644
--- a/pubspec.yaml
+++ b/pubspec.yaml
@@ -1,7 +1,7 @@
 name: momomotus
 description: A motus-like game application.
 publish_to: 'none'
-version: 1.0.0+1
+version: 0.0.26+26
 
 environment:
   sdk: '^3.0.0'
@@ -13,6 +13,9 @@ dependencies:
   shared_preferences: ^2.2.1
   overlay_support: ^2.1.0
 
+dev_dependencies:
+  flutter_lints: ^3.0.1
+
 flutter:
   uses-material-design: true
   assets: