게임 템플릿
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개
- iOS & Android
- 샘플 데이터
- 2026년 10월 29일 업데이트
- 검증된 릴리스
- 사본 1개 생성됨
무료 복사 · 전체 소스 · 카드 필요 없음
화면
실제 앱의 화면 6개
포함된 내용
- 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
템플릿 소개
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
제공 내용
- 전체 소스 — TypeScript로 된 Expo와 React Native, 작업 공간의 앱으로 받아요.
- 라이브 미리보기 — 모든 변경을 브라우저나 휴대폰에서 바로 확인해요.
- 검증된 릴리스 — 컴파일되고 모든 화면이 오류 없이 열려요.
- AI 어시스턴트 — 채팅으로 무엇이든 바꿔요. 변경마다 크레딧을 써요.
- 빌드와 스토어 업로드 — iOS와 Android 빌드를 게시에서 App Store와 Google Play로 보내요.
- 복사에 크레딧 불필요 — 복사 자체는 크레딧이 들지 않아요.
이전 버전의 FluxNative로 만들었어요. 사본은 그대로 동작해요. 앱 언어, 통화, 정보 링크가 필요할 때 에이전트에게 업데이트를 요청하세요.
필요한 것
- FluxNative 계정 — Free 플랜은 앱을 2개까지 가질 수 있어요.
- 시작에 백엔드 불필요 — 내 것을 연결할 때까지 샘플 데이터로 실행돼요.
- Creator 이상 — 네이티브 빌드와 스토어 업로드용이에요.
- 스토어 계정 — 게시하려면 Apple Developer Program(연 99달러)과 Google Play(1회 25달러)가 필요해요.
소스에 담긴 것
- 화면
- 10
- 사본 속 파일
- 323
- 이 앱을 위해 쓴 코드 줄
- 6,391
- 바로 쓰는 UI 컴포넌트
- 139
앱 텍스트: 영어 및 베트남어
기술 스택
- 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
이 릴리스의 package.json 기준이에요.
디자인 시스템
- 제목
- Outfit
- 본문
- 시스템 글꼴
- 라이트 모드 전용
- Liquid Glass
- 캡슐형 버튼
- 떠 있는 카드
포크 후 설정
복사본은 이를 만든 AI 어시스턴트와 함께 열려요. 단계를 순서대로 진행하세요. 단계가 요구하는 연결은 Server에서 하고, 각 프롬프트를 보내세요.
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.
AI용 프롬프트Connect 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.
AI용 프롬프트Set 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.
AI용 프롬프트Reskin 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).
AI용 프롬프트Prepare 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.
이 템플릿 사용 방법
- 템플릿을 사용하면 소스가 포함된 편집 가능한 사본이 워크스페이스에 생겨요(템플릿).
- 원하는 변경을 AI 어시스턴트에게 평소 말투로 요청하세요(어시스턴트와 작업하기).
- 각 변경은 실시간 미리보기나 휴대폰에서 확인하세요(미리보기).
- Creator 이상 플랜에서 iOS와 Android용으로 빌드해 스토어에 제출하세요(게시 개요).
라이선스와 지원
라이선스
나를 위해 만든 앱은 내 것이에요. 템플릿 코드는 InspireUI 소유로 남으며 내 앱에서 쓰도록 라이선스돼요(약관 › 당사의 지식재산).
FluxNative 제작
지원 정책질문
무료인가요?
무료 템플릿 복사는 크레딧도 들지 않아요. Premium은 웹사이트당 1회 구매예요. 채팅 변경과 빌드에는 크레딧을 써요.
무엇을 소유하나요?
나를 위해 만든 앱은 내 것이에요. 템플릿 코드는 InspireUI 소유이고 내 앱에서 쓸 수 있도록 라이선스돼요(이용약관 › 당사의 지적 재산).
코드를 알아야 하나요?
아니요. 어시스턴트에게 쉬운 말로 변경을 요청하세요. 필요하면 전체 소스도 있어요.
백엔드가 포함되나요?
아니요. 완전한 앱은 필요한 백엔드를 알려 주고, 서버에서 내 것을 연결해요. 디자인은 샘플 데이터로 실행돼요.
디자인을 바꿀 수 있나요?
네. 디자인 탭에서 브랜드 색, 색상, 글꼴, 모서리를 크레딧 없이 설정해요. 나머지는 어시스턴트가 바꿔요.
게시하려면 어떤 플랜이 필요한가요?
Creator 이상이면 내 Apple·Google 계정으로 빌드하고 스토어에 업로드해요. Premium 템플릿의 앱은 웹사이트를 연결하면 어떤 플랜이든 빌드돼요.
소스를 다운로드할 수 있나요?
네. 작업 공간에서 플랜, 크레딧 또는 유료 템플릿을 구매했다면 소스 다운로드나 GitHub 푸시로 가능해요. Premium 템플릿의 앱은 웹사이트 연결도 필요해요.
이전 FluxNative로 만들었다면요?
복사본은 그대로 작동해요. 앱 언어와 통화 같은 새 기능은 어시스턴트에게 업데이트를 요청하세요. 마지막 설정 단계예요.
내 앱으로 만들어 볼까요?
Flitwing One-Tap Flying Game App에서 시작해 채팅으로 무엇이든 바꾸세요. 사본에는 전체 소스 코드가 포함돼요.
무료로 복사하세요. 신용카드는 필요 없어요.