Examples
Xojo projects
Reviewing and experimenting with example projects is another great way to learn. There are hundreds of them available right in Xojo. You can access them in Xojo by choosing File > New Project and then clicking on Examples in the New Project window.
Tip
The examples in this dialog box are loaded via the Internet. If you need access to them when you're not connected to the Internet, you can download them or click the Download Examples button on the Examples pane of the Project Chooser.
You can search the examples by name. Selecting an example will display information about it in the pane to the right.
You can also limit your search to examples for a specific kind of project and platform (Android, iOS, Linux, macOS, Raspberry Pi, Windows).
While most examples are designed to show off a specific feature, the Eddie's Electronic's example project is a full application.
Complete list of included example projects
The following example projects are available in Xojo via the Project Chooser window.
AI
Name
Description
Type
Platform
ChatGPTConnection Class
Allows you to easily interact with ChatGPT via the included ChatGPTConnection class.
Desktop
All
Integrate AI Features with GroqAI
Integrate AI features in your Xojo applications using the AI models provided by Groq. The class can be used in Desktop, Mobile or Web projects.
Desktop
All
Application Structure
Name
Description
Type
Platform
Handling Termination Signal in a Console App
Handling an external termination signal
Console
macOS
Interacting with the Console
Creates an interactive console application.
Console
All
Code Execution
Name
Description
Type
Platform
Evaluator
Use XojoScript to evaluate simple expressions.
Desktop
All
Graphics Context Example
Use XojoScript to draw to a Graphics object.
Desktop
All
ScriptImaging
Create and manipulate images using XojoScript.
Desktop
All
Making a Class Iterable
How to use a Class in a loop. Uses a DesktopListBox control.
Desktop
All
Pointing Events at Methods
How to use methods to respond to events.
Desktop
All
Simple Thread StartMethod
Demonstrates how to use the StartMethod of the Thread class to quickly and easily start a new thread.
All
All
XojoScript
Run simple XojoScript a graphical user interface.
Desktop
All
Communication
Name
Description
Type
Platform
Cats
Display pictures of cats.
Mobile
iOS
EddiesWebService
Implement a simple Web service API. You can more information at https
Web
All
Feedbin
Access Feedbin (https
Desktop
All
IPCSocket
Communicate between applications using the IPCSocket class.
Desktop
All
Line State Change Tester
Visualise serial port line state changes using the SerialConnection class.
Desktop
All
RESTy
Implements a REST (https
Desktop
All
Sending Email from a Console App
Send an email from a console application using the SMTPSecureSocket class.
Console
All
Serial Device Bar Code Reader Example
Read bar codes using the SerialConnection class.
Desktop
All
Serial Line Indicator
Control serial port lines using the SerialConnection class.
Desktop
All
Slack
Access Slack (https
Desktop
All
TwilioAnswerCall
Receive Twilio phone calls using the App.HandleURL event.
Web
All
TwilioSMS
Receive Twilio SMS messages using the URLConnection class
Desktop
All
WebServer
A simple Web server using the ServerSocket and TCPSocket classes.
Desktop
All
WebServerWindowsService
A simple Web server using the ServiceApplication, ServerSocket and TCPSocket classes.
Console
Windows
YouTube
Display a YouTube using the DesktopHTMLViewer class.
Desktop
All
Cryptography
Name
Description
Type
Platform
Crypto
Demonstrates the generation of hashes using the Crypto module.
Desktop
All
RSA
Demonstrates RSA Public and Private key generation using the Crypto module.
Desktop
All
Databases
Name
Description
Type
Platform
Accessing a Firebird Database
Connect to and use a Firebird database using the ODBCDatabase class.
Desktop
All
Backup Example
Demonstrate synchronous and asynchronous backup of an SQLite database.
Desktop
All
DBKit-Desktop
Demonstrates the DBKit module for creating database clients for the desktop.
Desktop
All
DBKit-Web
Demonstrates the DBKit module for creating database clients for the web.
Web
All
Full-Text Searching 4
Demonstrate the use of the SQL 'Match' statement.
Desktop
All
Full-Text Searching 5
Demonstrate the use of the SQL 'Match' and 'ORDER BY' statements.
Desktop
All
GetDataSourceNames
Display the ODBC data sources defined on the local computer.
Desktop
All
Installing a SQLite Database
Demonstrates how to handle installing a SQLite database on on the user's machine and connecting to it once it's installed. A generic method called DatabaseTarget is provided which you can use in your projects.
Desktop
All
LargeObjects
Demonstrate the use of the PostgreSQLDatabase.CreateLargeObject method.
Desktop
All
Listen
Demonstrate the use of the PostgreSQLDatabase.Listen method. Paired with the Notify example project.
Desktop
All
MySQLDatabase
Connect to and use a MySQL database using the MySQLCommunityServer class.
Desktop
All
Notify
Demonstrate the use of the PostgreSQLDatabase.Notify method. Paired with the Listen example project.
Desktop
All
ODBCDatabase
Connect to and use a Microsoft Access database using the ODBCDatabase class.
Desktop
All
PostgreSQL
Connect to and use a PostgreSQL database using the PostgreSQLDatabase class.
Desktop
All
SQLite (Desktop)
Connect to and use an SQLite database using the SQLiteDatabase class.
Desktop
All
SQLite (Web)
Connect to and use an SQLite database using the SQLiteDatabase class.
Web
All
SQLite Prepared Statement
Demonstrates using prepared statements in SQLite.
Desktop
All
Storing Pictures
Store pictures in an SQLite database using the 'Blob' column type.
Desktop
All
Working with BLOBs
All. Create and manipulate the SQLite database 'Blob' column type.
Desktop
All
Declares
Name
Description
Type
Platform
DeclareGetPID
Use the Xojo 'Soft Declare' statement to get a Process Identifier on each desktop platform.
Desktop
All
WindowOpacity
Use Xojo 'External Methods' to set the transparency of the desktop application window.
Desktop
All
Design Patterns
Name
Description
Type
Platform
Factory
The Factory (http
Desktop
All
Interpreter
Demonstrates the Interpreter design pattern (https
Desktop
All
Lazy Initialization
Demonstrates the Lazy Initialization (https
Desktop
All
Observer
Demonstrates the Observer (https
Desktop
All
Singleton
Demonstrates the Singleton (http
Desktop
All
Files
Name
Description
Type
Platform
Copy and Move
Create a file using the TextOutputStream class. Move and copy using FolderItem.MoveTo and FolderItem.CopyTo.
Desktop
All
Drag To Desktop
Create a desktop file using drag and drop.
Desktop
All
File Browser
A simple file browser using the FolderItem class and a DesktopListBox control.
Desktop
All
File Search
Search a folder for files containing the specified text.
Desktop
All
FileTypeGroup
Demonstrate the use of a FileTypeGroup to create text files with a specified file extension.
Desktop
All
Folder Info
Display folder information using FolderItem methods.
Desktop
All
FolderItem Dialogs
Demonstrate the use of OpenFileDialog, SaveFileDialog and SelectFolderDialog.
Desktop
All
PNG FileType
Demonstrates opening and creating PNG image files using the FolderItem and Picture classes.
Desktop
All
Reading and Writing Binary Data
Demonstration of creating, reading and writing binary data files using the FolderItem and BinaryStream classes.
Desktop
All
SpecialFolder Paths
Display the folder paths available via SpecialFolder.
Desktop
All
Getting Started
Name
Description
Type
Platform
Data Types
Demonstrating some of the data types available in Xojo.
Desktop
All
Enumerations
Demonstrating how enumeration types are used in Xojo.
Desktop
All
Parameter Options
Demonstrating how method parameters are used in Xojo.
Desktop
All
Sort Algorithms
Implementing the Bubble and Merge sort algorithms in Xojo.
Desktop
All
Graphics
Name
Description
Type
Platform
Animation
Animate a bouncing soccer ball. Uses a DesktopCanvas control and the Timer class.
Desktop
All
Cross Platform Drawing Android
The example demonstrates how to write code that will draw graphics that will work in Desktop, iOS, Android and Web projects.
Mobile
Android
Cross Platform Drawing iOS
The example demonstrates how to write code that will draw graphics that will work in Desktop, iOS, Android and Web projects.
Mobile
iOS
Cross Platform Drawing Desktop
The example demonstrates how to write code that will draw graphics that will work in Desktop, iOS, Android and Web projects.
Desktop
All
Cross Platform Drawing Web
The example demonstrates how to write code that will draw graphics that will work in Desktop, iOS, Android and Web projects.
Web
All
DesktopOpenGLSurface
Simulate a two dimensional fluid field using the OpenGLSurface class.
Desktop
All
GraphicsPath
Draw card deck suit shapes using the GraphicsPath class.
Desktop
All
Graphing Sign Waves
Draw sine waves using a DesktopCanvas control and the Graphics class.
Desktop
All
Interactive Grid
Draw a user defined grid using a DesktopCanva control and its built-in Graphics class.
Desktop
All
Object2D Text Rotation
Rotate text using the Object2D class.
Desktop
All
Objects in a Canvas
Display and move two dimensional objects on a DesktopCanvas control.
Desktop
All
Saving and Load Vector Graphics
Saving and loading vector graphics using the Picture class.
Desktop
All
Sparkler
Draw animated particles using a DesktopCanvas control and the Picture class.
Desktop
All
System Colors
Display the current System colours using the Color class.
Desktop
All
Wavy Text
Text animation. Uses a DesktopCanvas control and the Timer class.
Desktop
All
IDE
Name
Description
Type
Platform
Code Assistant Tester
Use this to test and debug your Xojo IDE Code Editor Code Assistants.
Desktop
All
IDECommunicator
Automate the Xojo IDE from the command line.
Console
All
IDECommunicator
Automate the Xojo IDE from the command line.
Desktop
All
Language
Name
Description
Type
Platform
ActionSource
Demonstrate the use of the ActionSource and ActionNotificationReceiver interfaces.
Desktop
All
Arrays
Demonstrate a simple array and an array with elements containing a class.
Desktop
All
Assigns
Demonstrate the use of the 'Assigns' keyword in method parameters.
Desktop
All
Delegate
Demonstrate the use of Delegates in a sorting application.
Desktop
All
Dictionary
Demonstrates the use of the Dictionary data type.
Desktop
All
Extension Methods
Demonstrates the ability of Xojo to extend the functionality of data types and classes.
Desktop
All
Faster String Appending with MemoryBlock
Demonstrates the use of MemoryBlocks to improve the speed of appending strings.
Desktop
All
Introspection
Demonstrates the ability of Xojo to inspect the runtime instances of classes within an application.
Desktop
All
Operator Lookup
Dynamically access class methods.
Desktop
All
Operator Overloading
How to implement custom operators. This example uses Operator_Compare to provide a customised comparator.
Desktop
All
PictureResizer
Demonstrates a way to utilise multiple CPU cores.
Desktop
All
Semaphore Example
Control access to resources in a multithreaded application.
Desktop
All
Sorting Arrays
Sorts an array of classes (DateTime) using the customisable DesktopListBox.Sort method.
Desktop
All
Thread Synchronization
Demostrates the importance of using synchronization locks when when multiple preemptive threads access a shared resource.
Desktop
All
Threaded Imgur Generator
Demostrates preemptive versus cooperative threads for loading pictures over the internet (from Imgur).
Desktop
All
Threaded Picture Loading
Creates a set of pictures then demonstrates loading them with cooperative versus preemptive threads.
Desktop
All
Threaded Word Counter
Demostrates preemptive versus cooperative threads for counting words in text files.
Desktop
All
ThreadPool Example
This simple example demonstrates the difference between cooperative and preemptive threads using the M_ThreadPool class written by Kem Tekinay.
Desktop
All
Using a Timer in a Console App
Using the Timer class in a Console application.
Console
All
Using Attributes
Using IDE attributes to manage code maintenance and visibility.
Desktop
All
WordCounter
Demonstrates a way to utilise multiple CPU cores.
Desktop
All
Networking
Name
Description
Type
Platform
AutoDiscovery
Uses the AutoDiscovery class to find another application, on the same local network, to communicate with.
Desktop
All
Downloading Files
Download a picture file from the Internet. Uses the URLConnection class.
Desktop
All
NetworkInterface
Uses the NetworkInterface class to display connection information.
Desktop
All
ServerSocket Client
A simple client application to communicate with ServerSocket Server. Used the TCPSocket class.
Desktop
All
ServerSocket Server
A server to handle message to and from ServerSocket Client. Uses the ServerSocket and TCPSocket classes.
Desktop
All
TCPSocket
Connect to a web site using the TCPSocket class.
Desktop
All
UDP Multicast
Use the UDPSocket class to communicate with other applications on the same local network.
Desktop
All
UDPSocket
A simple chat application. Uses the UDPSocket class.
Desktop
All
Using GET with URLConnection
Retrieve information from a website. Uses the URLConnection class.
Desktop
All
Using POST with URLConnection
Send information to a website. Uses the URLConnection class.
Desktop
All
Name
Description
Type
Platform
Adding Links to PDF files
Add URL links to a PDF document. Uses the PDFDocument class.
Desktop
All
Adding the ability to sign a document
Sign PDF document with a digital certificate. Uses the PDFDocument class.
Desktop
All
Attaching Files
Embed a file within a PDF document. Uses the PDFDocument class.
Desktop
All
Brushes
Draw using graphical brushes in a PDF document. Uses the PDFDocument class.
Desktop
All
Callouts
Add a Callout annotation to a PDF document. Uses the PDFDocument class.
Desktop
All
PDF Table From Data
Shows how to create PDF tables using a PDFTableDataSource from data stored in a plain text file where each row is a line of text separated by the Tab character.
Desktop
All
Creating PDF Documents from iOS
Create a PDF document on an iOS device. Uses the PDFDocument class.
Mobile
iOS
Creating PDF Documents from the Desktop
Create a PDF document from a desktop application.
Desktop
All
Creating PDF forms
Creating PDF forms via Xojo code. Uses the PDFDocument class.
Desktop
All
Lines
Add a Line annotation to a PDF document. Uses the PDFDocument class.
Desktop
All
Password Protection
Password protect and encrypt a PDF document. Uses the PDFDocument class.
Desktop
All
Sounds
Embed a sound file within a PDF document. Uses the PDFDocument class.
Desktop
All
Table of Contents
Create a PDF document table of contents. Uses the PDFDocument class.
Desktop
All
Text
Add Text annotations to a PDF document. Uses the PDFDocument class.
Desktop
All
Using Transparency
Demonstrates multiple transparent layers in a PDF document. Uses the PDFDocument class.
Desktop
All
Video
Embed a video file within a PDF document. Uses the PDFDocument class.
Desktop
All
Platforms
Name
Description
Type
Platform
Access the Clipboard
Send and retrieve data using the Clipboard class.
Mobile
iOS
Accessing the Tabbar
Demonstrates access to the TabBar via code.
Mobile
iOS
Add and Edit Layout Constraints from code
Managing control constraints via code.
Mobile
iOS
Adding Controls Dynamically
Add and remove contols at runtime.
Mobile
iOS
Adding Sections
Demonstrates adding sections to an iOSMobileTable control via code.
Mobile
iOS
Analogclock
Demonstrates drawing an analog clock.
Mobile
Android
Applying Bootstrap CSS classes to controls
Demonstrates the use of Bootstrap CSS classes to via the CSSClasses method that is available to all web controls.
Web
All
Appversion
Demonstrates getting the app version.
Mobile
Android
Auto-Size Label
Demonstrates auto-resizing a label to fit the text it contains.
Mobile
iOS
Available Fonts
Use a MobileCanvas to display a list of available fonts.
Mobile
iOS
Barcode
Demonstrate the Barcode class. Which uses the device's camera to read barcodes.
Desktop
All
Barcode
Demonstrate the Barcode class. Which uses the device's camera to read barcodes.
iOS
iOS
BevelButton
Demonstrate the desktop BevelButton control and some of its properties.
Desktop
All
Built-In Dialogs
Demonstrates the built-in dialogs.
Desktop
All
Button Cell
Demonstrates embedding controls within a WebListBox.
Web
All
Buttonbackgroundcolor
Shows how to use a declare to set a button's background color.
Mobile
Android
ButtonStyling
Demonstrates various button styles.
Desktop
Windows
Calculator
A calculator app.
Mobile
Android
CalendarWindow
Demonstrates creating a custom control by using a DesktopWindow.
Desktop
All
Canvas Redraw Speed
Demonstrates server to client drawing speed. Uses the WebCanva control.
Web
All
Canvasbounce
Shows how to use the Canvas control to do simple animation.
Mobile
Android
CanvasButton
Demonstrates creating a custom control by using a DesktopCanvas control.
Desktop
All
Canvasdrawpicture
Demonstrates drawing picture files in a Canvas.
Mobile
Android
Canvasrotation
Demonstrates shape rotation animation in a Canvas.
Mobile
Android
Canvastext
Demonstrates drawing user-entered text in a Canvas.
Mobile
Android
Catsup
Demonstrates using the URLConnection class to get random pictures of cute kitties from the Internet.
Mobile
Android
ChameleonControls
Demonstrates how to use replace a native control used on macOS and Linux with a XAML control on Windows.
Desktop
Windows
Chart
Demonstrate using the MobileChart control.
Mobile
iOS
Chart
Demonstrate the DesktopChart control. Also demonstrates saving charts using PDFDocument class.
Desktop
All
Chart
Demonstrate the WebChart control.
Web
All
Chime
This example demonstrates how to play a sound along with panning the sound to the left, center and right.
Mobile
Android
Clipboard
Demonstrating sending and getting data from the Clipboard class.
Desktop
All
Clipping Graphics
Draw clipped graphics. Uses the MobileCanvas control and its built-in Graphics class.
Mobile
iOS
Color Cell
Demonstrates drawing within the celss of a WebListBox. Uses the WebListboxCellRenderer class.
Web
All
ColorPicker
Demonstrates selecting colours using the DesktopColorPicker control.
Desktop
All
Communicating between Sessions
Demonstrates sending and receiving messages between different web sessions.
Web
All
Container Control
Demonstrates using the WebContainer control.
Web
All
Container
Demonstrate different uses of the DesktopContainer control.
Desktop
All
Container
Demonstrates using a container.
Mobile
Android
Control Sets
Demonstrates the concept of control sets by creating a user-defined number of DesktopButtons.
Desktop
All
Controlling Row Selection
Demonstrates selectable table rows using the iOSMobileTable control.
Mobile
iOS
Controlthemes
Demonstrates using themes with controls.
Mobile
Android
Creating a Contextual Menu
Demonstrates creating a contextual menu.
Desktop
All
Creating a Custom Window Shape with Declares
Demonstrates using Declares to create a customised window shape.
Desktop
Windows
Creating Contextual Menus
Demonstrates creating and using contextual menus. Used the WebMenuItem control.
Web
All
Custom Cell Dynamic Height
Demonstrates how row height can change fit content at runtime using the iOSMobileTable control.
Mobile
iOS
WebListBox Cell Renderers
Demonstrates drawing pictures into the cells of a WebListBox.
Web
All
Custom Cells and Scrolling
Demonstrates row customisation using the iOSMobileTable control.
Mobile
iOS
Custom ProgressWheel
Drawing a custom progress wheel control.
Web
All
CustomButton
Demonstrates using the WebSDK to construct a customised button.
Web
All
Web_SDK_Custom_Select_Control
Demonstrates constructing a complex web control (similar to WebPopupMenu).
Web
All
DatePicker
Demonstrate using the MobileDataTimePicker control.
Mobile
iOS
Datetimepicker
Demonstrates the DateTimePicker control.
Mobile
Android
DateTimePicker
This CustomDateTimePicker control is an example of a completely DesktopCanvas-based custom control. It's advantages over the native DesktopDateTimePicker control are that it
Desktop
All
Declare Example - CPU Usage
Demonstrates using Declares to create a CPU idle time monitor.
Desktop
Windows
Declare
A basic declare example.
Mobile
Android
DesktopGrid with Database
Demonstrates how to use the DesktopGrid control using a database as the data source.
Desktop
All
Dialog Box
Demonstrates the use of (asynchronous) WebDialog control.
Web
All
Dice
Demonstrates drawing simple graphics with the DesktopCanvas control.
Desktop
All
Dictionary
Accessing a dictionary.
Mobile
Android
DifferentViews
Demonstrates various list-style controls.
Desktop
Windows
DownloadContainer
Demonstrates the concept of control sets by creating contols in response to a user action.
Desktop
All
Downloading Files
Demonstrates download files from the Internet.
Web
All
Downloading
Demonstrates dynamic and static downloading of file from a web server. Uses the WebFile class.
Web
All
Drag and Drop Between ListBoxes
Drag and drop rows between DesktopListBox controls.
Desktop
All
Drag and Drop Pictures
Demonstrates dragging and dropping a picture to and from a Xojo application.
Desktop
All
Drag and Drop
Demonstrates selecting, dragging and dropping a graphic using the DesktopCanvas control.
Desktop
All
Drag Between Cells
Drag cells within a DesktopListBox control.
Desktop
All
Drag Labels and Links
Demonstrates dragging and dropping Label and Link controls.
Web
All
Dragging and Dropping Files
Drag files to a DesktopListBox control.
Desktop
All
Dragging Events
Demonstrates the DesktopListBox dragging events.
Desktop
All
Drawing an Analog Clock
Draw and animiate an analog clock. Uses a DesktopCanvas control and a Timer class.
Desktop
All
Drawing Fire
Draw and animate a simple fire effect. Uses a DesktopCanvas control and a Timer class.
Desktop
All
Drawing Gradients
Demonstrates shadow, linear and radial gradient effects.
Desktop
All
Drawing Text
Demonstrates drawing text using the DesktopCanvas control.
Desktop
All
Drawing with Threads
Demonstrates drawing complex graphics using threads to improve performance.
Desktop
All
Drop Files Example
Demonstrates how to restrict dropped files to specific types.
Desktop
All
Dynamic Container Control
Demonstrates modifying WebContainer controls at runtime.
Web
All
Dynamic Desktop Toolbars
Demonstrates runtime modification of the DesktopToolbar control.
Desktop
All
Dynamic Dialog Box
Demonstrates creating and using a dynamic dialog. Uses the WebDialog control.
Web
All
Editing a WebListBox Cell
Demonstrates how to programmatically begin an edit action on specific WebListBox cells.
Web
All
Embedding a Windows Native Control
Add Win32 controls to a Xojo application. Example embeds a ControlLink into a Desktop application.
Desktop
Windows
Excel Automation
Access and control Excel via Xojo code. Requires the MSOfficeAutomation plugin.
Desktop
Windows
Export
Export the contents of a DesktopListBox to a text file. Also demonstrates the use of an extension method.
Desktop
All
External Methods
Demonstrates the use of External Methods by displaying fonts and font information.
Desktop
macOS
Feedbin
Demonstrates basic username/password authorization via feedbin.com.
Mobile
Android
FileBrowser
Implements a simple file browser using the DesktopListBox control. Also demonstrates subclassing.
Desktop
All
Folderitem
Accessing files via the FolderItem class.
Mobile
Android
Font Menu
Demonstrates creating and selecting an item from a menu. Also demonstrates the System.FontAt function.
Desktop
All
Fonts
Display a short list of fonts. Uses a MobileLabel control to display each font .
Mobile
iOS
Geofencing
This example demonstrates how to detect when a user enters or exits a predefined area.
Mobile
iOS
Get Default Control Size
Adjust desktop control sizes. Does not use the IDE 'Normal Control Sizes' switch.
Desktop
Linux
Graphicsclip
Demonstrates clipping graphics in a Canvas.
Mobile
Android
Graphicspath
Demonstrates using a GraphicsPath to draw shapes in a Canvas.
Mobile
Android
Graphing Sine Waves
Draw user-defined sine waves. Uses the MobileCanvas control and its built-in Graphics class.
Mobile
iOS
Gravatar
Demonstrates constructing a control using Internet resources. Uses resources provided by Gravatar.com.
Web
All
Grid
Implement a simple grid using a DesktopListBox control.
Desktop
All
GroupBox
Demonstrates DesktopGroupBox (and DesktopRadioButton).
Desktop
All
Hiding Tabs
This example demonstrates how to dynamically hide the tab bar.
Mobile
iOS
HTMLViewer-ExecuteJavaScript Test
Demonstrates the DesktopHTMLViewer control. Also demonstrates the use of JavaScript.
Desktop
All
HTMLViewer-JavaScript
Demonstrates using ExecuteJavaScript with HTMLViewer.
Mobile
Android
Htmlviewer
Demonstrates the HTMLViewer control.
Mobile
Android
HTMLViewer
Create a simple web browser using the MobileHTMLViewer.
Mobile
iOS
IconGrid
Demonstrate runtime addition and removal of DesktopListBox rows and columns.
Desktop
All
Imagepicker
Demonstrates the ImagePicker.
Mobile
Android
ImagePicker
Create a simple picture viewer using the MobileImageViewer.
Mobile
iOS
Imageset
Demonstrates accessing images in an ImageSet and then drawing them into a Canvas.
Mobile
Android
Input Dialog
Demonstrates a user input dialog.
Desktop
All
InputFields
Demonstrates various input fields.
Desktop
Windows
Interactive Canvas
Demonstrates interactive graphics using the DesktopCanvas control.
Desktop
All
Introspection
Demonstrates using Introspection.
Mobile
Android
iOS TableIndex
Demonstrates how to add an index (like the A-Z index in Apple's Contacts app) to your tables.
Mobile
iOS
iOSMobileTable Search Filters via Declares
Demonstrate the use of declares to create and use a Search field for an iOSMobileTable.
Mobile
iOS
Simple Table DataSource Via a Class
Demonstrates how to use a class as the datasource for an iOSTable.
Mobile
iOS
Simple Table DataSource Via a Database
Demonstrates how to use a database as the datasource for an iOSTable.
Mobile
iOS
iOSTable
Demonstrate using the iOSMobileTable control.
Mobile
iOS
Drag Kanban Board
Demonstrates dragging and dropping cards on a Kanban board.
Web
All
Layouts
Demonstrates various layouts.
Desktop
Windows
Lazy Loading
Demonstrate a method for loading large amounts of data into a DesktopListBox control.
Desktop
All
LEDBlinker-Console
Flash a light.
Console
Raspberry Pi
LEDBlinker
Blinks an LED light when connected to one through a breadboard.
Console
Raspberry Pi
LEDButton-Console
Control an light with a button.
Console
Raspberry Pi
LEDButton
Turns an LED light (connected through a breadboard) on and off by clicking a button.
Console
Raspberry Pi
LinkLabel
Demonstrates creating a custom control by using a DesktopLabel control.
Desktop
All
ListBox
Demonstrate DesktopListBox features.
Desktop
All
Listbox with a Datasource
Demonstrates populating a WebListBox from an SQLite database.
Web
All
Load a Theme
Demonstrates how to load a GTK theme for a desktop application.
Desktop
Linux
Location
Create a simple location display application using the MobileLocation control.
Mobile
iOS
Location
Demonstrates getting the user's location.
Mobile
Android
Making a Session Timeout Due to Inactivity
Demonstrates how to control a session timeout. Uses the WebSession.UserTimeout property.
Web
All
Managing User Login
Demonstrates managing user authentication.
Web
All
Memoryblock
Demonstrates using a MemoryBlock.
Mobile
Android
MenuBar
Demonstrates creating a menu bar.
Desktop
Windows
Messagebox
Demonstrates the MessageBox method.
Mobile
Android
MessageBox
Demonstrate using the MobileMessageBox.
Mobile
iOS
MobilePicture-Metadata
Demonstrates how to read metadata from and write metadata to pictures.
Mobile
iOS
Modal Dialog
Demonstrates a modal dialog.
Desktop
All
Modalscreen
Demonstrates creating a modal screen.
Mobile
Android
Motion
Demonstrate using the MobileMotion class. The iOSSimulator does not simulate device motion.
Mobile
iOS
Movieplayer
Demonstrates the MoviePlayer control.
Mobile
Android
MoviePlayer
Create a simple movie player using the DesktopMoviePlayer control.
Desktop
All
NotePlayer
Demonstrates playing sounds using the DesktopNotePlayer control.
Desktop
All
Notification Categories
Demonstrates notificiations for iOS applications. Uses the MobileNotifications class.
Mobile
iOS
OKCancelContainer
Demonstrates a self-modifying control using a DesktopContainer. Alters the order of DesktopButtons depending on the current platform.
Desktop
All
OLE Automation Tests
Demonstrates OLE Automation to create a Word document. Needs the Word application installed to work.
Desktop
Windows
Open Recent Menu
Demonstrates how to create and maintain an Open Recents file menu.
Desktop
All
Other iOS Dialogs via Declares
Demonstrate miscellaneous iOS dialog boxes.
Mobile
iOS
Passkeys for Web
Demonstrates how to use passkeys for web application login rather than traditional passwords.
Web
All
PDFViewer Control
Demonstrates displaying a PDF file via PDFViewer control.
Mobile
iOS
Picturedrawing
Drawing a simple picture in a Canvas.
Mobile
Android
Play Folder of Movies
Demonstrates how to play multiple movies using the DesktopMoviePlayer control.
Desktop
All
Popover
Demonstrate how to use DesktopWindow and DesktopContainer to create popover windows.
Desktop
All
Popover
Demonstrate how to use WebContainer to create popovers.
Web
All
Popover
Demonstrate how to use MobileScreen and MobileContainer to create popovers.
iOS
iOS
PowerPoint Automation
Access and control PowerPoint via Xojo code. Requires the MSOfficeAutomation plugin.
Desktop
Windows
HTMLViewerPrinting
Demonstrates printing from a web application. Uses the WebHTMLViewer.Print method.
Web
All
Progress
Demonstrates the ProgressBar control.
Mobile
Android
Progress
Demonstrate using the MobileProgressBar control.
Mobile
iOS
Progress
Demonstrates the WebProgressBar control.
Web
All
ProgressBar
Demonstrates the normal and indeterminate types of DesktopProgressBar.
Desktop
All
Property List
Demonstrate the types rows available with a DesktopListBox control.
Desktop
All
Proportional Spacing without code
Demonstrates using control constraints to maintain spacing on a rotable device.
Mobile
iOS
Providing a WebService
Demonstrates the provision of a web service via the WebApplication.HandleURL event.
Web
All
Reconnecting to a WebSessions
Demonstrates how to re-connect a Shell called asynchronously to the WebSession that started it when the Shell returns.
Web
All
Rotating Graphics
Simple animated graphic. Uses the MobileCanvas control and its built-in Graphics class.
Mobile
iOS
Samplecontrols
Demonstrates several different controls.
Mobile
Android
Screen Navigation
Navigating screens on different types of mobile device.
Mobile
iOS
ScrollableArea
Demonstrate using the MobileScrollableArea control.
Mobile
iOS
Scrollablearea
Demonstrates using a ScrollableArea.
Mobile
Android
ScrollBar
Demonstrates horizontal and vertical DesktopScrollBar controls.
Desktop
All
Scrolling Container
Demonstrates a scrollable list of WebContainers.
Web
All
Scrolling
Demonstrates scrolling a picture within the confines of a DesktopCanvas control.
Desktop
All
SDK Examples
Demonstrates constructing visual and non-visual controls using the WebSDK.
Web
All
SegmentedButton
Demonstrate using the MobileSegmentedButton control.
Mobile
iOS
SegmentedButton
Demonstrates the DesktopSegmentedButton control. Example demonstrates adding and removing segments at runtime.
Desktop
All
Set the Badge Number
Demonstrates using the MobileApplication.IconBadgeNumber property. Also uses the NotificaionCenter module.
Mobile
iOS
Sharing Documents folder with The Finder
How to share the Documents folder between a mobile device and a Mac.
Mobile
iOS
Sharingpanel
Demonstrates using the SharingPanel.
Mobile
Android
SharingPanel
Demonstrate using the MobileSharingPanel control.
Mobile
iOS
Shortcuts
Managing application shortcuts using the IDE Entitlements editor.
Mobile
iOS
ShowModal
Demonstrates the use of Modal screens.
Mobile
iOS
Simple DesktopGrid
Demonstrates how to use the datasource to provide data to a DesktopGrid control.
Desktop
All
Simple ListBox
Demonstrates a simple WebListBox.
Web
All
Simple Notification
Introduction to notifications for iOS applications. Uses the MobileNotifications class.
Mobile
iOS
Simple Tabs
This example provides a simple demonstration of how to set up tabs.
Mobile
iOS
Sinewaves
Drawing sine waves in a Canvas control.
Mobile
Android
Slider
Demonstrates the Slider control.
Mobile
Android
Soft Declares
Demonstrates the use of Soft Declares by modifying window properties.
Desktop
macOS
Source List
Implement a simple SourceList user interface using the DesktopListBox control. Uses expanable rows.
Desktop
All
Sqllite
A simple SQLite example.
Mobile
Android
SQLiteDatabase
Demonstrate using the SQLiteDatabase class.
Mobile
iOS
Sqliteinmemory
Demonstrates creating a SQLite in-memory database.
Mobile
Android
Sqliteversion
Demonstrates how to get the version number of SQLite.
Mobile
Android
Swiping
Demonstrate detecting swiping actions using the MobileCanvas control.
Mobile
iOS
Switch
Demonstrate using the MobileSwitch control.
Mobile
iOS
Switch
Demonstrates the Switch control.
Mobile
Android
Switching Constraints
Managing collections of constraints. Uses the iOSLayoutConstraint class.
Mobile
iOS
Systemimageicons
Accessing system image icons. There are over 2400 for Android included with Xojo.
Mobile
Android
TabBar
Using the TabBar. Uses iOSLayout.
Mobile
iOS
Table Actions
Demonstrates assigning actions to an iOSMobileTable control using the iOSMobileTableDataSource interface.
Mobile
iOS
Table Cell Sizes
Demonstrates how iOSMobileTable cell space can be dynamically allocated at runtime.
Mobile
iOS
Table DataSource via Class
Demonstrates the iOSMobileTableDataSource interface.
Mobile
iOS
Table DataSource via Database
Connecting an SQLite database and an iOSMobileTable control.
Mobile
iOS
Table editing and Reordering
Demonstrates editing and reordering of iOSMobileTable cells.
Mobile
iOS
Table Row Selection via Code
Demonstrates iOSMobileTable row selection via code.
Mobile
iOS
Table with Detail View
Demonstrates how to display details from an iOSMobileTable control.
Mobile
iOS
Table
Demonstrates the AndroidMobileTable control.
Mobile
Android
Tabpanel
Demonstrates a tabbed interface.
Mobile
Android
TabViewAndWebView
Demonstrates a tab control and a web viewer control.
Desktop
Windows
Taskmanager
The completed example from the Android tutorial.
Mobile
Android
TCPSocket
Demonstrates using TCPSocket. Use this with the Desktop ServerSocket example.
Mobile
Android
TextField Resizing
Demonstrates proportional resizing of the DesktopTextField.
Desktop
All
Textfield
Demonstrates the TextField control.
Mobile
Android
Thread
Demonstrates using multiple instances of the Thread class in a desktop project. Also demonstrates using a Timer control to update the user interface.
Desktop
All
Thread
Demonstrates threads.
Mobile
Android
ThreadProgress
Demonstrates using the Thread class to control a modal dialog.
Web
All
Threads and priority
Demonstrates the use of the Thread class on iOS devices.
Mobile
iOS
Timer
Demonstrates the WebTimer control.
Web
All
Tipcalculator
A tip calculator app.
Mobile
Android
Toolbar
Demonstrates using the toolbar on iOS devices. Uses the MobileToolbarButton control.
Mobile
iOS
Toolbar
Demonstrates using a toolbar.
Mobile
Android
Toolbar
Demonstrates creating and interacting with the DesktopToolbar control.
Desktop
All
Touch Events in a Canvas
Demonstrates touch events using the MobileCanvas control.
Mobile
iOS
TrayExample
Demonstrates using the System tray on Windows and Linux.
Desktop
Windows/Linux
Turtle
A simple Frogger-style 2D graphics game using the Canvas control.
Mobile
Android
Updating WebCanvas Graphics via a Timer
Demonstrates controlling a WebCanvas via a WebTimer.
Web
All
URL Schemes
Demonstrates how to enable an application to respond to a URL Schema.
Mobile
iOS
Urlconnectionget
Demonstrates doing a GET via the URLConnection class.
Mobile
Android
Urlconnectionpost
Demonstrates performing a POST via the URLConnection class.
Mobile
Android
User Authentication
Demonstrates how to authenticate a user. Uses the UserAuthentication class.
Mobile
iOS
Using a SQLite in-memory database
Demonstrates using an in-memory SQLite database in an iOS application.
Mobile
iOS
Using a Thread
Demonstrates using the Thread class to update a graphical user interface.
Desktop
All
Using a Timer
Demonstrates using the Timer control to update a graphical user interface.
Desktop
All
Using AppleScripts in Xojo
Demonstrates accessing AppleScripts via Xojo code.
Desktop
macOS
Using Google Fonts
Demonstrates how to access Google fonts via the IDE App HTML Header field.
Web
All
Using Hashtags in URLs
Demonstrates using HashTags.
Web
All
VCardToQR
Demonstrates creating a vcard (virtual business card) and then from that creating a QR code for it.
Desktop
All
Visits
Demonstrates how to track the user arriving and leaving a location.
Mobile
iOS
WebFileUploader
Demonstrates using the WebFileUploader class.
Web
All
WebGrid Container
Demonstrates creating a dynamic grid of WebContainers.
Web
All
WebImageViewer SVG
Demonstrates a simple viewer for SVG image files. Uses the WebImageViewer control.
Web
All
WebListBox ColumnTypes
Demonstrates CheckBox, TextField and TextArea column types.
Web
All
WebListBox Row Reordering
Demonstrates reordering rows via drag and drop.
Web
All
WebMoviePlayer
Demonstrates using the WebMoviePlayer control.
Web
All
WebSDKIconConverter
Utility application to convert a picture into Base64 text.
Desktop
All
WebToolbar
Demonstrates using the WebToolbar control.
Web
All
WebToolbarMenu
Demonstrates using the WebMenuItem class.
Web
All
Window Menu
Demonstrates how to use menus to create and switch between windows.
Desktop
All
WiringPi-GPIO
Demonstrates using the WiringPi library to control lights, speakers and LCD displays. Uses a Console project.
Console
Raspberry Pi
WiringPi-UI
Demonstrates using the WiringPi library to control lights and speakers. Uses a Desktop project.
Desktop
Raspberry Pi
Word Automation
Access and control Word via Xojo code. Requires the MSOfficeAutomation plugin.
Desktop
Windows
XAML Acrylic Brush
A DesktopXAMLContainer example demonstrating how to use the XAML AcrylicBrush for translucent, blurred UI effects.
Desktop
Windows
XAMLGallery
Demonstrates a large number of varying controls.
Desktop
Windows
XAMLSubclasses
A variety of other controls including a calendar, rating, and more.
Desktop
Windows
Xojo Cloud Remote Notification Server
A simple iOS application notification server.
Web
iOS
Xojo Cloud Top
Displays the results of the TOP shell command when run on Xojo Cloud.
Web
All
Xojodraw
A drawing app.
Mobile
Android
Zooming
Demonstrates zooming a picture within the confines of a DesktopCanvas control.
Desktop
All
Printing
Name
Description
Type
Platform
CustomerList
Demonstrates the use of the Combit OLE control to print lists and reports. Must be compiled as 32-bit code.
Desktop
Windows
Highest Resolution Printing
Demonstrates calculating the highest available resolution for printing.
Desktop
All
Mailing Labels
Demonstrates printing customised mail labels.
Desktop
All
Printing in Columns
Demonstrates printing text in one or two columns.
Desktop
All
Printing Multiple Pages of Text
Demonstrates printing text in multiple pages.
Desktop
All
Printing pictures at high resolution
Demonstrates printing pictures at a high resolution.
Desktop
All
Printing To Screen or Printer
Demonstrates drawing graphics to the screen or to a printer.
Desktop
All
Report from SQL Query
Demonstrates printing a report from the results of an SQLQuery.
Desktop
All
Report Preview via Container Control
Demonstrates previewing an SQLQuery generated report.
Desktop
All
Report Using Groups
Demonstrates printing 'grouped' reports.
Desktop
All
Simple Example
Demonstrates printing a simple report.
Desktop
All
Sample Apps
Name
Description
Type
Platform
2K
A version of the game 2048 using the Canvas control.
Mobile
iOS
Android
A customer invoices management application.
Mobile
Android
Android
The Xojo Developer Conference app for Android.
Mobile
Android
BlockAttack
An animated block swapping game that uses the Canvas control.
Desktop
All
Chat
A simple web based chat application.
Web
All
EEDesktop
A customer invoices management application.
Desktop
All
FallingBlocks
Control falling blocks via keyboard controls.
Desktop
All
GameInputExample
Display outputs from a game control device. Uses the GameInputManager and GameInputDevice classes.
Desktop
All
iOS
The Xojo Developer Conference app for iOS.
Mobile
iOS
EEiOS
A customer invoices management application.
Mobile
iOS
Jewels
A simple symbol swapping game using the Canvas control.
Desktop
All
MapLocation
A simple web based map application. Requires a Google Map API key.
Web
All
MathFacts
A simple web based mathematics (addition) problem generator.
Web
All
Mole
Whack-A-Mole game using the Canvas control.
Desktop
All
SimpleBrowser
A simple web browser. Uses the DesktopHTMLViewer control.
Desktop
All
Sliders-Desktop
A version of the numbered sliding tiles game using the Canvas control.
Desktop
All
Sliders-iOS
A version of the numbered sliding tiles game using the Canvas control.
Mobile
iOS
SpaceRocks
A version of the classic video game Asteroids using the Canvas control.
Desktop
All
Tank
A version of the classic Tank Battle video game using the Canvas control.
Desktop
All
ToDo - Desktop
A simple ToDo list application.
Desktop
All
ToDo - Web
A simple ToDo list application.
Web
All
Turtle
A Frogger-style game using the Canvas control.
Mobile
iOS
EEWeb
A customer invoices management application.
Web
All
XojoNotes - Desktop
A simple text note organiser.
Desktop
All
XojoNotes - Web
A simple text note organiser.
Web
All
XojoText
A simple text file browser.
Desktop
All
Shell
Name
Description
Type
Platform
Accessing the Shell
Accessing the command line (shell) from a desktop application.
Desktop
All
Acessing a Directory via the Shell
Demonstrates getting information from a shell.
Desktop
All
Interactive Shell
Demonstrates how to create and use an interactive shell from a desktop application.
Desktop
All
Using the Shell Asynchronously
Demonstrates how to create and use an synchronous shell from a desktop application.
Desktop
All
Sound
Name
Description
Type
Platform
Sound Player
A simple sound file player.
Desktop
All
Text
Name
Description
Type
Platform
Displaying JSON
Demonstrates hierarchical JSON data displayed in a DesktopListBox.
Desktop
All
Drag and Drop Text
Demonstrates dragging and dropping text. Uses the DesktopTextArea control.
Desktop
All
Formatting JSON
Demonstrates a simple JSON formatter.
Desktop
All
JSON
A simple JSON demonstrator.
Desktop
All
Loading and Saving Styled Text
Demonstrates how to save and load Rich Text Format (RTF) text.
Desktop
All
Search and Scroll
Demonstrates searching for text and scrolling to the result.
Desktop
All
XML
Demonstrates a simple hierarchical display of XML data.
Desktop
All
XMLReader
Demonstrates a simple formatted display of XML data.
Desktop
All