Flutter Frontend Developer w/ Game Dev Experience

Please login or register as jobseeker to apply for this job.

TYPE OF WORK

Full Time

SALARY

117000 PHP / month

HOURS PER WEEK

40

DATE UPDATED

Apr 8, 2026

JOB OVERVIEW

About RAVIA

RAVIA is a location-based AR edutainment mobile app for children aged 6–17, built for iOS and Android. Kids explore real-world geofenced locations to collect AR tokens, complete daily puzzles, and upgrade their avatar — a Rav — to unlock real-world partner rewards.

The app is built on a Flutter + Unity architecture: Flutter owns the UI shell, navigation, and all interactive puzzle experiences, while Unity drives the AR layer. Puzzles are delivered as web-based mini-games inside a Flutter WebView, giving us full flexibility over game design without bloating the native app.

We're a small, focused team. The work is meaningful, the tech is interesting, and the product is genuinely fun to build.

The Role

We're looking for a Flutter developer who can also build web-based games — someone who is equally comfortable writing clean Dart as they are building an interactive HTML5 puzzle that runs inside a mobile WebView. This is not a generalist role; we need someone with real hands-on experience in both areas.

You will work directly on the Flutter app and own the delivery of the puzzle game layer — designing, building, and integrating six puzzle types (Memory, Wordle, Arithmetic, Sudoku, Crossword, Spaceman) as web games rendered inside a Flutter WebView, with full age-adaptive difficulty progression.

What You'll Be Doing
- Build and maintain the Flutter app across iOS and Android, translating Figma mockups into polished, performant UI
- Develop interactive web-based mini-games (HTML5/CSS/JS) that run inside a Flutter WebView for iOS and Android
- Architect and implement the WebView bridge — JavaScript channels, message passing between Dart and web game layer
- Implement all six puzzle types with age-gated difficulty matrices, auto-progression logic, and daily state management
- Integrate the Flutter–Unity communication bridge (platform channels) for the AR game layer
- Build accessibility-first UI: dyslexia-friendly fonts, adjustable contrast, large tap targets, and optional timed pressure toggle
- Integrate Flutter screens against a Node.js/PostgreSQL REST API
- Collaborate with our UI/UX designer, game designer, and backend developer to deliver a cohesive experience
- Write clean, maintainable code that a small team can build on over time

What We Need (Required)
- Strong Flutter/Dart skills — you've shipped a real iOS and Android app
- Solid HTML5, CSS, and JavaScript — you build things with it, not just describe them
- Hands-on experience building games or rich interactive experiences for the web (canvas API, Phaser, PixiJS, or equivalent)
- Experience integrating WebView inside a mobile app and communicating bidirectionally between native and web contexts
- Comfortable with REST API integration in Flutter (Dio, http, or similar)
- State management experience — Provider, Riverpod, Bloc, or equivalent
- Familiar with iOS and Android build, signing, and deployment pipelines

Bonus Points
- Experience with Flutter–Unity integration or flutter_unity_widget
- Experience building in Unity
- Background in children's apps, edutainment, or designing for younger audiences
- Familiarity with accessibility standards (WCAG, mobile a11y best practices)
- Exposure to location-based or AR mobile apps
- Experience with offline-first architecture and local data sync
- Comfortable working in a small startup-style team with evolving requirements

What This Role Is Not

This is not a backend role — we have a backend developer; you will consume APIs, not build them
This is not a design role — mockups are provided; your job is faithful, high-quality implementation

How to Apply

Send us a brief intro, your portfolio or relevant work samples (especially anything game-related or WebView-heavy), and your availability. We move quickly — no drawn-out hiring processes.

SKILL REQUIREMENT
VIEW OTHER JOB POSTS FROM:
SHARE THIS POST
facebook linkedin
  BENCHMARKS  
Loading Time: Base Classes  0.0011
Controller Execution Time ( Jobseekers / Job )  0.0156
Total Execution Time  0.0177
  GET DATA  
No GET data exists
  MEMORY USAGE  
1,503,456 bytes
  POST DATA  
No POST data exists
  URI STRING  
jobseekers/job/Flutter-Frontend-Developer-w-Game-Dev-Experience-1619031
  CLASS/METHOD  
jobseekers/job
  DATABASE:  onlinejobs (Jobseekers:$db)   QUERIES: 13 (0.0089 seconds)  (Hide)
0.0003   SELECT *
                                
FROM exrates
                                WHERE rate_name 
'USD-PHP' 
0.0003   SELECT *
FROM `employer_jobs`
WHERE `job_id` = 1619031
 LIMIT 1 
0.0003   SELECT *
FROM `employers`
WHERE `employer_id` = 884331
 LIMIT 1 
0.0003   SELECT COUNT(*) AS `numrows`
FROM `t_thread` `t`
LEFT JOIN `t_thread_misc` `miscON `t`.`id` = `misc`.`thread_id`
WHERE `t`.`job_id` = 1619031
AND `misc`.`idIS NULL 
0.0004   SELECT e.business_namee.logoe.websitee.rebill_datee.date_added member_datehitsDATEDIFF('2026-04-21',ej.date_added) duration_daysDATEDIFF('2026-04-21',e.rebill_date) duration_rebillej.*, e.deactivate FROM employers eemployer_jobs ej WHERE e.employer_id ej.employer_id AND
                                   ((
e.user_level >= '500' AND ej.date_added <= e.rebill_date)
                                   OR 
e.employer_id '' OR (ej.date_approved <> '2000-01-01' and DATEDIFF('2026-04-21',ej.date_added) <= 14 ))
                                   AND 
e.deactivate != AND ej.deleted AND job_id '1619031' 
0.0004   SELECT *
FROM `employer_jobs_skills` `ejs`
LEFT JOIN `skills_categories` `scON `ejs`.`skill_id` = `sc`.`id`
WHERE `job_id` = 1619031 
0.0022   UPDATE employer_jobs SET hit_counts '***Apr-08-2026=318***Apr-09-2026=57***Apr-10-2026=36***Apr-11-2026=18***Apr-12-2026=21***Apr-13-2026=19***Apr-14-2026=10***Apr-15-2026=28***Apr-16-2026=10***Apr-17-2026=16***Apr-18-2026=9***Apr-21-2026=1' WHERE job_id'1619031'  
0.0007   UPDATE employer_jobs SET monthly_hits '***Apr-2026=542' WHERE job_id'1619031'  
0.0003   SELECT date_sent FROM jobseeker_sent_emails WHERE jobseeker_id '' AND job_id '1619031' AND status LIKE 'sent%' ORDER BY id DESC  
0.0003   SELECT *
FROM `employer_jobs_skills` `ejs`
LEFT JOIN `skills_categories` `scON `ejs`.`skill_id` = `sc`.`id`
WHERE `job_id` = 1619031 
0.0017   SELECT COUNT(*) AS `numrows`
FROM `employer_jobs`
WHERE `employer_id` = '884331'
AND `date_added` >= '2022-06-08' 
0.0003   select from teasers 
0.0013   SELECT FROM skill_categories WHERE skill_cat_id='' 
  HTTP HEADERS  (Show)
  SESSION DATA  (Show)
  CONFIG VARIABLES  (Show)