Uno is a C#-like programming language that powers Fuse. All of the Fuse core classes are written in Uno, which is then compiled to C++ when running on devices. Uno shares most of its syntax and type system with C#, so learning Uno is almost identical to learning C#.
Check out the Uno Language Reference for information on similarities and differences between Uno and C#.
What to use Uno for
- Interop with existing Java or Objective-C/Swift code
- Small pieces of code that need to be extremely high performance
- Custom GPU graphics rendering and effects
What NOT to use Uno for
- Composing UX components. Use UX markup instead. Don't worry, all UX markup is converted to Uno code when compiled and is just as fast.
Adding Uno files to a project
To add an Uno file, simply create an empty text file with the
.uno extension in your project folder, and adding it to
Includes array in the project file (
.unoproj). The entry should be in the format
fuse create uno <filename>. This will automatically create an uno file with a template, and add it to the project.
Uno API documentation
The Uno APIs and the UX Markup APIs are literally the same thing. We can browse the APIs by namespace in the full class reference.
Uno interops smoothly with Java, Objective-C and C++ using a superset of C# called Foreign code, to allow you to easily wrap native APIs or existing code bases.
See the foreign code section for more information.