Preview and Export

Fuse X offers two ways of running your app:

  • Preview - A fully working build of your app, which also updates in real-time as you make changes to your UX markup or JavaScript.
  • Export - The final version of your app, which can be shipped to app stores or used for private testing.

When developing your app, you typically work in preview all the time, to be able to iterate quickly. Then you export when you want to deploy it. Note that in some scenarios, preview performance can be a bit slower than in export.

Fuse X Preview app

This stand-alone app is by far the simplest way of previewing your projects and does not require the installation of Xcode or Android SDK. It also lets you preview on iOS devices while developing on a Windows computer.

You can use the preview app as long as your project only contains UX markup, JavaScript, TypeScript and standard Fuse packages, but excluding Fuse.PushNotifications.

If your project contains .uno files or custom / 3rd party packages then you must instead build your own custom preview.

Preview App Setup

You can download the app for Android from Google Play and for iOS from the Apple App Store.

To run a preview first make sure your test device and development computer are on the same WiFi. Then open your project in Fuse and click the "Devices" button in the upper right corner. This will open a window containing the necessary information for connecting the preview. Follow the instructions inside the app to either scan the QR code or manually enter the IP and code.

Check out this video to see how it's done! Fuse X Preview app

Export and custom preview

Android setup

To be able to preview or export to Android, you need to install the required SDK components. Pull up your terminal and run the following:

fuse install android

You should not use sudo here.

This dependency can also be installed using NPM.

This will attempt to locate existing Android SDK components, and install them if necessary.

If you are running Windows you also need to install the right USB driver for your device. A list of drivers for common vendors, as well as instructions to install them can be found here.

Also on your android device itself you will need to enable 'developer options' & 'USB debugging'. For info on how to do this please see the official docs here.

iOS setup

You will need macOS and Xcode to preview and export your app to iOS.

You also need to create a free Apple Developer account and register it under Xcode's settings as shown below.

Add Apple ID to Xcode

It can also be useful to install the following dependencies if you want to launch apps straight from Terminal.

npm install ios-deploy -g
npm install ios-sim -g

Custom Preview

We can easily preview apps both locally and on Android/iOS devices while getting immediate feedback on changes to the UX markup and JavaScript. These are the instructions for building your own custom preview. If your app project does not contain .uno files or custom packages you can use the Fuse X Preview app instead (without having to install Xcode or Android SDK).

When running preview for iOS, Fuse X doesn't run your app directly, but will open the project in Xcode. From there, press the "play" button to run the preview session.

When we open a project in Fuse X, it starts in preview mode inside the tool, along with visual tools to inspect and modify the app. To start preview on a device, use the "Preview" menu.

Preview menu

You can start preview on as many devices as you like. A USB connection is only required when starting preview, after that all changes are streamed over WiFi.

Preview from editor plugins

Preview can also be launched from one of our editor plugins. Select preview target android / ios to launch on a device, or local / dotnet to open it in Fuse X.

Preview from Sublime Text

To preview from sublime text, right-click any ux or unoproj file in the sidebar and select your target platform under the Fuse: Preview menu.

Sublime preview from sidebar

We can also start preview from the command palette. Press Cmd+Shift+P (macOS) or Ctrl+Shift+P (Windows) to bring up the palette, and type Fuse Preview to see a list of preview targets.

Sublime Text preview from command palette

Preview from Atom

Press Cmd+Shift+P (macOS) or Ctrl+Shift+P (Windows) to bring up the command palette, and type Fuse Preview to see a list of preview targets.

Atom preview from command palette

Preview from command line

In your terminal, cd to the your project's directory, and run the command that corresponds to your build target.

fuse preview android
fuse preview android-emu
fuse preview ios
fuse preview ios-sim
fuse preview            # Start local preview

We can get further documentation on fuse preview by running fuse help preview.

Export

When exporting your app, your UX markup is compiled to native C++ code, meaning that you lose the ability to preview your app in real time. However your app will function on its own, without a network connection back to your computer. Performance is also better in many cases. This is what you want when distributing your app.

The simplest way to export is to use the "Export" menu in Fuse. However, the command line provides more options.

Android

In the project root, run the following command in your shell:

uno build android --run

This will deploy and start the project on your connected Android device.

To run in Emulator (x86_64) instead, run:

uno build android-emu --run

Please make sure the emulator is started first. It doesn't start automatically.

To make a release build, run:

uno build android --configuration=Release

To export your app to the Google Play Store, you need to sign it first.

iOS

In the project root, run the following command in your shell:

uno build ios --debug

This will generate an Xcode project and open it in Xcode (required for provisioning profiles). You can start your app from Xcode.

To run your app directly in iOS Simulator, without going via Xcode first, run:

uno build ios-sim --run

To export your app to the App Store, you need to sign it first. You can also do this from Xcode.

Signing

See the signing article for a guide on signing your app for release.