# Objo Studio v26.11.1 Released

**URL:** <https://ifnotnil.com/t/objo-studio-v26-11-1-released/4896>\
**Category:** Objo\
**Created:** [4 November 2026 11:43 UTC](https://ifnotnil.com/t/objo-studio-v26-11-1-released/4896 "2026-11-04T11:43:22Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![Garry](https://ifnotnil.com/user_avatar/ifnotnil.com/garry/32/2_2.png) [@Garry](https://ifnotnil.com/u/Garry)\
**Post date:** [4 November 2026 11:43 UTC](https://ifnotnil.com/t/objo-studio-v26-11-1-released/4896/1 "2026-11-04T11:43:22Z")

</div>

I’m very happy to announce the immediate availability of Objo Studio 26.11.1.

This release brings installable Web applications, camera barcode scanning, text-to-speech, and more flexible layouts for both Desktop and Web. There are also improvements to tabs, code editing and application icons, along with fixes for several problems reported on the forums.

[Download Objo Studio 26.11.1](https://objo.dev/download)

## Put your Web application on the home screen

Your users can now install an Objo Web application from supporting browsers, giving it a home screen or desktop icon and its own application window.

Enable **Project Settings \> Web \> Installation \> Allow installation**. Studio uses your project’s display name, application icon and Web appearance to generate the necessary installation metadata and icon sizes. Optional settings let you customise the home screen name and colours.

The application still runs on your server and needs a connection to it. Installation is supported according to the user’s browser and platform, with HTTPS required for deployed applications.

This should be particularly useful for applications people return to regularly, such as stock systems, booking tools and internal dashboards. The [Web application installation guide](https://docs.objo.dev/#/web-projects?id=installing-on-the-home-screen-or-desktop) explains how to get started.

## Read barcodes with a phone’s camera

Web applications gain a new [BarcodeScanner](https://docs.objo.dev/#/web/barcodescanner) API for reading UPC-A, EAN-13, EAN-8, Code 128 and QR codes.

Your application starts a scan, the user opens their camera, and the result gives you the decoded text and detected format. Users can select a camera, and your application can remember their preference for another visit.

Decoding happens locally in the browser. Camera frames are never uploaded to your server, and the decoder ships with your application.

Open the new **Web Barcode Scanner** example to try the supported formats and see how to handle successful scans, cancellation and camera errors. Camera access requires HTTPS when deployed, or localhost during development.

## Speech on Desktop

The new [SpeechSynthesiser](https://docs.objo.dev/#/desktop/speechsynthesiser) class lets Desktop applications read text aloud and save generated speech as a WAV file.

You can choose a voice, adjust speaking speed and volume, queue speech and stop playback. Speaking and exporting run in the background, keeping your application’s interface responsive, with both events and awaitable methods available.

This opens up read-aloud features, spoken prompts and generating audio for later use. macOS and Windows use their system voices, while Linux applications include the speech engine they need.

The documentation includes examples of [speaking text and exporting speech](https://docs.objo.dev/#/desktop/speechsynthesiser), along with details of the available voices on each platform.

## More flexible Web layouts

Two additions make it easier to build Web applications around the available browser space.

Navigation bars can now appear on the **left or right** of a page, as well as across the top. Side navigation supports a configurable width, expandable groups and a current-page indicator, switching to a dismissible drawer on smaller screens.

You still design the navigation once and reuse it across pages. Each page chooses its placement, so the same definition can serve different layouts. The [NavigationBar documentation](https://docs.objo.dev/#/web/navigationbar) covers the designer and page settings.

Controls can also fill the remaining browser height. Select a control and choose **Placement \> Height \> Fill remaining** to let a ListBox, Chart, Canvas or container grow and shrink with the available space.

The setting belongs to each responsive breakpoint. A wide dashboard can fill the browser while its compact phone layout keeps a fixed height, and the designer’s new viewport-height preview lets you inspect both.

The [fill-height layout guide](https://docs.objo.dev/#/web-projects?id=fill-the-available-height) explains minimum sizes, nested containers and how the available space is shared.

## Tabs that adapt to your application

`TabPanel` receives several related improvements on Desktop and Web.

Individual tabs can now be hidden and shown without losing their controls or values. Hiding a tab also leaves the other tabs’ indices unchanged, making it easier to show the sections relevant to the current user or task.

Desktop panels gain an optional scrolling header row. Both Desktop and Web provide a compact overflow menu when the headers do not fit, giving users a convenient way to find another tab.

Optional close buttons are available on both targets too. Closing raises a request that your application handles, so you can ask about unsaved changes, protect particular tabs or decline the request. Desktop applications can remove an accepted tab; Web applications can hide it while retaining its contents.

The [Desktop TabPanel](https://docs.objo.dev/#/desktop/tabpanel) and [Web TabPanel](https://docs.objo.dev/#/web/tabpanel) documentation includes the new settings, methods and close-request examples.

## More control over controls

Individual `RadioButton` controls are now available on [Desktop](https://docs.objo.dev/#/desktop/radiobutton) and [Web](https://docs.objo.dev/#/web/radiobutton).

Give related buttons the same `GroupName` to make them mutually exclusive, then position them freely. This is useful for settings panels where an option has explanatory text, checkboxes or other controls beneath it. The existing `RadioButtonGroup` remains available for automatically arranged lists.

`GroupBox` also gains custom border colour, thickness, corner radius and caption colour on both [Desktop](https://docs.objo.dev/#/desktop/groupbox) and [Web](https://docs.objo.dev/#/web/groupbox).

Desktop [Label](https://docs.objo.dev/#/desktop/label) controls gain vertical text alignment, allowing a block of text to sit at the top, middle or bottom of its available area.

## Some smaller additions

A few other changes deserve a mention:

- Method descriptions now appear beneath signatures in [parameter hints](https://docs.objo.dev/#/using-objo-studio?id=code-view). You can control this in **Settings \> Editor**.
- Subclass event handlers can [call their parent’s implementation](https://docs.objo.dev/#/events?id=calling-the-parents-handler) explicitly, for example with `Super.Opening()`.
- [TCPClient](https://docs.objo.dev/#/stdlib/tcpclient) gains `ReadBytesAsync` and `WriteBytesAsync` for transferring binary data through `MemoryBlock`, making binary protocols easier to work with.
- PNG artwork can be dragged directly into the [application icon editor](https://docs.objo.dev/#/project-settings?id=application-icons), including individual size slots.
- Asset and icon pickers remember their last folder during the current Studio session, saving repeated trips through the same directories.

## Fixes worth mentioning

On Windows, copying a ListBox cell no longer freezes the running desktop application. `Shell.Start` and `Shell.Execute` also preserve correctly quoted command text, including paths and arguments containing spaces or commas.

The editor restores completion and member help for plugin types used through imported namespaces. Rejected renames now display feedback, naming a newly duplicated member stays local during its initial setup, and a crash when selecting items in Studio has been addressed.

Theme exports now include the complete editor and Markdown colour palettes, including colours left at their defaults. There are also fixes for designer selection values, RadioButtonGroup bounds, misleading unused-method warnings and Studio’s Linux taskbar icon.

Finally, macOS applications built or published from Windows receive the executable signing needed for development and testing after transfer to a Mac. Developer ID signing and notarisation remain separate steps for public distribution.

You’ll find the complete list in the [changelog](https://objo.dev/changelog).

[Download Objo Studio 26.11.1](https://objo.dev/download), try the new features, and let me know how you get on in the [forums](https://forum.objo.dev).

Thanks to everyone who has shared reports, suggestions and examples of their projects. They help us decide what to improve and make it much easier to track down problems.

Enjoy!
