Ship a single dashboard as a dedicated white-label app. The short ID is baked in — users just open the app and type a password. Paste 4 config lines, rebrand, build.
Download source codeThis guide builds the single-dashboard edition — an app locked to one specific dashboard. For a multi-dashboard app (a customer's whole list), use the Build Your Own App guide instead.
Download the source (button above), unzip, open a terminal in the folder:
flutter create --org com.yourcompany --project-name virtuino_app_single .
flutter pub get
C: but the project is on another drive (e.g. F:),
Kotlin incremental compilation can fail with “this and base files have different roots”.
Fix: develop on C:, or add kotlin.incremental=false to
android/gradle.properties then run flutter clean.
Open lib/main.dart and replace the placeholder lines at the top with the ones the
console gave you:
const String kSingleShortId = 'vr-ab12cd34';
const int kSingleDashboardId = 863;
const bool kSingleFitWidth = true;
flutter run — the app opens,
asks for the password you set, and lands straight on your dashboard.kSingleAppName + Android android:label + iOS CFBundleDisplayName.assets/logo.png.assets/app_icon.png (1024×1024), uncomment the
flutter_launcher_icons: block in pubspec.yaml, run
flutter pub run flutter_launcher_icons.kOrange / kBlue / kBg in lib/main.dart.android/app/src/main/AndroidManifest.xml (inside <manifest>):
<uses-permission android:name="android.permission.INTERNET"/>
flutter build appbundle --release # Play Store
flutter build apk --release # sideload
Set up signing first — see the Android signing guide.
🔒 Never commit key.properties or your .jks.
Free to rebrand/modify/distribute — but usable only as a client of Virtuino Cloud
(see LICENSE). Push notifications are not included (official app only); the in-app
Alert Logs work without extra setup.
Virtuino Cloud — Single-Dashboard App