1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

定番ソリティアアプリをFlutterで作った話

1
Posted at

はじめに

個人開発でiOSアプリ『ソリティア - クラシックカード』をリリースしました。定番のクロンダイク・ソリティアをシンプルに遊べるアプリです。本記事では、Flutterでの実装ポイントや工夫した点をまとめます。

使用技術

  • Flutter (Dart)
  • iOS向けビルド
  • AdMob(広告SDK)
  • 状態管理: シンプルなStatefulWidgetベース

クロスプラットフォームで開発できるFlutterを採用し、UIの一貫性と開発スピードを両立しました。

実装のポイント

1. ドラッグ&ドロップ

カードの移動はDraggableとDragTargetを組み合わせて実装しています。タブロー、組札、山札それぞれをDragTargetとして定義し、ルールに沿った移動のみを受け付けるようにバリデーションを挟みました。

2. ダブルタップで自動移動

GestureDetectorのonDoubleTapで、カードを組札へ自動的に送る処理を実装。移動可能かどうかを判定してからアニメーションさせることで、誤操作のないUXにしています。

3. ヒント機能

ゲームの状態から次に有効な手を探索し、ハイライト表示します。盤面の状態をモデルクラスで管理し、純粋なロジックとして切り出すことでテストしやすくしました。

4. 状態管理とモデル設計

タブロー、組札、山札をそれぞれクラスとして表現し、ゲーム全体の状態を一元管理。カードの移動可否判定をメソッドとして集約することで、UIとロジックを分離できました。

5. 統計記録

勝率やプレイ回数はローカルに保存し、シンプルな統計画面で確認できるようにしています。

工夫した点

  • 広告非表示のクリーンなUIを維持し、ゲームに集中できる設計
  • 直感的な操作を最優先にし、チュートリアル不要のUI
  • カードのアニメーションを軽量にし、古い端末でも快適に動作

おわりに

Flutterを使うことで、ロジックとUIを整理しながら短期間でリリースまでたどり着けました。定番ゲームだからこそ、操作性とシンプルさを大切にしています。

▼ App Storeはこちら
https://apps.apple.com/jp/app/id6803766147

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?