FAQ
Frequently asked questions about the BowlerKit Flutter project and Account/Guest profiles.
How do I create a Flutter project?
Use the BowlerKit CLI rather than cloning the private source repository:
bowler create my-flutter-appSelect Flutter, then Account or Guest. See Up and Running.
What are the local seed credentials?
php artisan migrate --seed creates:
- Super admin:
[email protected]/superapp - Test user:
[email protected]/user
These are development fixtures only; replace/remove them before production.
Which database does the backend use?
Laravel's .env.example uses PostgreSQL and Redis. Configure matching DB_*, REDIS_*, and rate-limit settings in Laravel and Go. SQLite is not the shipped default.
How do I connect Flutter locally?
Point the app at your host root by editing mobile-app/lib/config/app_env.dart (apiBaseUrl default) or overriding at build time with flutter run --dart-define=API_BASE_URL=<host> (see mobile-app/docs/ENVIRONMENT.md):
- Android emulator:
http://10.0.2.2:8000for Laravel. - iOS simulator:
http://127.0.0.1:8000orhttp://localhost:8000. - Physical device: your computer's LAN IP.
Endpoints.buildApiPath adds /api/v1; do not add that prefix to the host root. Guest projects do not require a backend URL.
How do I regenerate code?
cd mobile-app
flutter pub get
dart run build_runner build --delete-conflicting-outputsIf conflicts persist, run dart run build_runner clean first. Never edit generated files directly.
How do Google/Apple sign-in work?
Google login/registration uses google_sign_in and matching Firebase/client configuration. Apple is implemented for connected-account linking and uses sign_in_with_apple; the current auth UI exposes Google as its social login button. See Authentication.
How do I configure push notifications?
Run flutterfire configure, configure the final package/bundle IDs, and place the Laravel service-account key at admin-panel/storage/app/firebase-auth.json. Account mode registers FCM tokens during the wizard/bootstrap; Guest mode does not initialize FCM. See Push Notifications.
Why don't notifications open a specific screen?
The current FCM/local notification open handlers log/handle messages but do not route arbitrary payloads. Add an allowlisted navigation contract before using notification links.
How do I configure payments?
The template uses RevenueCat. Pass REVENUECAT_ANDROID_API_KEY or REVENUECAT_IOS_API_KEY with --dart-define; the entitlement is Bowlerplate Pro. Account uses backend UUID/server entitlements, while Guest uses an anonymous customer. See Payments.
How do I change icons/splash screens?
Update flutter_launcher_icons.yaml and flutter_native_splash.yaml, then run:
dart run flutter_launcher_icons
dart run flutter_native_splash:createSee Assets Configuration.
How do I change the package name or deep-link scheme?
Use change_app_package_name, rerun flutterfire configure, update native URL scheme files, and keep the allowlisted flonlate://link?destination=... contract aligned with Laravel. See Rename Package and Deep Links.
How does privacy synchronization work?
Account language/region/timezone/privacy settings are persisted locally and synchronized to /api/v1/app/preferences; notification preferences use /api/v1/app/notifications/preferences. Guest preferences stay local.
How do I build for production?
flutter build appbundle --release
flutter build ipa --release # macOS/Xcode onlyConfigure Firebase, RevenueCat/AdMob, signing, store metadata, and the final API host first.
Does the template include crash reporting?
firebase_crashlytics is listed as a dependency, but the template does not initialize Crashlytics collection by default. Add the initialization/consent/release-symbol setup before documenting it as enabled.
How do I deploy the backend?
Use the generated admin-panel/compose.yaml and optional api-backend/compose.yaml with your own customer-managed database, Redis, network, and reverse proxy. The source-repository docker/infra/docker/proxy directories are not included or published in customer projects. The admin service is named backend; the compose stack does not launch docs. See Docker Deployment.
What is Guest mode?
Guest is local-first: no Account backend bundle, auth/API calls, remote preference sync, FCM token sync, or server entitlement checks. Local settings/notifications, static help/about, Paywall/RevenueCat, and AdMob remain. Optional deep cleanup is documented in generated docs/AI-GUEST-CLEANUP.md.
Run bowler doctor flutter for toolchain failures. For route ownership see Backend Architecture and API Routes.
