Template Jeux
Flitwing One-Tap Flying Game App
An Expo / React Native one-tap flyer: flap a round bird through the gaps between wooden posts over a morning meadow, take golden seeds, win medals, buy birds, finish missions and climb a weekly board. Plays on sample data.
- 10 écrans
- iOS et Android
- Données d’exemple
- Mis à jour le 29 oct. 2026
- Version vérifiée
- 1 copie créée
Copie gratuite · Code source complet · Sans carte bancaire
Écrans
6 écrans de l’app fonctionnelle.
Contenu
- Playable in the first second: the game is the home screen and the first tap flaps and starts the round
- A pure, tested engine in bird heights: a seeded course, a sawtooth ramp from a forgiving start, a fairness autopilot
- Every picture drawn in code with react-native-svg: a morning meadow in three parallax layers, walnut posts, eight birds
- Game feel: wing poses and tilt, hit-stop, shake, a white flash, feathers and score pops, calm under reduce motion
- Three missions from real runs, a 7-day daily reward as posts rising from the meadow, and eight birds bought with coins
- Leaderboard: a podium of rival birds, your ten best runs, and a weekly Supabase board that refuses impossible scores
À propos de ce modèle
Overview
Flitwing is a one-tap flying game built on Expo SDK 57 and React Native with the FluxNative kernel. The first screen is the game: a bright morning sky over a meadow, the bird bobbing beside its wordmark, your best and its medal, and a pulsing Tap to fly. Each tap sets the bird's upward speed; posts slide in with a gap to fly through, every post passed is a point and a golden seed is three. A crash freezes for a beat, shakes the world and drops the bird, then one panel shows the score, the best, the medal and the coins, with Play again starting the next round at once.
With .env blank the game runs in sample mode: a player two weeks in with a best of 47 (silver), 1,240 coins, three birds, ten recent runs, missions half done and day 4 of the daily reward waiting. Everything the player does is kept on the device. Setting the Supabase values turns on the weekly board; setting the RevenueCat keys sells Plus.
Key features
The game: ready, flying, paused and over on one full-bleed screen, with the score top left over the best, the coin pill and a round pause button top right, and a raised dock of drawn icons to Shop, Missions, Scores and Settings
Rules in a pure engine (engine.ts), unit-tested: a tap sets the upward speed, the first post arrives 2.4 s after the first tap, the gap narrows every 10 posts with three easy posts after each step
Shop: eight birds that differ by build, face, tail, beak and one prop (a tuft, goggles, a scarf, a leaf cap, a bobble hat, a flame crest, a star trail), each on a twig on a tile in its colour, locked ones as silhouettes behind a padlock, the one on show big on a branch
Missions: three at a time from real runs (pass 20 posts in one run, take 8 golden seeds, fly for 3 minutes…), a coin reward each, harder each time round the ladder
Daily reward: a 7-day ladder by the phone's date, drawn as posts rising from the meadow with the bird perched on today's
Leaderboard: a podium of the week's three best birds on posts, the flock of rival birds to beat, your ten best runs and a chart of the last ten; with Supabase a weekly board of every player
How to play: three steps drawn with the game's own sprites, and the four medals
Settings: sound effects, vibration, reduce motion, How to play, Plus, About, Terms of use, Privacy policy and Delete my data
Screens
10 screens: the game (ready, flying, paused, over), Shop, Missions, Leaderboard, How to play, Flitwing Plus, Settings, About, Terms of use and Privacy policy. One stack with no tab bar. Every pushed screen lives in the game's world: its sky is the page and the meadow runs along its foot, titles are drawn in the wordmark's outlined type, and each screen is staged its own way (a bird on a branch in the shop, a podium of posts on the leaderboard, a flock on Plus). Only what you tap is raised: chunky buttons with a lip that sinks, over flat framed boards and wooden plaques. The day look holds in light and dark, as most casual games do.
Game and backend
One requestAnimationFrame loop while flying, a pure step(game, dt) with dt clamped to 0.05 s, seeded randomness, taps through PanResponder at touch-down (touch, mouse and the preview's taps)
The game folder reads app data through one hook (useGameProgress), so it lifts into another app
Weekly board on Supabase: nobody reads the tables (row-level security, a player sees only their own runs); the board comes from one function with names, bests, places and the sample rivals marked, never an id; anonymous sign-in, names made on the server from the player's id
The server times every run: start_run at the first tap, then submit_score takes each run once and refuses a score the run's time cannot hold or a run longer than the time since it started; the rule is held to the engine by tests
A run that ends offline is kept and sent later, and the board says when the last run did not go up; eight sample rivals, marked as samples, fill the first week
Delete my data clears the device and takes the player's runs off the board, waiting for the network when it must; Plus stays with the store account
Monetisation
Flitwing Plus is one non-consumable in-app purchase sold through the App Store and Google Play with RevenueCat (react-native-purchases): every bird, including Midnight that only Plus has, and double coins on every run. Access comes from the plus entitlement only, with Restore purchase on the Plus screen. Without RevenueCat keys the Plus screen shows the intended price marked as a sample, says purchases open in the App Store version, and never grants access. No ads, no loot boxes, nothing that pays out.
Setup
Connect Supabase, apply the migration and allow anonymous sign-ins for the weekly board
Connect RevenueCat with a flitwing_plus product and a plus entitlement to sell Plus
Rename the game, then reskin the sky, the posts and the birds in palette.ts and art.tsx
Set NEW_DEVICE_SAVE to empty and replace the sample Terms of use and Privacy policy before you ship
Ce que vous obtenez
- Code source complet — Expo et React Native en TypeScript, en app dans votre espace de travail.
- Aperçu en direct — testez chaque changement dans votre navigateur ou sur votre téléphone.
- Version vérifiée — elle compile et chaque écran s’ouvre sans erreur.
- Assistant IA — modifiez tout par chat ; chaque changement consomme des crédits.
- Builds et envoi aux stores — builds iOS et Android, envoyés à l’App Store et à Google Play depuis Publier.
- Aucun crédit pour copier — la copie elle-même est gratuite.
Conçu avec une version antérieure de FluxNative. Votre copie fonctionne telle quelle ; demandez à l’agent de la mettre à jour quand vous voulez les langues et devises de l’app ou les liens À propos.
Ce qu’il vous faut
- Un compte FluxNative — le forfait Free accepte jusqu’à 2 apps.
- Aucun backend au départ — elle tourne sur des données d’exemple jusqu’à ce que vous connectiez le vôtre.
- Creator ou plus — pour les builds natifs et l’envoi aux stores.
- Comptes de store — Apple Developer Program (99 US$ par an) et Google Play (25 US$ une fois), pour publier.
Ce que contient le code
- écrans
- 10
- fichiers dans votre copie
- 323
- lignes écrites pour cette app
- 6 391
- composants d’interface prêts à l’emploi
- 139
Textes de l’app en anglais et vietnamien
Stack technique
- Expo SDK
- 57.0.22
- React Native
- 0.86.3
- React
- 19.2.8
- TypeScript
- 6.0.3
- Expo Router
- 57.0.21
- Supabase JS
- 2.112.3
- RevenueCat
- 10.9.1
Tiré du package.json de cette version.
Système de design
- Titres
- Outfit
- Texte
- Police du système
- Mode clair uniquement
- Liquid Glass
- Boutons en pilule
- Cartes en relief
Configuration après le fork
Votre copie s’ouvre avec l’assistant IA qui l’a créée. Suivez les étapes dans l’ordre : connectez sous Serveur ce qu’une étape demande, puis envoyez chaque prompt.
Connect Supabase for the weekly board
Server › Backend › Supabase. Apply supabase/migrations/20261027120000_weekly_board.sql, allow anonymous sign-ins in the Supabase dashboard, and write the project URL and anon key to .env. The leaderboard then opens on This week.
Prompt pour l’IAConnect this game to my Supabase project from Server › Backend › Supabase. Write EXPO_PUBLIC_SUPABASE_URL and EXPO_PUBLIC_SUPABASE_ANON_KEY to .env and apply supabase/migrations/20261027120000_weekly_board.sql. Remind me to turn on Authentication › Sign In / Providers › Allow anonymous sign-ins in the Supabase dashboard, because each device signs in anonymously when its first run starts. Then check that the Leaderboard opens on This week with the eight sample rivals marked as samples, and that a finished run appears there under the device's board name. Before launch, delete the sample rivals (delete from public.scores where sample).
Sell Flitwing Plus
Server › Monetization: a non-consumable flitwing_plus in App Store Connect and Google Play, the RevenueCat entitlement plus and the offering default with a Lifetime package, then the public SDK keys in .env.
Prompt pour l’IASet up Flitwing Plus through RevenueCat from Server › Monetization. Create a non-consumable in-app purchase with the product ID flitwing_plus in App Store Connect and a one-time product flitwing_plus in Google Play, an entitlement named plus that holds them, and the current offering default with a Lifetime package of it. Write EXPO_PUBLIC_REVENUECAT_IOS_KEY and EXPO_PUBLIC_REVENUECAT_ANDROID_KEY to .env, and set PLAN_PREVIEW in src/services/iap/index.ts to the price I choose. Tell me how to test a sandbox purchase and Restore purchase on a device build.
Rename and reskin the game
The wordmark draws GAME_TITLE in src/features/game/GameScreen.tsx; the sky, posts, seeds and birds are named once in palette.ts and drawn in art.tsx; the birds' names and coin prices are SKINS in src/services/progress.
Prompt pour l’IAReskin Flitwing as my game. Ask me for the game's name and its hero (a bird, a helicopter, a fish…). Set GAME_TITLE in src/features/game/GameScreen.tsx and the app name in app.json, change the scene's colours in src/features/game/palette.ts, redraw the hero in BirdBody in src/features/game/art.tsx, and rename the eight looks in SKINS (src/services/progress/index.ts) keeping their ids. Show me the ready screen, a round and the shop in light and dark after the change.
Get ready to ship
Set NEW_DEVICE_SAVE to "empty" in src/services/progress/index.ts so new players start at zero, and use your own Terms of use and Privacy policy (in-app pages or their URLs in .env).
Prompt pour l’IAPrepare Flitwing for release. Set NEW_DEVICE_SAVE to "empty" in src/services/progress/index.ts. Ask me for my studio's name and contact email, then rewrite src/features/legal/TermsScreen.tsx and src/features/legal/PrivacyScreen.tsx for my studio, keeping what the game really does: progress on the device, the weekly board's anonymous sign-in id and runs, purchases through the stores and RevenueCat, and the IP address those servers see. Change the bundle ID and package name in app.json to mine.
Comment utiliser ce modèle
- Utilisez le modèle pour obtenir une copie modifiable, avec son code source, dans votre espace de travail (Modèles).
- Demandez à l’assistant IA les changements voulus, avec vos propres mots (Travailler avec l’assistant).
- Essayez chaque changement dans l’aperçu en direct ou sur votre téléphone (Aperçu).
- Avec Creator ou plus, compilez-le pour iOS et Android et envoyez-le aux stores (Vue d’ensemble de la publication).
Licence et support
Licence
L’app créée pour vous vous appartient ; le code du modèle reste à InspireUI et vous est concédé sous licence pour vos apps (Conditions › Notre propriété intellectuelle).
Aide
- Guides sur les templates, l’assistant et la publication.
- Contacter le support depuis Aide ; réponse en général sous 1 à 2 jours ouvrés.
- Dans votre copie, interrogez l’assistant IA sur n’importe quel écran ou fichier.
Créé par FluxNative
Politique de supportQuestions
Est-ce gratuit ?
Copier un template gratuit ne coûte rien, pas même des crédits ; un template Premium est un achat unique par site web. Les changements par chat et les builds consomment des crédits.
Qu’est-ce qui m’appartient ?
L’app créée pour vous vous appartient. Le code du template reste à InspireUI et vous est concédé sous licence pour vos apps (Conditions › Notre propriété intellectuelle).
Faut-il savoir coder ?
Non. Demandez des changements à l’assistant en mots simples ; le code source complet est là si vous le voulez.
Y a-t-il un backend inclus ?
Non. Une app complète nomme le backend requis et vous connectez le vôtre sous Server ; un design tourne sur des données d’exemple.
Puis-je changer le design ?
Oui. L’onglet Design règle la couleur de marque, les couleurs, les polices et les angles sans coût en crédits ; l’assistant change le reste.
Quel forfait pour publier ?
Creator ou plus compile et envoie aux stores, avec vos propres comptes Apple et Google. L’app d’un template Premium se compile avec tout forfait dès que son site web est connecté.
Puis-je télécharger le code source ?
Oui, avec Télécharger le code source ou Push vers GitHub, dès que votre espace de travail a acheté un forfait, des crédits ou un template payant. L’app d’un template Premium exige aussi son site web connecté.
Et si elle a été créée avec une version antérieure de FluxNative ?
Votre copie fonctionne telle quelle. Demandez à l’assistant de la mettre à jour pour les nouveautés comme les langues et devises de l’app ; c’est la dernière étape de configuration.
Prêt à en faire votre app ?
Partez de Flitwing One-Tap Flying Game App et changez tout par chat. Votre copie inclut tout le code source.
Copie gratuite. Sans carte bancaire.