Ennoble is an open-source, offline-first brain-training app built with Laravel 13, NativePHP Mobile v4, SuperNative, EDGE components, and on-device SQLite. Its interface renders as native SwiftUI on iOS and Jetpack Compose on Android; core training, profiles, progress, settings, and game content work without a network connection.
| Home | Games | Quick Math |
|---|---|---|
![]() |
![]() |
![]() |
| Achievements | Profile | Settings |
|---|---|---|
![]() |
![]() |
![]() |
| Home | Games | Quick Math |
|---|---|---|
![]() |
![]() |
![]() |
| Achievements | Profile | Settings |
|---|---|---|
![]() |
![]() |
![]() |
The walkthrough starts on Home, opens Games, plays Quick Math with both a correct and an incorrect answer, completes the session, visits Achievements and Profile, switches from Dark to Light appearance, and finishes back on Home.
Watch the complete iOS walkthrough (1:47, MP4, 10 MB)
- Fully native iOS and Android interface from one Laravel codebase.
- Offline-first SQLite persistence with no account or remote API requirement.
- Three offline training games — Word Match (vocabulary), Quick Math (arithmetic), and Recall (memory sequence) — with adaptive difficulty and their own accent colours.
- Local progress, achievements, streaks, profile, System/Light/Dark appearance, sound, haptics, and reduced-motion preferences.
- Native accessibility labels, scalable system text, light/dark appearance, and reduced-motion support.
- PHP 8.4 and Composer 2
- The PHP SQLite extension
- macOS with Xcode for iOS development
- Android Studio and Android SDK 36 for Android development
- A simulator, emulator, or development-enabled physical device
NativePHP does not support WSL. Windows and Linux can build Android; building iOS requires macOS and Xcode.
git clone https://github.com/vipertecpro/ennoble.git
cd ennoble
composer install
cp .env.example .env
php artisan key:generate
touch database/database.sqlite
php artisan migrate --no-interactionOn Windows PowerShell, use Copy-Item .env.example .env and New-Item database/database.sqlite -ItemType File -Force in place of cp and touch.
Ennoble is fully native and currently has no package.json, so there is no npm/Vite installation step.
Set a unique local application ID in .env before installing the native shell:
NATIVEPHP_APP_ID=com.yourname.ennoble
NATIVEPHP_APP_VERSION=DEBUG
NATIVEPHP_APP_VERSION_CODE=1For a physical iOS device, also provide the Apple Developer Team ID:
NATIVEPHP_DEVELOPMENT_TEAM=YOUR_TEAM_IDInstall both platform shells:
php artisan native:install both
php artisan native:plugin:listAll four bundled plugins—Lottie, Media Player, Vibe, and Native UI—should appear as registered.
Choose the platform you have configured and run the matching command in your terminal:
# iOS
php artisan native:run ios --watch
# Android
php artisan native:run android --watchNative screens hot-reload without Vite. Migrations run automatically inside the app when it starts.
composer validate --strict
php artisan test --compact
php artisan native:plugin:listIf you change PHP files, format them before opening a pull request:
vendor/bin/pint --dirty --format agentApplication development guidance for AI assistants lives in AGENTS.md.
Ennoble's original visual language uses calm dark surfaces, a focused lime accent, native typography, and motion that communicates state. In-app graphics are composed from native platform symbols and shapes so they remain crisp, accessible, and fully offline:
- Material Symbols for Android, licensed under Apache License 2.0
- SF Symbols for Apple-platform interfaces
The following products and design studies informed interaction research only; Ennoble does not reproduce their assets, branding, copy, or exact layouts:
Ennoble runs on the published stable SuperNative packages — nativephp/mobile (v4) and nativephp/mobile-ui (^0.3) — resolved straight from Composer. The earlier local compatibility mirror has been removed now that the official core and Native UI packages are mutually installable.











