Date math is harder than it looks.
Add 1 month to January 31st. What do you get? February 28th? March 3rd?
DateTime handles edge cases. Leap years. Month boundaries. Daylight saving transitions. Timezone conversions. Yes, it's kinda smart.
Date math is harder than it looks.
Add 1 month to January 31st. What do you get? February 28th? March 3rd?
DateTime handles edge cases. Leap years. Month boundaries. Daylight saving transitions. Timezone conversions. Yes, it's kinda smart.
Dictionaries: lookups via hash table. Keys and values are Variantsβstore anything.
d.Value("name") = "test"
d.Lookup("name", "default")
Use HasKey or Lookup to avoid KeyNotFoundException.
#Xojo
UI freezing on heavy work? Timers still run on main thread. Use Thread + UserInterfaceUpdate instead.
Thread does work. UI thread handles updates. No ThreadAccessingUIException.
https://blog.xojo.com/2026/03/02/optimizing-xojo-code-part-5-threads-and-userinterfaceupdate/
Built a macOS app? Ad-Hoc signing won't pass Gatekeeper. You need a Developer ID certificate from Apple's chain of trust.
Javier explains: https://blog.xojo.com/2026/03/04/code-signing-on-macos-what-developers-need-to-know-part-1/
#Xojo #macOS
IsDebugBuild tells you at RUNTIME if you're running from the IDE.
Different from #If DebugBuild (compile-time).
https://documentation.xojo.com/api/language/isdebugbuild.html
#Xojo #Debugging
You can connect (x, y) points in Xojo's DesktopChart scatter mode.
Use ChartLinearStyle to set line types (solid, dashed, none). Change styles at runtime, they update instantly.
Your charts just got more useful.
#Xojo #Charts #DataViz
PDFDocument is now on Android.
Generate PDFs, forms, attach files, from your Xojo built mobile app.
2025r3. https://documentation.xojo.com/resources/release_notes/2025r3.html
#Xojo #MobileApps
Bored with default button styles? Build your own.
DesktopCanvas = full control. MouseEnter, MouseDown, MouseUp, Paint. Handle hover states, pressed states, draw rounded corners...
Part 1 of the series: https://blog.xojo.com/2025/05/02/how-to-create-a-custom-button-control-in-xojo/
#Xojo #CustomUI
Meet Jade. Your new coding partner.
Ask Xojo questions β get answers β click to insert code directly into your editor.
First version introduced in 2025r3, more features coming.
Help -> Ask Jade. https://blog.xojo.com/2025/12/09/introducing-jade-the-xojo-ai-assistant/
#Xojo #AI #Coding
One library. Desktop + Web + Mobile + Console.
LibMerge combines them in seconds. Drop into your Plugins folder = available everywhere.
Code reuse, easy & clean. https://blog.xojo.com/2025/12/09/creating-libraries-that-support-multiple-project-types/
#Xojo #CrossPlatform
DesktopGrid cells aren't pictures. They're actual ContainerControls.
Buttons in grids. Dropdowns in grids. Even another grid inside a grid.
2025r3. https://blog.xojo.com/2025/12/09/welcome-to-the-grid/
Sunday mornings: Coffee βοΈ + #Xojo π»
The best time to start that side project you've been thinking about. No boilerplate, just pure creativity. What are you building today? π οΈ
Get inspired by our latest tutorials: https://blog.xojo.com/category/learning/tutorials/
#CreativeCoding
How #Xojo rescued a .NET project in 1 week. π
A developer used Xojo Web to build a secure REST proxy.
β
Code: < 20 lines
β
RAM: 7.3 MB
β
CPU: < 1.5%
Xojo is the ultimate tool for rapid, high-performance solutions.
https://blog.xojo.com/2024/10/23/xojo-web-rescues-a-net-project/
Learn how to use PDFTableDataSource to render tables from arrays, text files, or any non-RowSet source with ease. Complete with code samples and a tutorial project.
Read: https://blog.xojo.com/2024/11/25/working-with-pdftabledatasource-from-sources-other-than-rowset/
Android Localization
With Localized Strings, translating your app is as easy as adding a constant and prefixing your text with "#". Support multiple languages and locales automatically.
Tutorial here: https://blog.xojo.com/2024/12/10/android-localization/
#AndroidDev #Localization #MobileApps
Clean code is happy code. π»
In #Xojo, choosing between If...Else and Select Case can transform your app's readability. Use Select Case for organized lists and ranges, or If...Else for complex logic.
Read more: https://blog.xojo.com/2024/12/16/conditional-statements-select-case-vs-ifelse-explained/
The MPACSocket class handles JSON messaging, peer tracking, and broadcast management so you don't have to. Drop it into your project and go.
Download:
https://blog.xojo.com/2025/10/13/year-of-code-2025-october-project-multi-platform-communication/
#Xojo #DevOps #UDP #OpenSource
Build powerful web apps fast. π
β
Automatic HTTPS for all your Xojo web projects. β
Native Load Balancing to scale Xojo instances horizontally. β
High Efficiency.
https://blog.xojo.com/2025/08/04/deploy-xojo-web-apps-with-caddy-reverse-proxy/
#Xojo #WebDev #Coding #FullStack #SoftwareDevelopment
π Need RegEx?
β
Replace whole words only β
Strip HTML tags β
Extract numbers β
Reformat dates (YYYY-MM-DD β DD/MM/YYYY) β
Find emails β
Lookahead/lookbehind β
Non-greedy matching
https://blog.xojo.com/2025/09/18/regex-examples-10-practical-patterns-you-can-copy-and-paste/ #Xojo #RegEx #Coding
Xojo supports:
Encryption: AES, BlowFish, TwoFish (CBC/ECB/CTR modes)
Asymmetric: RSA (1024-4096 bit), ED25519, ES256
Hashing: SHA1, SHA256, SHA512, SHA3, MD5, CRC32
Advanced: HMAC, PBKDF2
Cross-platform. No dependencies.
https://documentation.xojo.com/api/cryptography/crypto.html
Interesting finding: on ARM (M1/M4), adding an extra assignment inside a loop reduced execution time by 5-25%.
Test 1: Loop + populate ListBox
Test 2: Same + assign row to RowTag
Result: Test 2 faster.
https://blog.xojo.com/2026/01/05/when-doing-more-is-faster-a-curious-xojo-performance-test/
π§ Need to send emails from your Xojo app? Built-in EmailMessage + SMTPSecureSocket has you covered.
Supports: HTML body, plain text, attachments, CC/BCC, custom headers.
π
https://documentation.xojo.com/api/networking/emailmessage.html
#Xojo #Networking
PDFDocument API:
- Draw with PDFGraphics (like regular Graphics)
- Add tables with PDFTable
- Embed files, sounds, movies
- Create interactive forms
- Set metadata (Author, Title, Keywords)
- Supports custom page sizes and embedded fonts.
https://documentation.xojo.com/api/pdf/pdfdocument.html
New in Xojo 2025r3: XAML Visual States. Define animations in XAML, trigger with one line: XAMLContainer1.GotoState("On")
Animation logic stays in XAML. Xojo code stays clean.
https://blog.xojo.com/2026/01/22/xojo-xaml-goto/ #Xojo #XAML #UIAnimation
π― DesktopChart can connect scatter plot points with ChartLinearStyle. Solid or dashed lines, toggle at runtime β no redraw needed.
Perfect for data viz π
https://blog.xojo.com/2026/02/09/scatter-chart-connecting-the-points/ #Xojo #LowCode #DataViz
Starting with Xojo 2025r3, macOS builds can run with UI Compatibility Mode enabled or disabled.
If youβre shipping a library, you may need to detect that at runtime.
https://blog.xojo.com/2026/01/14/detecting-ui-compatibility-mode-in-macos-apps-with-xojo/
#macOS #Declares #SoftwareEngineering
SQLiteDatabase
Use WriteAheadLogging for better write performance. Transactions to protect integrity and speed up bulk operations. Long queries in a Thread to keep UI responsive. Small app database, serious app performance.
#Xojo #SQLite #Performance #Coding
The PDFDocument class makes professional document generation native. If you can draw it on a Canvas, you can save it as a pixel-perfect, searchable PDF.
No dependencies. No external drivers. Just clean, native code for Desktop, Web, and Mobile.
#Xojo #DevTools #BusinessAutomation #Coding
One class. Infinite integrations.
With URLConnection, adding web power to your app is as simple as a few lines of code. Whether you're pulling live weather data or pushing updates to a remote database, it handles the heavy lifting of modern networking.
#Xojo #DevTools #WebServices #Programming
Need to find every phone number in a 500-page document? Or ensure a user's password meets five different criteria?
RegEx makes the "impossible" string tasks trivial.
Don't wrestle with your data. Command it with Xojo.
#Xojo #SoftwareEngineering #DataProcessing #RegEx