# Flame Gallery: Drop-in Mini Games for Flutter Apps

DevFeed: [Flame Gallery: Drop-in Mini Games for Flutter Apps](<https://devfeed.tech/articles/flame-gallery-drop-in-mini-games-for-flutter-apps-105646.md>)

Original publisher: [Read original article](<https://medium.com/flutter-community/flame-gallery-drop-in-mini-games-for-flutter-apps-6df3476482fb?source=rss----86fb29d7cc6a---4>)

Author: Veli Bacık

Published: 2026-10-28T17:02:27Z

Content type: article

Language: en

Sources: [Flutter Community](<https://devfeed.tech/sources/flutter-community-medium.md>)

Topics: [Flutter](<https://devfeed.tech/topics/flutter.md>), [CI/CD](<https://devfeed.tech/topics/cicd.md>), [Phaser](<https://devfeed.tech/topics/phaser.md>), [iOS](<https://devfeed.tech/topics/ios.md>), [browser-game](<https://devfeed.tech/topics/browser-game.md>)

Tags: [analytics](<https://devfeed.tech/tags/analytics.md>), [android](<https://devfeed.tech/tags/android.md>), [apps](<https://devfeed.tech/tags/apps.md>), [await](<https://devfeed.tech/tags/await.md>), [bridge](<https://devfeed.tech/tags/bridge.md>), [browser](<https://devfeed.tech/tags/browser.md>), [campaign](<https://devfeed.tech/tags/campaign.md>), [challenge](<https://devfeed.tech/tags/challenge.md>), [ci](<https://devfeed.tech/tags/ci.md>), [dart](<https://devfeed.tech/tags/dart.md>), [drop-in](<https://devfeed.tech/tags/drop-in.md>), [flame](<https://devfeed.tech/tags/flame.md>), [flame-engine](<https://devfeed.tech/tags/flame-engine.md>), [flutter](<https://devfeed.tech/tags/flutter.md>), [game-development](<https://devfeed.tech/tags/game-development.md>), [games](<https://devfeed.tech/tags/games.md>), [html5](<https://devfeed.tech/tags/html5.md>), [javascript](<https://devfeed.tech/tags/javascript.md>), [library](<https://devfeed.tech/tags/library.md>), [loyalty](<https://devfeed.tech/tags/loyalty.md>), [maestro](<https://devfeed.tech/tags/maestro.md>), [mini](<https://devfeed.tech/tags/mini.md>)

## AI overview

Flame Gallery is an MIT-licensed Flutter/Flame library for adding configurable mini-games through an awaited `FlameGallery.show` call. It returns a typed `GameResult` and streams game events, allowing host apps to use scores and stats for rewards or analytics. The four separate game packages cover slicing, lane running, match-three, and rhythm play; shared core code handles menus, phases, overlays, and results. The excerpt describes custom themes, assets, menus, and difficulty, with audio supplied by the host through an interface. Compared with HTML5 games in a WebView, the article says games render with Flutter, ship assets in the app bundle for offline use, and avoid a JavaScript bridge. It also details per-game image caches cleared on close, deterministic gameplay randomness, pure-Dart logic tests, Flame flow tests, and Maestro end-to-end tests. Planned work includes native iOS/Android add-to-app support, Android back-gesture polish, and profile-mode frame-time measurements.

## Source excerpt

One line, one game Marketing asks for "a little game in the app" every few months: a summer campaign, a loyalty reward, a daily challenge. Each time, a team builds a one-off screen that nobody wants to maintain afterwards. Flame Gallery turns that into one dependency and one call: final result = await FlameGallery.show(context, game: const FruitSlice()); The call pushes a full screen game with start, pause and game over menus, and completes with a GameResult you can turn into points, coupons or analytics. It is open source (MIT), built on Flame, and you can play it in your browser right now. In numbers: 6 packages on pub.dev - 4 games - about 6,000 lines of library code - unit and game tests in every package - 6 Maestro end-to-end flows on iOS and Android. From WebView games to native power For years, the mini game inside a mobile app was usually an HTML5 game: JavaScript running in a WebView. It works, but you can feel it. Here is what changes when the game is drawn by Flutter itself: Rendering. A WebView game runs a browser engine inside your app. Flame Gallery draws with Flutter's own engine, the same one drawing the rest of your UI. First load. No pages, scripts or assets to download. Everything ships in the app bundle and works offline. Touch and frame rate. No extra layers between the finger and the frame. Gestures and frames are handled natively by Flutter. Score back to the app. No JavaScript bridge and string messages. You get a typed Dart GameResult from an await. Look and feel. No separate web styling to keep in sync. The game uses your app's Theme, font and colors. Who maintains it. Not a separate web team: the same Flutter team, the same CI. That is the core idea: campaign games get the same native performance as the rest of your app, and the integration is one awaited function call instead of a bridge. Four games, four Flame techniques Every game package has the same inside: src/logic/ is pure Dart with unit tests, src/component/ holds one Flame compon