Skip to content

Category: Linux

Posts related to Linux development.

Goodbye GTK+ 2, Hello GTK+ 3

With the release of Xojo 2017 Release 2 we have updated our Linux Desktop framework to use GTK+ 3 instead of GTK+ 2. For those not familiar with Linux, GTK+ is a User Interface (i.e. UI) toolkit, much like Cocoa is for macOS and Win32 controls (or WinForms.NET or WPF) is for Windows. GTK+ 2 has been supplying the user interface for Xojo Desktop apps for Linux since we first targeted Linux over a decade ago. It has since been deprecated in favor of GTK+ 3 for quite some time now and GTK+ 2 is typically not installed by default on most Linux distros these days, which makes deploying Xojo Desktop apps on Linux more painful. Unfortunately GTK+ 3 is not ABI compatible with GTK+ 2 so we could not migrate to using GTK+ 3 without completely ditching GTK+ 2.

Let’s take a closer look at what this means for your Linux apps:

Comments closed

JSON Feed Desktop App

Recently, a new syndication format was introduced by Brent Simmons and Manton Reece called JSON Feed. It is an alternative to RSS/Atom to get feeds for blog posts and podcasts. RSS/Atom are XML-based making them complex to work with. As its name implies JSON Feed uses JSON and is much simpler. I’ve shown in previous posts how easy it is to make a web and iOS apps with Xojo to display the feed.

In this post, I’ll show you how to create a Xojo desktop app to display the JSON feed for Daring Fireball in less than 20 lines of code. This app works without changes on macOS, Windows and Linux.

Comments closed

Raspberry Pi and Xojo: Configure for Remote Access

Xojo is a superb choice for developing and deploying apps for Raspberry Pi. After all, Xojo not only simplifies making the User Interface of your apps via drag and drop, it’s an object-oriented and event oriented programming language that builds native Linux apps based on the ARM processor architecture for the Raspberry Pi (among other platforms).

Comments closed

Xojo Programming Language: 6 Fascinating Facts

Xojo is similar to VB, Java and C#

The Xojo programming language is fully object-oriented and uses an object model that is quite similar to VB, Java and C#. If you are used those languages at all, you’ll be right at home with Xojo.

Available since 1998, Xojo was one of the first languages to use Automatic Reference Counting (ARC), something that other languages such as Swift and Objective-C now use. Xojo is type-safe and fully object-oriented making it easy to learn and use, but it also has advanced features such as namespaces, extension methods, exception handling, introspection, delegates and more.

Comments closed

Advanced Retina/HiDPI: BitmapForCaching and ScaleFactorChanged

The most direct way to support HiDPI* for custom controls is to draw into the Graphics object passed into the Paint event. That graphics object is already configured with the appropriate scale factor and double buffering- the entire control will be handled correctly by the framework if the DoubleBuffer property is set.

*As with other posts, we’ll use “HiDPI” to refer to both HiDPI on Windows and Retina on OS X.

2 Comments

Xojo Retina/HiDPI: The journey of a thousand pixels…

“Retina” is the name for high resolution screens on Mac and iOS devices while “HiDPI” is the Windows equivalent. For simplicity, I’ll use HiDPI (which really is the universal technical term) for the rest of this blog post. Now that we have HiDPI support in Xojo, if you app doesn’t use any pictures, you can simply open your project, click on Shared under Build Settings and turn on the “Supports Retina/HiDPI” option. That’s all you need to do to have a HiDPI version of your app!

Having said that, if you are creating or using pictures in your project, there may be a few adjustments you’ll need to make to your code. A little over a year ago the process of making sure we had all of the necessary graphics together to build a Retina/HiDPI IDE was added to my to-do list. While 95% of the icons created for the Xojo IDE in 2013 already existed, most of the graphics that made up the IDE itself did not, and the IDE itself needed a bit of an overhaul to get it ready for the big change, both in graphics and in code…

2 Comments