The Uno platform is a software library that allows software developers create an application that targets Android devices, iOS devices, Windows devices, and Web applications. Put another way, using Uno, a software developer can write a single application that will run on . . . just about anything.
Cross-platform software development, in many different forms, has been a goal for decades. The Java programming language touted “write once, run anywhere” in the 1990s. At a lower level, in the 1960s the C programming language was designed so that developers wouldn’t have to write programs using different assembly languages. The Uno platform brings this idea to a high level of abstraction.
One of the ways I try to keep up with new developments in software technologies is to review technical book manuscripts. One of my favorite publishers to review for is Syncfusion. They have published many excellent e-books that are freely available. Recently, I was performing a tech review and edit for a new e-book titled “Uno Succinctly” and I learned a lot about the Uno platform.
While I was preparing the get started on the Uno manuscript review, I found an excellent, in depth video by Martin Zikmund on YouTube. See youtube.com/watch?v=_YgsfOtG6IM. I captured five images from the presentation for this blog post.
Left: You can develop separate applications for each platform. Right: Libraries like Xamarin allow you to write one set of code for the logic but still require separate sets of code for different platform UI.
The second image shows a partial solution to the cross-platform development problem: use a library such as Xamarin so that a single set of the logic code could be deployed on various devices and OSes. But you’d still have to write different UI code for different devices.
Left: The goal of Uno is one code base for all platforms. Right: An example of an Uno application – all the UIs look very much the same. (cue sound of me yawning).
The third image shows the goal of the Uno platform: one platform that allows developers to write once, run anywere. Quite an aspiration.
The fourth image shows an application developed using Uno, where the UI on different systems looks nearly the same.
The fifth image below shows an example of Uno development in action. The references shown are just a tiny tip of the iceberg — there are literally thousands of code dependencies involved with Uno development.
I am usually optimistic about technologies, but I’m highly skeptical of any multipurpose tool intended for all cross-platform development. I’ve worked on cross-platform development and systems such as Uno have to be insanely complex. In my experience, I spent far more time debugging the cross-platform development system than I did debugging the application under development. In many situations, a cross-platform development solution creates more problems than it solves. Sometimes the simplest solution is the best — just bite the bullet and write and test and maintain different code bases. Painful, but it always works.
My opinions are strongly influenced by my distaste for writing UI code. I am much more interested in data structures and algorithms that I am in placing a UI button on an applcation. I am happiest when the code I write will run in a shell.
So, if you are in a situation where cross-platform development is required, you should check out Uno. But if you’re new to cross-platform development, beware: it is a very difficult, tedious, and annoying environment to work in.
Keep an eye out for the free “Uno Succinctly” e-book from the Syncfusion company. It should be published in June or July 2021.
A chatelaine is a type of jewelry that is rarely worn anymore. A chatelaine was worn from a woman’s waist. Originally, chatelaines were purely functional and held keys because Victorian era dresses in the 1800s did not have pockets. Later, various useful items such as thimbles, small scissors, mirrors, watches, and so on were added. Chatelaines were a multipurpose tool in some sense. As time went by, chatelaines became more decorative and jewelry-like and less functional.