🙆‍♀️

Flutter で マインスイーパーを実装

2021/11/24に公開

はじめに

raywenderlich に書いてあるFlutter のマインスイーパー実装(https://www.raywenderlich.com/26763909-creating-a-game-like-minesweeper-in-flutter) を自分で動かしてみましたので、記事にしてみました。考察はちょっと浅いです。

gif

demo

codepen

github

https://github.com/HikaruSato/flutter_minesweeper

Google Play Store

https://play.google.com/store/apps/details?id=com.hikarusato.minesweeper

一応、申し訳程度に日本語ローカライズは自分でやっています。
また、実際のFlutterアプリでは利用されていないと思われる StatefulWidget での実装です(もともとそうなっていて、riverpod に書き換えるまではいけなかった)。
riverpodについては下記に書きました。
https://note.com/hikarusato/n/n59ad456faaf1

マインスイーパーとは

自分がよく分かってなかったので調べてみました。
簡単に言うと、地雷が置かれていない全てのマスを開けるゲームです。

https://ja.wikipedia.org/wiki/マインスイーパ

実装見てみる

MyHomePage関連

マインスイーパーのメイン画面。

https://github.com/HikaruSato/flutter_minesweeper/blob/main/lib/my_app.dart#L35-L38

CellWidget関連

マス。
下記赤枠の各マスのWidget。

ローカライズ

下記を参考にやりました。

https://qiita.com/kazutxt/items/936ebe7a21ede7e1ab20
https://docs.flutter.dev/development/accessibility-and-localization/internationalization

flutterのデバッグしてみて思うこと

AndroidとiOS両方でデバッグしてみて思うのが、ビルドがAndroidの方が基本的にだいぶ速いので、両方OSでデバッグできるようなアプリならAndroidでデバッグした方が開発効率はいいと思ってきています。

さいごに

zenn 初投稿でしたが、markdownでかけるところはいいなと思いました(noteに比べて)。

Discussion