| Xojo | |
|---|---|
| Developers | Xojo, Inc. |
| Stable release | Xojo 2023R3.1
/ October 25, 2023[1] |
| Operating system | |
| Available in | English |
| Type | Programming |
| License | Freemium |
| Website | xojo |
The Xojo programming environment and programming language is developed and commercially marketed by Xojo, Inc. of Austin, Texas for software development targeting macOS, Microsoft Windows, Linux, iOS, Android, the Web and Raspberry Pi. Xojo uses a proprietary object-oriented language.[2][3][4]
History
[edit]In 1996, FYI Software, founded by Geoff Perlman, bought CrossBasic,[5][6][7] which had been marketed by its author Andrew Barry[8] as a shareware product. CrossBasic got its name from its ability to compile the same programming code for the classic Mac OS and the Java virtual machine (although the integrated development environment was Mac only). A public beta was released in April 1996.[9][10] The CrossBasic name was trademarked by another company, so the product was renamed REALbasic.[11]
Prior to version 2, the Java target was dropped and later replaced with a Windows target and database support.[12][13] The option to compile for Linux[14] was added in 2005 and the integrated development environment (IDE) was ported to Windows and as a free public beta for Linux platforms. The new IDE employed a redesigned user interface.[15]
In 2004, REAL software announced the "Made with REALbasic Showcase" program to highlight applications created with the product.[16] In 2009, a migration assistant was launched to help move code from Visual Basic.[17] In 2010, to combat the perception that it was similar to the original BASIC, it was renamed Real Studio.[18][19] The company announced Real Studio Web Edition, allowing developers to compile web applications without the knowledge of multiple web technologies.[20]
On June 4, 2013 the company officially changed their name to Xojo, Inc. and Real Studio was renamed Xojo.[21] Also on this date they released Xojo 2013 Release 1 which included an all-new user interface, full support for Cocoa on OS X, improved support for web applications, all new documentation and a new Introduction to Programming Using Xojo textbook[22] that was designed for beginners to learn the fundamentals of object oriented programming.[23] Xojo, Inc. calls it "the spiritual successor to Visual BASIC".[24][25]
The Xojo IDE is currently available for Microsoft Windows, macOS, 32-bit x86 Linux,[26] and can compile 32-bit and 64-bit applications for Windows (Windows XP and higher), macOS (running on Intel or Apple silicon Macs using the Cocoa frameworks), x86 Linux, iOS, Android, the web, and Raspberry Pi. Xojo is self-hosted: the Xojo IDE is built with the current release of Xojo.[27] The 2015r3 release includes 64-bit support for Desktop, Web and Console targets as well as a new platform, Raspberry Pi.[28] [29]
Xojo added many new features in 2018 and 2019, including support for macOS and iOS light/dark modes,[30][31][32] a GraphicsPath for drawing Bézier curves, and a new DateTime class.
In 2020, Xojo introduced a new web framework,[33] which is a ground-up re-write that adds modern-looking new controls, support for Bootstrap themes, two layout modes and more. The new web framework takes advantage of all that modern web browsers have to offer, providing a more robust foundation[34] to build responsive web apps.
Xojo has ranked[35] among the top 100 most popular programming languages as published by TIOBE,[36] a company which rates the quality of software.
Timeline
[edit]1990s
[edit]- In 1996, Geoff Perlman founds the company that is now Xojo in Austin, Texas.
- CrossBasic is acquired in 1997.[37]
- In 1998, REALbasic 1.0 released and introduced at MacWorld Expo. This first release made it easy for anyone, not just developers, to create apps for the Mac System 7 running on a 680x0 or PowerPC processor.
- Windows support was added in 1999 with the release of REALbasic 2.0, making it a true cross-platform development tool.[38]
2000s
[edit]- Support for Mac OS X is added to REALbasic in 2001.[39]
- In 2002, the first Windows IDE of REALbasic is announced.[40]
- In September 2005, REALbasic is updated to include support for building Linux apps.[41] REALbasic now compiles for three desktop platforms from a single code base.
- Continuing to keep up with the rapidly changing needs of developers and hobbyists, Intel-based Mac support is added in 2006.
2010s
[edit]- Expanding beyond desktop platforms, support for building web applications is added in 2010.
- REALbasic becomes Xojo in 2013.[42]
- Xojo Cloud, Xojo's one-click deployment service for Xojo web apps, is launched in early 2014.
- In December 2014, Xojo iOS, Xojo's first mobile platform, is released.
- After much interest from the community, Xojo Pi is released, letting users build applications for Raspberry Pi with Xojo in 2015.[43]
- Support for macOS Mojave Dark Mode for the Xojo IDE and compiled apps was added in Xojo 2018 Release 3.
- In 2019, Xojo Pi licenses are for free for building both console and desktop apps.
- Xojo introduces new API in Xojo 2019 Release 2, which includes new classes and updated method and property names for better consistency across platforms.
- In December 2019, Xojo formed the [44] MVP program to facilitate community communication and serve as an informal advisory committee.
2020s
[edit]- Xojo announced the 2020 [45] Xojo Design Award winners during a video keynote on March 25, 2020.
- On July 15, 2020, Xojo released an update for Xojo to run on macOS Big Sur as well as Apple silicon.
- Xojo released their new web framework on August 26, 2020 for developing web apps with Xojo.
- Xojo shipped 2020 Release 2 on November 24, 2020 with support for building native applications for Apple silicon (M1), making it the first cross-platform development tool to do so.
- [46] Xojo 2021 Release 1 added support for the Xojo IDE and XojoScript to run native on M1 Macs.
- Xojo shipped 2021 Release 3[47] on November 18, 2021 that brings back cross-compilation from Windows and Linux to macOS. This release also introduces Dark Mode support for Windows.
- On November 18, 2021, Xojo announces[48] that their Android framework is in public pre-release testing.
- Xojo released support for building applications for Windows ARM with Xojo 2022 Release 2,[49] available on July 25, 2022.[50]
- At their Xojo Developer Conference in London, Xojo announced that their support for Android will be shipping in the next release of Xojo, 2023r2 and, as it is a new platform, it will be marked as beta.[51]
- On August 9, 2023 Xojo shipped 2023 Release 2,[52] which added the ability to build mobile applications for Android.[53] It also added Dark Mode support for web applications and a DesktopXAMLContainer control to access modern looking Windows user interface controls.
- On March 26, 2024 Xojo shipped 2024 Release 1,[54] which added the ability to build Linux desktop and console apps from Linux, macOS, or Windows, for free. Xojo 2024r1 also upgraded all Xojo Lite licenses to include the text project file format for better compatibility with version control systems, making it much easier to share and contribute to open-source projects.
Editions of IDE
[edit]The Xojo IDE is free to use for learning and development. Compiling or deploying applications with Xojo requires a license. Multiple license levels are available for purchase, enabling Desktop, Web, iOS and Android. Building applications for Linux Desktop and Console, including for Raspberry Pi, is free.
Licenses can be purchased a la carte, in any combination required, and include 1 year of access to new releases. Xojo Pro, a bundle offered by Xojo, includes the ability to compile for Desktop, iOS, Android, Web and Console, along with technical support, access to consulting leads, and a license that will work on three machines. Xojo also has a Pro Plus license that includes everything in Xojo Pro, plus additional support benefits and can be installed on up to six devices (for a single user).[55]
The default database used with Xojo is SQLite.
Unlike most programming environments, project source code is not stored in plain text files by default, but in a proprietary, single-file format. However, source code can be saved to a plain-text format for use with version control systems and can be exported to XML format as well.
Xojo Cloud
[edit]On March 11, 2014, Xojo launched Xojo Cloud, their cloud hosting service for Xojo web applications.[56]
- In July 2014, Xojo Cloud added the ability to transfer files to the server using a client other than the Xojo IDE.
- In March 2015, Xojo added MySQL and Postgres databases to Xojo Cloud.[57] In addition, they also enabled the creation of SSH Tunnels for a direct connection to databases using a third party management tool.
- In 2018, Release 1, Xojo added server stats for Xojo Cloud.
- A new Xojo Cloud control panel was introduced in August 2020; it is built using the new Xojo web framework. Other recent updates to Xojo Cloud include the ability to point domains at individual applications.
Example code
[edit]The Xojo programming language looks similar to Visual Basic.
The following code snippet placed in the Open event of a Window displays a message box saying "Hello, World!" as the window loads:
// Display a simple message box that says "Hello, World!"
MessageBox("Hello, World!")
This code populates a ListBox with the values from an array:
Var names() As String = Array("Red Sox", "Yankees", "Orioles", "Blue Jays", "Rays")
For i As Integer = 0 To names.LastRowIndex
ListBox1.AddRow(names(i))
Next
See also
[edit]References
[edit]- ^ Xojo: Downloads
- ^ Xojo (December 9, 2014). "Xojo, Inc. Announces Xojo 2014 Release 3; Includes Support For Developing Native iOS Applications". Xojo. Retrieved 2014-12-09.
- ^ prMac (December 9, 2014). "Xojo Includes Support For Developing Native iOS Applications". prMac. Retrieved 2014-12-09.
- ^ Lorenzo, Mark (May 15, 2018). The History of The Basic Programming Language. Philadelphia: SE Books. p. 160. ISBN 978-1-974-27707-0.
- ^ "REALbasic-NUG". lowendmac.com.
- ^ "REALbasic development history of cross-platform development tools". databaseskill.com. Archived from the original on 2022-05-28. Retrieved 2015-03-31.
- ^ "Yes, Virginia, There Is a REALbasic". tidbits.com. 17 August 1998.
- ^ Neuburg, Matt (2001). REALbasic: The Definitive Guide. "O'Reilly Media, Inc.". ISBN 9780596001773.
- ^ "Operator Headgap Web Conferencing". headgap.com.
- ^ "CrossBasic: Shareware BASIC Environment". Archived from the original on 2024-07-20. Retrieved 2025-04-16.
- ^ "Upgrade Guide" (PDF). Archived from the original (PDF) on 2016-03-05. Retrieved 2015-05-08.
- ^ "REALbasic 2.0 Shipping". 19 April 1999.
- ^ "REALbasic 2.0 Standard Edition Review". Archived from the original on October 29, 2013.
- ^ "Real Software on Linux". jupiter broadcasting. Archived from the original on 2019-12-20. Retrieved 2013-06-26.
- ^ at 09:19, Tony Smith 15 Jun 2005. "REALbasic 2005 ships for Mac, WinXP, Linux". www.theregister.co.uk. Retrieved 2019-12-19.
{{cite web}}: CS1 maint: numeric names: authors list (link) - ^ "MacObserver". Archived from the original on 2025-01-25. Retrieved 2025-04-16.
- ^ "REALbasic launches Visual Basic Migration Assistant".
- ^ "Upgrade Guide" (PDF). Archived from the original (PDF) on 2016-03-05. Retrieved 2015-05-08.
...hearing a development environment with the word "basic" in the name caused many of your colleagues' eyes to roll...Some developers found they were no longer battling the reputation of BASIC while others were confused because we continued to call the language itself, REALbasic.
- ^ "REALbasic Name".
- ^ Frank, Ohlhorst (June 2011). "3 Tools to Accelerate Web Development". IDG. Archived from the original on 2012-04-04. Retrieved 2011-06-17.
- ^ Xojo (June 4, 2013). "Xojo Press Releases". Xojo. Retrieved 2013-06-08.
- ^ Xojo (June 4, 2013). "Review: Xojo Book Download Page". Xojo. Retrieved 2013-06-04.
- ^ Xojo (June 4, 2013). "Xojo Release Press Release". Xojo. Retrieved 2013-06-08.
- ^ "Xojo: Alternative to Visual Basic".
Xojo is the spiritual successor to Visual Basic...the programming language will look very familiar to you
- ^ Proven, Liam. "Nostalgic for VB? BASIC is anything but dead". The Register. Retrieved 30 March 2023.
- ^ Barr, Joe (August 4, 2005). "Review: REALBasic 2005 for Linux". Linux.com. Archived from the original on 2006-03-29. Retrieved 2010-02-09.
- ^ Xojo (December 9, 2014). "Xojo, Inc. Announces Xojo 2014 Release 3; Includes Support For Developing Native iOS Applications". Xojo. Retrieved 2014-12-09.
- ^ "XDC 2015 Recap". May 6, 2015. Archived from the original on December 20, 2019. Retrieved May 27, 2015.
- ^ "Xojo 2015 Release 3 Now Available Recap". October 20, 2015.
- ^ "Xojo 2018 Release 3 Adds Support For Mojave Dark Mode | MacOSX News". Retrieved 2019-12-19.
- ^ "Xojo 2019 Release 3 adds Dark Mode support for iOS 13". MacTech.com. Retrieved 2019-12-19.
- ^ "Xojo 2019 Release 3: saját appok sötét módban, további extrákkal". Techwok (in Hungarian). 2019-12-19. Retrieved 2019-12-19.
- ^ Xojo: Xojo 2020r1 Adds New Web Framework, PDF Support
- ^ From Anthony: My Adventures with Web 2.0 – GraffitiSuite
- ^ "TIOBE Index | TIOBE - The Software Quality Company". Tiobe Index. 2021-06-07. Retrieved 2021-06-07.
- ^ "TIOBE Index | TIOBE - The Software Quality Company". 2019-08-29. Archived from the original on 2019-08-29. Retrieved 2019-12-19.
- ^ "Yes, Virginia there is a REALbasic". 1998-08-17.
- ^ "REALbasic 2.0". 1999-10-01.
- ^ "REALbasic 3.1 for Mac OS X arrives". 2001-03-22.
- ^ "REALbasic 5- with Mac and Windows support - previewed". 2002-10-01.
- ^ "REALbasic 5.5 adds Linux, enhances Mac support". 2004-02-25.
- ^ "Start Programming Free with Xojo". 2013-06-11. Archived from the original on 2019-12-20. Retrieved 2018-05-17.
- ^ "Xojo 64-bit apps and Raspberry Pi". 2015-10-20. Archived from the original on 2019-12-20. Retrieved 2018-05-17.
- ^ Xojo: Xojo MVP Program
- ^ Xojo: Xojo Design Awards
- ^ Xojo: Xojo 2021 Release 1 Adds 275+ Improvements to Popular Xojo Programming Language and IDE
- ^ "Xojo Adds General Improvements To Cross-Platform Software Development Environment". Cision (Press release). PR Newswire.
- ^ Lefebvre, Paul. "Xojo Android Pre-Release is now in testing". Xojo Blog. Xojo, Inc. Retrieved 19 November 2021.
- ^ "Xojo: Latest Update to Development Environment and Programming Language Xojo Adds Ability to Build Apps for Windows ARM'". Xojo. Retrieved 26 July 2022.
- ^ Proven, Liam. "Nostalgic for VB? BASIC is anything but dead". The Register. Retrieved 6 May 2023.
- ^ Zeedar, Marc. "The Last XDC?". xDev Magazine. Retrieved 6 May 2023.
- ^ "Xojo Empowers Developers with Android App Building Support in Latest Release". Xojo, Inc. Retrieved 9 August 2023.
- ^ Krypczyk, Veikko (August 2023). "Cross-Plattform-Entwicklung mit dem RAD-Tool Xojo". Dev Insider. Retrieved 9 August 2023.
- ^ "Version Control Ready Xojo Lite and Free Xojo Linux Lite for Everyone". Xojo, Inc. Retrieved 26 March 2024.
- ^ Xojo (June 4, 2013). "Xojo Store Information". Xojo. Retrieved 2013-06-08.
- ^ "Xojo Announces Xojo Cloud For Deployment Of Web Apps". Mac News. March 11, 2014. Retrieved 2014-03-13.
- ^ Xojo Cloud Databases: Add, Connect & Manage – Xojo Programming Blog
External links
[edit]- Xojo, Inc., makers of Xojo
Overview
Core Features
Xojo is an object-oriented programming language designed for rapid application development (RAD), featuring a syntax reminiscent of BASIC that emphasizes simplicity and readability while incorporating modern elements such as strong data typing, introspection, extension methods, delegates, and Automatic Reference Counting (ARC).[4][5] This language enables developers to create applications ranging from simple utilities to complex enterprise software, leveraging its event-driven paradigm to handle user interactions and system events efficiently.[4] The integrated development environment (IDE) provides a visual interface for drag-and-drop design of user interfaces, allowing placement of native controls tailored to each target platform, alongside an advanced code editor with auto-completion and syntax highlighting.[1][4] Developers can write code in an event-driven manner, where methods respond to user actions or system triggers, streamlining the process of building responsive applications without extensive boilerplate.[4] A key strength of Xojo lies in its cross-compilation capabilities, which allow a single codebase to produce native applications for desktop (Windows, macOS, Linux, Raspberry Pi), mobile (iOS, Android), and console, as well as web applications for browsers, without requiring platform-specific code in most cases, facilitated by the LLVM compiler backend for optimized 64-bit execution.[4][6] Xojo includes a comprehensive library of built-in controls for UI elements, such as buttons, lists, and graphics views, ensuring applications adopt a native look and feel across targets.[1] Database integration is seamless, with primary built-in support for SQLite as a lightweight, file-based option, alongside direct connectivity to server-based systems like MySQL and PostgreSQL, and broader access via ODBC for other databases.[5][7] Additionally, the framework simplifies API connectivity by abstracting platform-specific details, enabling straightforward integration with web services, system APIs, and external libraries through modules like URLConnection and HTTPSocket.[4] In recent updates, Xojo introduced aggressive optimization options in version 2025r2, which utilize streamlined, larger frameworks to accelerate compilation times and enhance runtime performance for demanding applications.[8][9]Supported Platforms
Xojo enables the development of native applications across multiple platforms using a single codebase, allowing developers to compile for desktop, mobile, web, and console environments from any supported host machine. This cross-compilation capability supports architectures such as x86, x86_64, ARM, and ARM64, facilitating deployment on diverse hardware including Intel and Apple Silicon processors.[1] For desktop applications, Xojo produces native apps for macOS, including support for Apple Silicon (ARM64) introduced in version 2020r2, alongside Intel-based systems for universal binaries. Windows targets encompass 32-bit (deprecated since 2024r3, with removal planned in a future release) and 64-bit architectures, officially compatible with versions from Windows 10 (build 1903+) onward, with possible unofficial compatibility for Windows 7 and 8, while Linux supports x86 (32-bit and 64-bit) and ARM architectures, including Raspberry Pi devices running Raspberry Pi OS 11 (Bullseye or later) or compatible distributions. The 2025r1 release extended Linux ARM support to the IDE itself, enabling direct development on ARM-based Linux systems like Raspberry Pi.[10][11][12][13][14] Mobile development in Xojo targets iOS for iPhone and iPad devices, with native app support since 2013 using the iOS SDK. Android support entered beta in 2023r2 and achieved stable implementation by 2024, allowing full native app builds for phones and tablets, including enhancements like barcode scanning in 2023r4 and tablet-optimized UI design in 2024r3. Starting with 2025r1, developers can submit iOS apps directly to the Apple App Store from the Xojo IDE via integration with App Store Connect, streamlining the publishing process without external tools. The 2025r3 release added support for iOS 26.[15][16][17][18][19][20] Web applications built with Xojo run in modern browsers using HTML5 and JavaScript, providing responsive interfaces without plugins. The 2025r1 update introduced drag-and-drop functionality within the Web framework, enhancing user interface development for browser-based apps.[1][11] Console and server-side applications are supported for Linux and Windows environments, enabling command-line tools and backend services that leverage Xojo's object-oriented framework for cross-platform server deployment.[21][22]History
Founding and Early Years
Xojo traces its origins to 1997, when Geoff Perlman founded the company in Austin, Texas, with the vision of making software development accessible to a broader audience beyond traditional programmers.[2] Initially operating under the name REAL Software, the company aimed to create tools that democratized app creation, drawing inspiration from the ease of use seen in popular development environments of the era. Perlman's background in software entrepreneurship drove this initiative, focusing on intuitive paradigms to lower the barriers for non-experts entering the field.[23] In 1997, REAL Software acquired CrossBasic, a shareware BASIC compiler developed by Andrew Barry that targeted cross-platform development, particularly for Macintosh users.[24] This acquisition formed the foundation for what would become REALbasic, transforming the modest shareware tool into a commercial product. CrossBasic's emphasis on compiling BASIC code to native executables provided a starting point, but REAL Software enhanced it with visual design capabilities to streamline the development process.[25] REALbasic 1.0 was released in 1998 at the Macworld Expo, marking the debut of a Mac-focused visual programming environment explicitly inspired by Microsoft Visual Basic.[26] The tool introduced an event-driven architecture combined with a drag-and-drop interface, allowing users to build graphical user interfaces by placing controls on forms and defining behaviors through simple event handlers written in a BASIC-like syntax. This approach prioritized rapid prototyping and accessibility, enabling beginners to create functional Macintosh applications without deep coding expertise, while still offering power for more advanced developers. Early adopters praised its simplicity in producing native Mac apps, setting the stage for its growth in the late 1990s.[27]Key Milestones and Renamings
The expansion of REALbasic beyond the Macintosh platform began with version 2.0, released in August 1999, which introduced support for building native Windows applications directly from a Macintosh development environment, marking a significant step toward cross-platform development capabilities.[28] This update allowed developers to target both Mac OS and Windows from a single codebase, broadening the tool's appeal to a wider audience of programmers seeking multi-platform solutions. Further platform diversification occurred in 2005 with the release of REALbasic 2005, which added native Linux targeting for x86 architectures, enabling compilation of applications for major distributions such as SuSE, RedHat, and Mandriva using GTK+ 2.0 or higher.[29] This enhancement solidified REALbasic's position as a versatile cross-platform IDE, supporting desktop applications across three major operating systems without requiring separate codebases. In response to perceptions that the name evoked outdated BASIC interpreters, REAL Software rebranded the product as Real Studio with the launch of version 2010 Release 1 in early 2010, emphasizing its evolution into a full-featured, object-oriented development suite beyond simple scripting.[30] The rename highlighted expanded features like web and database tools, positioning it as a professional environment for modern application building. A pivotal rebranding followed in 2013, when Real Software, Inc. changed its name to Xojo, Inc., with the product renamed Xojo to underscore its focus on cross-platform, object-oriented programming; this shift was announced on June 4, 2013, from its Austin headquarters, coinciding with the release of Xojo 2013 Release 1 and plans for iOS support.[31] iOS support was subsequently released in Xojo 2014 Release 3.[32] Advancements in hardware compatibility were evident in Xojo 2015 Release 3, released on October 20, 2015, which introduced 64-bit application support for desktop, web, and console projects on macOS, Windows, and Linux, alongside the ability to target Raspberry Pi 2 devices using 32-bit ARMv7 Linux.[33] Subsequent milestones included Windows ARM support in Xojo 2022 Release 2 and Android support in beta with Xojo 2023 Release 2, expanding mobile and embedded capabilities as of 2025.[16]Development Timeline
1990s
In 1996, Geoff Perlman founded FYI Software in Austin, Texas, laying the groundwork for what would become a key player in cross-platform development tools.[34] This founding marked the beginning of efforts to address gaps in rapid application development for non-Windows platforms, drawing on Perlman's prior experience in software consulting and database tools.[35] The following year, in late 1997, FYI Software acquired the assets of CrossBasic, a shareware product developed by Andrew Barry that enabled code compilation for Mac OS and the Java virtual machine.[36] This acquisition provided a foundational codebase, which Perlman and Barry then refined, renaming it REALbasic to resolve trademark conflicts with existing "Cross" branding. The move integrated CrossBasic's cross-compilation capabilities into a more robust framework aimed at Mac-centric development.[36] REALbasic 1.0 launched in July 1998 at Macworld Expo in New York, introducing a visual integrated development environment (IDE) and a dialect of the BASIC programming language tailored for Macintosh applications.[36] The release emphasized ease of use through drag-and-drop interface design and event-driven programming, mirroring aspects of Microsoft's Visual Basic but optimized for the Mac OS ecosystem.[37] This debut quickly attracted an initial user base among Mac developers, who sought a Visual Basic-like tool to streamline GUI application creation without relying on more complex languages like C++ or scripting environments such as HyperCard.[37] Early adopters praised its accessibility for building standalone executables, fostering growth in hobbyist and professional circles focused on desktop software for the Macintosh platform.[26]2000s
In the early 2000s, REALbasic expanded its cross-platform capabilities significantly, building on its initial Macintosh focus. Version 2.0, released in 1999 but marking a pivotal shift into the decade, introduced support for compiling applications to Windows platforms, allowing developers to target both Mac and Windows from a single codebase.[28] This enhancement positioned REALbasic as an early cross-platform tool for desktop software, appealing to developers seeking to avoid platform-specific coding. In 2001, version 3.0 added native support for Mac OS X, enabling compilation for the emerging operating system and further broadening its appeal amid Apple's transition from Classic Mac OS.[38] In 2002, the first Windows-based IDE was announced, allowing Windows users to develop REALbasic applications natively without relying on Macintosh hardware.[39] Mid-decade updates emphasized tool enhancements for practical development needs. REALbasic 5.0, released in late 2002, introduced Linux targeting for x86 architectures, extending cross-platform compilation to Unix-like systems and supporting distributions such as Red Hat and SuSE.[40] Version 5.5.3 in 2004 added new plugin options, improving the extensibility of the IDE through third-party modules for custom controls and functionality.[41] Database tools saw notable improvements with the introduction of RealDatabase in version 5.5 (2005), a proprietary format for embedded data storage, alongside enhanced connectivity for ODBC and other sources, simplifying integration for database-driven desktop applications.[42] The release of REALbasic 2005 in June further solidified platform expansion by porting the IDE to Linux, making it available as a free Standard Edition for x86 distributions with GTK+ 2.0 support.[29] This allowed Linux users to develop and compile applications directly on their platform, completing the triad of major desktop operating systems. These advancements contributed to growing adoption among independent developers and small teams for creating cross-platform desktop software, as evidenced by the launch of the REALbasic Developer Magazine in 2003, which provided tutorials and fostered a burgeoning community focused on practical, multi-OS application building.[43]2010s
In 2010, REAL Software renamed its flagship product from REALbasic to Real Studio to address perceptions associating it with legacy BASIC interpreters and to better highlight its modern development capabilities. This rebranding coincided with announcements for enhanced web development features, marking an early push toward broader application types.[44] By 2013, the company underwent a significant rebranding, changing its name to Xojo, Inc., and renaming the product to Xojo to emphasize its cross-platform and object-oriented nature. This shift was accompanied by the release of Xojo 2013 Release 1, which introduced a redesigned IDE with improved usability, including a new dark theme and enhanced code editing tools. The rebrand aimed to position Xojo as a versatile tool for contemporary software development beyond traditional desktop applications.[31] In 2014, Xojo expanded into web hosting and mobile development with the launch of Xojo Cloud on March 9, a managed hosting service designed for seamless deployment of Xojo web applications without requiring server administration. Later that year, Xojo 2014 Release 3 introduced native iOS support, allowing developers to build and deploy iOS 7 and iOS 8 apps directly from the IDE, including features like Auto Layout integration and simulator testing on macOS. These additions represented Xojo's strategic entry into cloud-based and mobile ecosystems, enabling rapid prototyping and deployment for iPhone and iPad applications.[45][46] The year 2015 brought further platform expansions and infrastructure enhancements. Xojo 2015 Release 3 added 64-bit support for desktop, web, and console applications across OS X, Linux, and Windows, ensuring compatibility with modern hardware and Apple's App Store requirements for 64-bit binaries. It also introduced native support for Raspberry Pi 2 (32-bit ARMv7), allowing developers to create embedded applications for the low-cost single-board computer. Concurrently, Xojo Cloud gained database capabilities with the addition of MySQL and PostgreSQL servers, enabling hosted applications to manage relational data directly on the platform via simple control panel activation.[47] Throughout the late 2010s, Xojo focused on refining its web and IDE functionalities to improve performance and developer productivity. In 2016 Release 2, the web framework received Retina and HiDPI display support for sharper visuals in modern browsers, alongside optimizations for faster rendering. By 2018 Release 4, enhancements included the new URLConnection class for more efficient HTTP handling in web apps. In 2019 Release 2, IDE improvements emphasized speed, with faster Navigator loading, enhanced auto-complete in the code editor, and better tab management, streamlining workflows for complex projects. These iterative updates solidified Xojo's web app capabilities, making it a more robust option for responsive, cross-browser development.[48]2020s
In 2020, Xojo released version 2020r1 on August 27, introducing the Web Framework 2.0, which overhauled web application development with improved styling, responsive design capabilities, and a more modular architecture for building modern web apps.[49] Later that year, on November 24, Xojo 2020r2 added native compilation support for Apple Silicon (M1) processors, enabling developers to build Universal Binary applications that run efficiently on both Intel-based and ARM-based Macs without emulation.[10][50] By 2023, Xojo expanded mobile development options with the introduction of Android beta support in version 2023r3, released on October 10, which included enhancements to MobileTextField controls, improved HTML viewer functionality, and initial API integrations for Android app building.[51][52] This beta phase addressed key compatibility issues and added features like geofencing for mobile location services, though Android remained in beta status.[53] A subsequent update, 2023r3.1, further refined these capabilities with built-in Zip/Unzip methods for file handling across platforms.[54] In 2024, Xojo advanced Android integration through ongoing improvements in releases like 2024r2 and 2024r3, adding TCP socket support, barcode scanning on Linux, and tablet-optimized layouts to enhance cross-device reliability and user experience.[55][56] The company also made Linux app building free for all users starting with 2024r1 on March 26, allowing compilation of desktop and console applications for Intel and ARM architectures without a paid license, broadening accessibility for open-source and embedded projects.[57] Additionally, Xojo Cloud marked its 10-year anniversary in 2024 with updates to the control panel, including enhanced security features and streamlined deployment options for web applications.[58][59] The year 2025 saw significant enhancements in Xojo 2025r1, released on March 25, which introduced native IDE support for Linux ARM platforms including Raspberry Pi, enabling direct development on these devices; Web Framework drag-and-drop functionality for intuitive UI interactions; and streamlined direct submission to the iOS App Store, simplifying distribution workflows.[60][11] Xojo 2025r2, released on July 8, emphasized performance with aggressive optimization options for faster framework compilation, core productivity tools, and an update to SQLite 3.49 for improved database handling in applications.[61] These releases continued Xojo's focus on cross-platform maturity, particularly in mobile and embedded systems.[62]IDE and Editions
Licensing and Deployment Options
Xojo provides a free download of its integrated development environment (IDE) for learning, prototyping, and non-commercial use, allowing developers to build and test applications without initial cost. However, deploying applications for commercial purposes or to production environments requires a paid license, ensuring access to full compilation and distribution capabilities across supported platforms.[63] The available editions cater to different development needs, with single-platform options including Desktop at $499 per year for building cross-platform desktop applications on macOS, Windows, and Linux; Web at $499 per year for web applications; and Mobile at $499 per year for iOS and Android apps. The Professional edition, priced at $999 per year, bundles Desktop, Web, Mobile, and Console/Service app development, adding features like source control integration and consulting leads. The Enterprise-level Pro Plus edition, at $1,999 per year, extends the Professional edition with team-oriented benefits such as priority technical support, rapid bug fixes, and up to six license activations for multi-device use.[64][65][66] Licenses are offered exclusively as annual subscriptions, providing 12 months of access to updates and new releases, with the option to renew for continued support; perpetual licenses for pre-expiration versions remain usable indefinitely after subscription ends. All licenses are single-developer focused, with no royalties required on deployed applications, and include a 90-day money-back guarantee.[64][65] For deployment, Xojo compiles applications to native executables tailored to each target platform, enabling standalone distribution without runtime dependencies or ongoing fees. Since the 2024 release, building desktop and console applications for Linux (including Raspberry Pi) is available for free, even without a paid license, broadening accessibility for open-source and hobbyist projects.[67][68] Xojo projects support multiple source formats to facilitate version control integration with systems like Git and Subversion: the text-based .xojo_project format (separate files per item) for human-readable diffs and collaboration, the XML format (.xojo_xml_project) as a single text file, and the binary format (.xojo_binary_project) for compact storage and faster loading, with version control features now included in all editions. Note that text formats require a paid license, while the free IDE supports binary projects.[69][70][67]Development Environment Tools
The Xojo Integrated Development Environment (IDE) provides a unified workspace that integrates visual design, coding, debugging, and project management tools to streamline application development. Central to this is the Layout Editor, a visual designer that allows developers to create user interfaces by dragging and dropping controls onto windows, web views, or mobile screens. It supports auto-sizing and responsive layouts, enabling controls to adapt dynamically to different screen sizes and orientations without manual code adjustments. This drag-and-drop interface facilitates rapid prototyping while maintaining precise control over positioning, properties, and events.[71] The Code Editor is a specialized text editor embedded within the IDE, featuring syntax highlighting for Xojo code, intelligent auto-completion based on context and API knowledge, and real-time error detection to catch syntax issues during input. Integrated seamlessly with the visual designer, it allows switching between layout and code views via tabs in the Editor Area, supporting efficient workflows for event-driven programming. The editor also includes multi-cursor editing and find/replace operations across the entire project. Complementing this is the built-in Debugger, which enables step-through execution, breakpoint setting, variable inspection, and call stack analysis during runtime testing, all accessible via the Workspace toolbar's Run button.[72][71] Project management in the Xojo IDE revolves around the Navigator panel, which organizes items such as modules, classes, windows, and containers in a hierarchical tree structure for easy navigation and editing. Developers can create reusable modules for shared code logic and classes for object-oriented designs, with the IDE supporting inheritance and polymorphism natively. The environment is extensible through plugins, which third-party developers can build using the Xojo Plugin SDK to add custom controls, functions, or IDE behaviors, enhancing functionality without altering core code. For performance tuning, the built-in Code Profiler tracks method execution times, displaying total and average durations in milliseconds to identify bottlenecks; it can be enabled via the Project menu and saves data for comparison across runs.[71][73][74] Version control integration is facilitated by the IDE's text-based project format (.xojo_project), which stores each project item as an individual file compatible with systems like Git and Subversion, allowing granular change tracking and diff comparisons. The XML format (.xojo_xml_project) provides a single-file text alternative. This format, optimized for collaboration, supports tools such as GitHub Desktop for cloning, committing, and pushing changes directly from the IDE's save operations. In Xojo 2024r1, enhancements added version control features to all licenses, improving readiness for team-based development, though text formats require a paid license. Additionally, the compiler offers an Aggressive Optimization level, selectable during builds, which applies advanced code transformations for runtime efficiency; in 2025r2, this mode incorporates faster, larger optimized frameworks to reduce execution times while increasing binary sizes modestly. For custom module development, the IDE's Build Automation tools, including IDE Scripting, allow defining API-like interfaces for automated compilation steps and external integrations.[70][75][76][61]Responsive UI Design and Control Resizing
Xojo provides several built-in mechanisms for creating responsive user interfaces in desktop applications that adapt to window resizing or different screen resolutions, without requiring third-party plugins such as RubberViews (a legacy plugin for automatic control scaling).Control Locking
In the Layout Editor, controls can be locked to the edges of their parent container (Window or DesktopContainer) via the Inspector's Locking section. Locking to left/right/top/bottom anchors the control to those edges, allowing automatic stretching or repositioning when the parent resizes. This is suitable for simple layouts without code.Resized Event
For more precise control, handle the '''Resized''' event of the DesktopWindow (or DesktopContainer). Calculate deltas from original dimensions (stored in Opening event) and adjust control positions/sizes proportionally: Example: Var deltaW As Double = Self.Width / OriginalWidth Var deltaH As Double = Self.Height / OriginalHeight // Adjust a control MyButton.Left = MyButton.Left * deltaW MyButton.Width = MyButton.Width * deltaW This enables custom rules like anchoring to edges, centering, or minimum sizes.DesktopContainer
Group related controls into a DesktopContainer, then embed it in the main window. Resize only the container in the parent's Resized event; internal controls maintain relative positions automatically. This simplifies management in complex UIs.ScaleFactor Property
The ScaleFactor (Double) property on windows/containers reflects the DPI scaling (e.g., 1.0 at 96 DPI, 1.5 at 144 DPI). Use it to adjust sizes for high-DPI displays: MyControl.Width = OriginalWidth * Self.ScaleFactorDesktopGrid Control (2025r3+)
Introduced in Xojo 2025r3, DesktopGrid is a high-performance data control for complex layouts with live controls in cells. It supports dynamic column/row adjustments based on available space, aiding responsive data presentation in resizable windows.Xojo Cloud
Core Capabilities
Xojo Cloud offers managed hosting specifically tailored for Xojo web applications, providing a fully configured environment that handles server maintenance, security updates, and infrastructure management without requiring user intervention.[77] This service includes automatic load balancing to distribute traffic across multiple instances, enabling support for higher concurrent user loads and basic scalability as demand increases.[77] Built-in SSL support via Let's Encrypt certificates ensures secure HTTPS connections, with domain management facilitated through the control panel where users can configure custom domains by pointing DNS records to the server.[78][79] Deployment to Xojo Cloud is streamlined through direct integration with the Xojo IDE, allowing developers to perform one-click uploads and installations of web apps directly from their projects.[79] Accounts support hosting multiple applications simultaneously, with unlimited deployments permitted based on available server memory and resources, enabling efficient management of portfolios of web apps under a single server instance.[77] Database hosting is a core component, starting with built-in SQLite support for embedded, file-based databases suitable for single-app use cases.[80] In 2015, Xojo Cloud expanded to include server-based relational databases with the addition of MySQL (version 5.5.65-MariaDB) and PostgreSQL (version 9.2.24), which can be enabled or disabled via the control panel and accessed using Xojo's native database classes for shared, multi-app scenarios.[47][81][78] The service includes monitoring capabilities through its control panel, where users can view and manage deployed apps, including actions like quitting or deleting instances, and access server details for basic oversight.[78] Application logs and performance can be tracked using Xojo's built-in logging methods, which output to the debugger or system consoles, while the platform's service level agreement (SLA) policy covers maintenance and support for reliability.[82][83] Seamless integration with the Xojo IDE extends to ongoing builds and updates, allowing developers to refresh app lists in the control panel after deployments for immediate verification and iteration.[78]Evolution and Recent Enhancements
Xojo Cloud was launched on March 11, 2014, as a straightforward hosting solution for Xojo web applications, offering one-click deployment without the need for manual server configuration or maintenance. This initial release emphasized security, ease of use, and freedom from ongoing server upkeep, allowing developers to focus on building rather than infrastructure management.[84] By 2015, the platform expanded its capabilities with the addition of MySQL and PostgreSQL database support, enabling seamless integration of relational databases directly on hosted servers. This update addressed a key limitation for data-driven web apps, with one-click enabling of database servers via the control panel and support for connections from development environments. Developers could now deploy full-stack applications, including backend data storage, in a fully managed environment.[47] In 2020, Xojo Cloud introduced a redesigned modern control panel alongside four additional features to streamline management, such as improved app monitoring and automated backups. This overhaul made server oversight more intuitive, reducing the learning curve for users and aligning with contemporary web hosting standards.[85] Reaching its 10-year milestone in 2024, Xojo Cloud underwent significant upgrades focused on enhanced security protocols and app isolation mechanisms, bolstering protection against threats and ensuring better resource separation for multi-app environments. These improvements were highlighted during anniversary events, reinforcing the platform's commitment to reliability for production deployments.[58]Programming Language
Syntax and Object-Oriented Elements
Xojo's programming language features a syntax inspired by BASIC, incorporating structured elements like variables, loops, and conditional statements while integrating modern object-oriented constructs. Control flow is managed through familiar keywords such as If-Then-Else for conditionals, For-Next and While-Do for loops, and Select-Case for multi-way branching. The language supports optional strong typing, where developers declare variable types explicitly for primitives but can use the Variant type for dynamic flexibility.[86] At its core, Xojo embraces object-oriented programming through classes that encapsulate data and behavior. Classes define properties for storing state (e.g., instance or shared variables), methods for executable code (instance or shared functions), and events for responding to runtime occurrences. Constructors initialize instances via the New operator, ensuring objects are properly set up upon creation. This structure promotes code reuse and modularity, with the Me keyword referencing the current instance and Super accessing parent class members.[87][88] Inheritance allows subclasses to extend base classes, inheriting properties, methods, and events while enabling overrides for customization. Syntax involves the Inherits clause when defining a class, facilitating hierarchical designs like control hierarchies in user interfaces. Interfaces complement inheritance by defining contracts of methods without implementation, which classes adopt to achieve polymorphism; multiple interfaces can be implemented per class. Modules organize code globally, grouping methods, constants, and even classes without instantiation, aiding in namespace management and shared utilities.[89][90][91] The event-driven paradigm is integral, where code executes in response to user interactions or system events via dedicated handlers in objects. For instance, a button's Pressed event triggers associated code, allowing reactive applications without explicit polling. Data types include primitives like Integer for whole numbers, Double for floating-point, String for text, Boolean for true/false, and Currency for monetary values, alongside the flexible Variant. Collections such as arrays (fixed or resizable) and dictionaries (key-value pairs) handle grouped data efficiently.[92][93] Error handling employs Try-Catch-Finally blocks to manage exceptions gracefully, catching specific types like IOException or RuntimeException while ensuring cleanup in Finally. Built-in functions support file I/O through the FolderItem class for operations like reading, writing, and attribute inspection, and networking via classes such as TCPSocket for socket-based communication. These elements combine to form a robust, event-responsive language suitable for cross-platform development.[94][95][96]Code Examples
Xojo provides a straightforward syntax for common programming tasks, allowing developers to quickly implement functionality across desktop, web, and mobile targets. The following examples illustrate key aspects of the language, including event-driven code, loops, database interactions, and web-specific features. These snippets are drawn from official documentation and demonstrate practical usage in event handlers or methods.[97][98][99][100] A basic "Hello World" program in Xojo typically involves displaying a message in an event handler, such as a button's Pressed event on a desktop window. The MessageBox class offers a simple synchronous way to show alerts. The following code, placed in the event handler, displays "Hello, World!" with an OK button:MessageBox("Hello, World!")
This approach works for desktop and web projects, though web versions are asynchronous outside of sessions.[97]
Populating a ListBox control with data from an array is a common task for displaying lists. Xojo's ListBox supports adding rows via the AddRow method, often within a loop. For a single-column ListBox, iterate over the array bounds as shown in this example, assuming myArray is a String array declared earlier:
Var myArray() As String = Array("Apple", "Banana", "Cherry")
For i As [Integer](/page/Integer) = 0 To UBound(myArray)
ListBox1.AddRow(myArray(i))
Next
This code adds each array element as a new row, suitable for desktop, web, or mobile interfaces. For multi-column needs, pass additional parameters to AddRow.[98][101]
Database operations in Xojo leverage built-in support for SQLite, enabling easy connections and queries without external dependencies. To perform a simple INSERT and SELECT, first connect to the database, then use ExecuteSQL for non-query statements and SelectSQL for retrieval. The example below assumes a SQLiteDatabase instance named db connected to a file-based database with a "users" table (columns: id INTEGER PRIMARY KEY, name TEXT):
// INSERT example
Var insertSQL As String = "INSERT INTO users (name) VALUES ('Alice')"
db.ExecuteSQL(insertSQL)
// SELECT example
Var selectSQL As String = "SELECT * FROM users WHERE name = 'Alice'"
Var rows As RowSet = db.SelectSQL(selectSQL)
If rows <> Nil Then
For Each row As DatabaseRow In rows
// Process row, e.g., ListBox1.AddRow(row.Column("name").StringValue)
Next
rows.Close
End If
Error handling with Try-Catch is recommended for production code to manage DatabaseException. This pattern supports both file-based and in-memory SQLite databases.[99][102]
In the 2025r1 release, the Web framework introduced enhanced drag-and-drop support for visual controls, allowing seamless interactions like reordering or data transfer. To handle a drop event, enable acceptance on the target control and process the WebDragItem in the DropObject event. For a WebTextArea accepting text drops, the following setup in the Opening event enables copying, and the DropObject event appends the dragged sender's details:
// In target control's Opening event
Me.AcceptTextDrop(WebDragItem.DragActionTypes.Copy)
// In target control's DropObject event
Var dragItem As WebDragItem = obj
Var sender As WebUIControl = WebUIControl(dragItem.Sender)
Me.Text = Me.Text + sender.Name + EndOfLine
This facilitates user interactions such as dragging text from one web control to another, with properties like OriginX and Tag available for further customization.[100][60]