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 codeThis 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.
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.
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.
com.yourcompany.virtuino_app_user.
Choose your own reverse-domain (e.g. com.acme) — it must be unique on the stores.| Where | What to change |
|---|---|
| Android | android/app/src/main/AndroidManifest.xml → android:label="Your App" |
| iOS | ios/Runner/Info.plist → CFBundleDisplayName |
| In-app title | lib/main.dart → MaterialApp(title: 'Your App') |
Replace assets/logo.png with your own logo (PNG, transparent, ~512 px). No code change needed.
By default it shows the Virtuino logo.
assets/app_icon.png.pubspec.yaml, uncomment the flutter_launcher_icons: block and set your brand background color.flutter pub run flutter_launcher_icons.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
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"/>
keytool -genkey -v -keystore my-release.jks -keyalg RSA -keysize 2048 -validity 10000 -alias my-app
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
android/app/build.gradle.kts — see Flutter's
Android signing guide.flutter build appbundle --release # .aab for Play Store
flutter build apk --release # .apk for sideload
Open ios/Runner.xcworkspace in Xcode, set your Team & Bundle ID, then
flutter build ipa --release.
key.properties or your .jks keystore —
they sign your app and must stay private.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.
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.
Virtuino Cloud — Build Your Own App