In a previous entry we started to dig into web services with Xojo. The first post focused on the backend (server side), creating the Xojo app acting as middleware between the clients and the database that holds your data. We are using SQLite as the backend engine but it would not be difficult to change to other supported database engines like PostgreSQL, MySQL (MariaDB), Oracle or SQL Server, and even ODBC; all of these are supported by Xojo!
Tag: Xojo Framework
In many of our development projects, if not all, we are confronted with situations when we need to test our classes before the final deployment of a project. I’m not talking about Unit Testing here, though I highly recommend the excellent session on that topic from XDC 2018.
For example, it would not be desirable to send hundreds of emails to all the entries in a database simply to test one of the workflow steps or to verify that emails are being delivered as expected. It would be a lot simpler, and less disruptive to those using your app, to test using a few email addresses that are under your control.
So let’s establish a mechanism that allows us tell our apps when to run in a “simulated” mode vs. a “real” mode for all or some of the components that we need to test along the development cycle.
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.
Whether you are using Xojo to create your very first application or if you are coming from other languages, like C# or VisualBasic, customized UI controls are probably one of those things you have in your to-do list. For multiplatform Desktop apps, you will find that the Canvas class offers everything you need. In order to show you how easy it can be, follow this tutorial to recreate the ImageWell UI class control, provided by default in the Xojo framework. Our customized ImageWell will be able to proportionally display any JPEG file dropped by the user on the control, centering it on the available surface.
You can call into Win32 APIs (aka WinAPI) to use methods and properties that are not built into the framework by using the Declare command. To create a Declare statement you first need to track down the API you want to use using Microsoft’s documentation: Microsoft Developer Documentation.
Geoff just wrapped up the Keynote at this year’s XDC here in beautiful Denver, Colorado. The stately ballroom at the Magnolia Hotel was packed. After…
In 1998 Steve Jobs was the interim CEO of Apple and trying to keep his unprofitable company from sinking into bankruptcy. Just the previous year, when asked what he would do if he were in charge of Apple, Dell CEO Michael Dell said, “I’d shut it down and give the money back to the shareholders.”
The Mac had single digit marketshare. Creating a development tool, independently of Apple or any company that makes a platform such a tool would support, was considered a fool’s errand. There were plenty of tools available from large companies. Apple made MPW (the Macintosh Programmer’s Workshop). Symantec created THINK C. Metrowerks developed CodeWarrior. IBM’s VisualAge. Macromedia Flash. If you needed to create a cross-platform desktop app, you’d be told to look no further than SUN Microsystems Java: THE cross-platform language. We were all promised that Java was going to run on everything from our computers to our cars to our can openers. Java was the safe and popular choice. Developers made up only about 5% of computer users anyway. Honestly, who would be crazy enough to launch a new development tool in a market crowded by giants?
There’s been a bit of discussion about how the new Xojo.Net.HTTPSocket is slow for some users on Windows, which we’ve been trying to isolate to…