We've started 2026 with a buzz --- a flurry of BeeWare activity on Toga's Canvas and Table widgets, Qt backend, as well as making some major progress on Android binary packaging.
What we've done
- We have almost completed all the widgets in Toga's Qt backend, adding
OptionContainer,ScrollContainer,DetailedList,Selection,Table,SplitContainerandMapViewwidgets, as well as support for all dialog types. - We made some API changes and corrected some bugs to make the
CanvasAPI more closely aligned with the HTML5 Canvas specification. This is part of a larger set of changes cleaning up the implementation ofCanvas. - We added the ability to add a bitmap image on a
Canvas. - We made a large internal refactor of the
TableandTreewidgets. This is the first step in improving the API for definingTableandTreewidgets to exposed some long-needed capabilities like sorting and specifying column widths. - We hardened the definition for providing icons in
TableandTreecolumn data. The documented API has been specific for some time, but hasn't been implemented consistently on all platforms. - We modified the way Source objects are used to ensure that widgets no longer listen to stale sources when data changes.
- We formalized the protocol definitions for data source listeners
- We corrected some issues with the display of
OptionContainers on Cocoa and GTK when content is changed on a non-visible tab. - We corrected a number of layout issues on iOS and iPad apps, including introducing the ability for iPad apps to operate in non-full screen mode.
- We corrected some issues with scroll handling in
ScrollContaineron macOS. - We corrected some issues with widget colors in dark mode on macOS.
- We corrected some memory leak issues with Android widgets.
- We added the ability to use the Python standard library
webbrowsermodule in Toga Android apps. - We corrected the use of theme colors in
DetailedListon Android. - We added the ability to be notified when a website completes loading on Android. This API feature was previously possible on every platform except Android.
- We corrected the handling of icon sizes on buttons on Windows
- We simplified the categories used in Toga's API reference docs.
- We clarified the documentation around using Toga with a Python version other than the system default.
- We added documentation of Toga's platform and backend selection APIs.
- We ensured that content added to an
OptionContainerorSplitContainercan accurately track the Window and App they are associated with. - We completed work on patches to NumPy, Pandas, SciPy, scikit-learn and xgboost allowing these projects to be built for Android. This also involved updates to tools including cibuildwheel, auditwheel, Meson, and Python's own Android testbed. We hope to upstream these patches to the corresponding projects in the near future.
- We resolved an issue with Android buildbot testing in CPython. Both Android Buildbots stopped working in mid December for two different reasons; the cause of the problems is not entirely understood, but we were able to find workarounds and restore Buildbot testing.
- We are nearing completion on a replacement for BeeWare's website. The new website will use the same MkDocs infrastructure that is used for our tutorial and project documentation. This will add dark mode, search capabilities, improved event and resources pages, and some other content simplifications to our website. It will also make our job easier as maintainers, as website builds are much faster, and adding new content to the site is easier.
- We released updated Apple support packages for all supported Python versions. These updated versions are the first to adopt the XCframework layout that has been accepted upstream by CPython, including scripts for managing the process of processing binary libraries on iOS.
- We added the ability to reset all runtime permissions when running an app on Android.
- We added the ability to merge folders named in
sourcesandtest_sourcesin a Briefcase configuration. This allows projects to overlay platform-specific content over a base project layout. - We added the ability for Windows MSI installers to reference the location of the original MSI in post-install scripts.
- We improved our documentation of the use of signing identities.
- We added the ability to open a single Briefcase app in a project that contains multiple app definitions.
- We modified our System PySide library to support some common KDE extensions.
- We corrected an issue with Toga Chart that prevented the example app from running on Android.
- We corrected an issue with the handling of background images in DMGs on macOS Tahoe.
- We corrected some issues with parsing the
sizeandtext-sizeproperties and color hex regexes when creating DMGs.
Much of this work is due to the contributions of members of the BeeWare community. Thanks to Alec Delaney (@tekktrik), Barak (@BarakXYZ), Corran Webster (@corranwebster), Harsh Kumar (@thisisharsh7), John (@johnzhou721), @kshivani06, Mike Maietta (@mmaietta), @MTwem, @Nabhye, @rasmusJenle, @timrid, Tom Arn (@t-arn), and @YapWC for their code and documentation contributions this month.
What's next?
In the coming month, we're going to start work on improving Positron to better support PyScript apps. We're also going to perform some API design work around capabilities that are currently missing from Toga. This will include a design for Table and Tree widgets for mobile platforms, as well as tackling some high-level app navigation issues. Some of these discussions have already started this month; they will continue until we have finalized designs that can be implemented.
Want to get involved?
Want to get involved? We curate issues that should be approachable for first-time contributors to BeeWare. They're all relatively minor changes, but would provide a big improvement to the lives of BeeWare users:
- If you're interested in the tooling for deploying applications to various platforms, take a look at Briefcase
- Or, if you're interested in GUI widgets, take a look at Toga
These lists can also be filtered by platform - so you can find issues that are specific to your preferred operating system. Pick one of these tickets, drop a comment on the ticket to let others know you're looking at it, and try your hand at a PR! We have a guide on setting up a Briefcase development environment; but if you need any additional assistance or guidance, you can ask on the ticket, or join us on the BeeWare Discord server.
- voce precedente
- 2026Q1 Roadmap