c++windowsmacoscross-platformxojo

What are the compromises with using Xojo for cross platform development?


Much of the cross-platform development topics on SO seems to be 6 to 9 years old. Anyone have recent experience with Xojo? Can it be used to quickly deploy UI on top of C++ generated linked libraries on macOS and Windows? How does that work on iOS? What are the limitations of this tool?


Solution

  • I have no experience with iOS deployment with Xojo but used Xojo for quite a few x-platform projects (Mac/Win/Linux) where I also access self-written C code, in iBored for instance.

    Overall, I like Xojo better than Qt or Java for designing and deploying apps with a GUI. Xojo adheres closer to the UI specifics, IMHO. You'll have a harder time finding help, however, since the community is rather small.

    To access C++ code you need to write yourself a C-level layer because Xojo does not provide an easy way to link to and use C++ objects. But interfacing plain function in any library (.dylib, .dll, .so) is super easy, and mainly involves writing the Xojo equivalent of a function declaration, and possibly add some structure definitions as well. You can pass all the simple datatypes (Int in all sizes, float, double, C and Pascal strings, even access raw memory via pointers) but will have to provide accessor functions for more complex data structures (array, dicts etc.) as Xojo's object manangement does not mix with that of C++ or other runtimes.

    Xojo has been around for nearly 20 years now (formerly known as REALbasic) and is decent enough to rely on it.

    OTOH, Xojo is closed source, and the company is rather slow (or even unable / unwilling) to fix issues - and you can't fix them yourselves, obviously. I had more than one case where I figured out how to fix a bug in their binary code, and they wanted to prohibit me from doing that, threatening to invalidate my license, while also not committing to providing a fix. If that worries you, I advise you to stay away from Xojo.