Skip to content

Category: Technology

5 Questions to Ask When Choosing a Development Tool

These days everyone has a great idea for an app. Maybe you have an idea that would save you time at work, or maybe you’ve been thinking of an app that would automate something you do at home. Not sure where to start? One of your first steps is choosing a development tool that is right for you and for your project.

Here are five questions to guide your decision:

Comments closed

Identify Images Using IBM Watson’s Remote APIs

Some of the most interesting web services you can use with Xojo through remote API calls are related to Artificial Intelligence. There are many different APIs provided by the main players in the AI sector, but IBM’s Watson is by far the most well known.

I’m going to show you how to connect to IBM’s Watson services with REST APIs and how to use them with Xojo projects to identify images. This is just one example, of course, of the many ways to utilize Watson and AI in your Xojo apps.

Comments closed

Predicting the Future: Communication & Xojo’s Roadmap

If you spend enough time trying to predict the future, you learn that the more variables there are, the more difficult it becomes to determine a future. Take the weather for example. It’s not hard to predict tomorrow’s weather because there’s not much that will change over the next 12 hours or so. Try to predict the weather 7 days from now, 7 months or worse, 7 years from now, and your results will begin to vary dramatically.

This is certainly the case when it comes to writing apps. The bigger any one particular feature is, the more variables there are that affect it and thus the more difficult it becomes to predict how long it will take to finish. You don’t have to work in the software business very long to figure this out. Like most people in the software industry, we’ve been trying (with varying degrees of accuracy) to do this not just for our own internal planning but because we know you want, and need, to know as well.

Comments closed

2018 Xojo Design Award Winners

During his Keynote, Geoff announced the winners of the 2018 Xojo Design Awards, honoring excellence in software design in the following categories: Best Developer Tool, Best Specialty App, Best Consumer App, Best Mobile App, Best Utility App and Best Cross-Platform App.

These apps represent the creativity, flexibility and diversity in the Xojo Community – support this year’s winners and the whole Xojo community by sharing and reviewing their apps on social media and app stores!

This year’s winners are:

Comments closed

Using Subversion Externals
with Xojo Text Projects

A topic that comes up every once in a while on the forums is how to share code among several projects with more than one developer. Quite often what users try to do is to export classes and modules to a shared folder and have everyone include those in their projects. There can be issues with this technique, especially when using shared services like DropBox.

Because of the latency involved, external items shared in a shared folder on a server or a file sharing service are never truly in-sync with one another. While this technique works with a single developer across two or three projects, it gets more and more complicated as you add more projects and even more-so if you try to add more developers.

One of the largest issues with this type of system is that everything must be kept in sync all the time. Making one little change to a shared file or method which works fine in the current project could completely break a project that you haven’t worked on in a year. When you do get around to working on it again, there’s three possibilities:

  1. The project compiles and everything works just like it did before.
  2. The project doesn’t compile.
  3. The project compiles and doesn’t work like it did before.

With careful planning, you’ll probably hit #1 75% of the time, but the other two are wrought with problems. If the project compiles but doesn’t work correctly, you may not find out until you’ve given it to your users, with the worst case being unrecoverable data corruption. If it doesn’t compile, then what? The shared code is now required to be different in two different projects and you may have no history as to what was changed.

Thankfully the folks at who are maintaining Subversion at the Apache Software Foundation made it super easy to create shared code repositories using a feature called Externals. (For those of you that are using Git, I suggest looking into Submodules. Of the two techniques I’ve encountered, Submodules seem to require the least individual overhead.)

Comments closed

Compilers 109 – Linking and Wrap-up

The linker is not technically part of the compiler, but it is needed to make a completed app. The purpose of the linker is to combine (link) all the various bits and pieces of machine code created by the compiler along with the necessary information to create a runnable app for the OS.

This is the ninth and final post in our Compiler series. Previous posts:

Comments closed

Compilers 108 – Code Generation

Code generation is one of the last steps of the compiler. This is where the compiler emits actual machine code for the IR that was previously created.

This is the eighth post in our Compiler series. Other posts:

Comments closed

Compilers 107 – Optimizer Loop Unrolling

The last post covered optimization in general. In this post you’ll look at a specific optimization called “loop unrolling”.

This is the seventh post in our Compiler series. Other posts:

Comments closed

Unlock the all in one, low-code, cross-platform solution

Like his father, my teenage son loves video games. The single player games where you take a character through some kind of adventure are the ones I like most. These usually have a fair number of AI-controlled enemies that must be defeated. My son, on the other hand, prefers to play against other human beings. When I asked him why, he said, “The AIs are so predictable.” To prove this to me, he took over when I was having trouble defeating a particularly difficult enemy and quickly dispatched him, narrating his strategy as he went and barely being scratched in the process. My son is an elite player compared to me partially because he puts a lot more time into it than I do but also because he loves video games far more than I do.

Just as people have varying levels of skill and interest in video games, the same is true of app development. There are those that are happy to devote enormous amounts of time to learning everything they possibly can. They don’t care how long it takes. They want to have control over everything and are willing to do whatever is necessary to make that happen. I’m so glad those people exist because there’s a lot of great software that might not otherwise have been created without them. I’m not one of those people. I really want to focus mostly on what makes my application unique, abstracted from the nitty-gritty of app development.

That’s why I have always been attracted to tools like Xojo. I am a citizen developer. Of all the job titles I have had over the years, all of them in tech,  none have ever included words like programmer or engineer. I do some software development but it’s just a part of my job. It’s something I do to help me in my work or to help my co-workers.

Comments closed