Open Source

Build your own Virtuino app

Take the Virtuino Cloud companion app, put your name, logo, icon and colors on it, and publish it as your own — for your clients or your brand. It's a single Flutter file, no Firebase, no secrets. Ready in minutes.

Download source code
Flutter project · ~4 files · MIT-style license (Virtuino Cloud only)

Build Your Own Virtuino App

This is the developer guide for the open-source edition of the Virtuino app. Anyone can download it, rebrand it, and ship a white-label app that opens their Virtuino Cloud dashboards. If you just want to use the official app, read the App User Guide instead.

What's inside the download: lib/main.dart (the whole app), pubspec.yaml, assets/logo.png, README.md and LICENSE. The native android/ & ios/ folders are generated fresh in step 1, so they carry your identity from the start.

Prerequisites

1. First run (5 minutes)

Unzip the download, open a terminal in the folder, and run:

flutter create --org com.yourcompany --project-name virtuino_app_user .
flutter pub get
flutter run

The app launches on the login screen and connects to Virtuino Cloud immediately.

Your application id becomes com.yourcompany.virtuino_app_user. Choose your own reverse-domain (e.g. com.acme) — it must be unique on the stores.

2. Make it yours

App name

WhereWhat to change
Androidandroid/app/src/main/AndroidManifest.xmlandroid:label="Your App"
iOSios/Runner/Info.plistCFBundleDisplayName
In-app titlelib/main.dartMaterialApp(title: 'Your App')

Login logo

Replace assets/logo.png with your own logo (PNG, transparent, ~512 px). No code change needed. By default it shows the Virtuino logo.

App icon (we ship none on purpose)

  1. Put a 1024×1024 PNG at assets/app_icon.png.
  2. In pubspec.yaml, uncomment the flutter_launcher_icons: block and set your brand background color.
  3. Run flutter pub run flutter_launcher_icons.

Colors

Edit the constants near the top of lib/main.dart:

const Color kOrange = Color(0xFFFF4500);   // primary / buttons
const Color kBlue   = Color(0xFF2188FF);   // accents
const Color kBg     = Color(0xFFF0F2F8);   // background

3. Build for release

⚠️ Add the INTERNET permission. flutter create does not add it to the release manifest, so a release build will silently fail all network calls. In android/app/src/main/AndroidManifest.xml, add this just inside <manifest> (above <application>):
<uses-permission android:name="android.permission.INTERNET"/>

Android

  1. Create a keystore (once):
    keytool -genkey -v -keystore my-release.jks -keyalg RSA -keysize 2048 -validity 10000 -alias my-app
  2. Create android/key.properties (keep it private — never commit):
    storePassword=YOUR_STORE_PASSWORD
    keyPassword=YOUR_KEY_PASSWORD
    keyAlias=my-app
    storeFile=/absolute/path/to/my-release.jks
  3. Wire signing into android/app/build.gradle.kts — see Flutter's Android signing guide.
  4. Build:
    flutter build appbundle --release   # .aab for Play Store
    flutter build apk --release         # .apk for sideload

iOS

Open ios/Runner.xcworkspace in Xcode, set your Team & Bundle ID, then flutter build ipa --release.

Never commit key.properties or your .jks keystore — they sign your app and must stay private.

License

You are free to rebrand, modify, and distribute your own version. The one restriction: the app may be used only as a client of Virtuino Cloud — it may not be repointed to a different backend or service. See the LICENSE file in the download.

Push notifications

This open-source edition does not include OS push notifications (they rely on Virtuino's Firebase project and ship only in the official app). The in-app Alert Logs — the history of triggered alerts — work fully here without any extra setup.

Need the end-user instructions instead? See the Virtuino App User Guide.

Virtuino Cloud — Build Your Own App