Skip to content

Category: Cross-Platform

Let Your OS X Desktop App React to Custom URIs

Have you ever wondered how the magic behind the “mailto://” or other similar Uniform Resource Identifiers (URI) work? Whether from the web browser URL field or from Xojo via the ShowURL function, when URIs are executed the registered app opens showing the passed parameters (for example, in the Mail app for the ‘To’, ‘Subject’ and ‘Body’ fields).

Implementing this kind of behavior in your OS X apps is not rocket science! Follow these simple steps in order to register a custom URI from your app.

Comments closed

WeakRef and Memory Management

Object Oriented Programming with Xojo, and in this case Event Oriented Programming as well, is simply wonderful. You create objects (Instances) from the defined classes that act as templates and just let them roll. From there, the interactions made by the user are those that determine how objects interact with each other via sending messages to each other (method calls), the access to properties and also the execution of events.

However, sometimes the combination can simply reach unstable situations by the very nature of our applications and here is where failures can arise in memory management. Fortunately, we can keep this under control with the help of the WeakRef class.

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

Easy as Pi: GPIO updates

We are always keen to see apps and projects that Xojo developers have made for their Raspberry Pi 2 and Raspberry Pi 3 single-board computers. Especially since Xojo 2019r1 when building for Pi Desktop and Console is free with Xojo Pi!

I am pleased to announce some updates to our GPIO project to make it even easier to use more types of hardware in your Raspberry Pi projects.

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

Headless Pi: Using Xojo and Raspberry Pi Without a Display

You don’t need to hook up your Pi to a physical display, keyboard and mouse. You can set up VNC on the Pi so you can remotely connect to it.

My Raspberry Pi 2 sits on my desk next to one of my speakers. It’s not hooked up to any display. I use a combination of SSH, SFTP and VNC when I need to work with it.

Comments closed