Skip to content

Category: Learning

Guest Post: Achieving Success As A Xojo Developer

I’ve spent most of my career developing custom software. I’ve worked as an in-house developer creating custom “line of business” solutions. I’ve worked for software development firms that provide custom software for clients. And I’ve primarily been a self-employed custom software developer since first going out on my own in early 2000. Today, a lot of the work that I’m doing involves developing custom software solutions using Xojo.

I’m often asked by other developers – some who are already using Xojo and some who are not – where the opportunities for Xojo developers are, and how to find them. I also occasionally see these types of questions posted on the Xojo forum by developers who want to use their knowledge of and passion for Xojo to start their own business. So I thought I’d share some of my experiences and observations.

Comments closed

Change your DNS settings for a smooth transition to a bigger, better server

Most Xojo Cloud users have already switched to the newer Xojo Cloud servers. These new servers have more RAM and SSDs and are the priced lower or the same as our previous servers. But moving your projects from one server to another is easier said than done. You’ll need to plan carefully to avoid downtime. Here is a simple change you can make to your DNS settings in order to limit downtime, making the move to a better server smoother.

Comments closed

JSON Tree

JSON (JavaScript Object Notation) is a great text-based data format that can be used for files and web services data communication.

The structure is simpler than XML which makes it much smaller and since it does not make use of all the tags you’ll find in XML, it is also significantly easier to read. However, if you open unformatted JSON in a text editor you’ll probably find it a bit dense. Here’s how to get around that.

Comments closed

Control Sets and ContainerControl: A New Approach

A Control Set is the feature to use when there are several instances in a Window’s layout and you need to command (or access them) from code, both for those available by default in the Framework and ones based on your own graphic classes. For example, this allows us to invoke a method in a concrete instance, based on its control index, or invoke the same method to all of them (iteration). All of this without knowing in advance, at runtime, how many of such instances are placed in the layout.

An inconvenience of this feature is that you can’t use it when the graphic controls are placed on a ContainerControl due to the way ContainerControls are implemented. The good news is that this problem has an easy solution! Read on to learn about it:

Comments closed

Binary Magic with Signed Integers

In binary the high bit (the one immediately following the &b in Xojo code) is the “sign bit”. When it’s set to 1, the value is interpreted as “negative” and when it’s set to 0, the value is “positive”. Meaning that bit is not used as part of the “number” itself.

Comments closed

Working with XML

XML can sometimes be a bit confusing, so here are some tips to help you work with XML files.

First, you need to make sure your XML is really XML.

Comments closed

Me vs. Self

When you add a control such as a PushButton to a Window (or a WebButton to a WebPage or an iOSButton to an iOSView), an instance of the control is created for you and added to the layout. Code that is in the event handlers of a control added in this way can refer to both its own properties and methods as well as the properties and methods of the window.

Comments closed

Tip: SQLite in RAM … to improve speed!

It’s very usual to use encrypted SQLite databases in our Xojo projects where we expect to get the maximum read speed from them. But the truth is that encrypting the data in these databases can introduce a penalty in our queries, both from read and writing/updating data to them. How can we improve this? One technique is the creation of a new in-memory based SQLite database, where we will be able to copy the table (or tables) we are interested in getting the maximum speed possible with. Continue reading to see how to do this.

Comments closed