Toga supported platforms#
Official platform support#
Desktop platforms#
macOS#

The backend for macOS is named toga-cocoa. It supports macOS 10.10 (Yosemite)
and later. It is installed automatically on macOS machines (machines that
report sys.platform == 'darwin'
), or can be manually installed by invoking:
$ pip install toga-cocoa
The macOS backend has seen the most development to date. It uses Rubicon to provide a bridge to native macOS libraries.
Linux#

The backend for Linux platforms is named toga-gtk. It supports GTK 3.4
and later. It is installed automatically on Linux machines (machines that
report sys.platform == 'linux'
), or can be manually installed by
invoking:
$ pip install toga-gtk
The GTK backend is reasonably well developed, but currently has some known issues with widget layout. It uses the native GObject Python bindings.
Windows#

The backend for Windows is named toga-winforms. It supports Windows 11 with
.NET 4 installed. It is installed automatically on Windows machines
(machines that report sys.platform == 'win32'
), or can be manually
installed by invoking:
$ pip install toga-winforms
It uses Python.net.
Mobile platforms#
iOS#
The backend for iOS is named toga-iOS. It supports iOS 6 or later. It must be manually installed into an iOS Python project. It can be manually installed by invoking:
$ pip install toga-iOS
The iOS backend is currently proof-of-concept only. Most widgets have not been implemented. It uses Rubicon to provide a bridge to native macOS libraries.
Android#
The backend for Android is named toga-android. It can be manually installed by invoking:
$ pip install toga-android
The android backend is currently proof-of-concept only. Most widgets have not been implemented. It uses Chaquopy to provide a way to access the Android Java libraries and implement Java interfaces in Python.
Web#
The Web backend is named toga-web. It can be manually installed by invoking:
$ pip install toga-web
The Web backend is currently proof-of-concept only. Most widgets have not been implemented. It uses PyScript to run Python code in the browser.
The Dummy platform#
Toga also provides a Dummy platform - this is a backend that implements the full interface required by a platform backend, but does not display any widgets visually. It is intended for use in tests, and provides an API that can be used to verify widget operation.
Planned platform support#
Eventually, the Toga project would like to provide support for the following platforms:
UWP (Native Windows 8 and Windows mobile)
Qt (for KDE based desktops)
tvOS (for AppleTV devices)
watchOS (for AppleWatch devices)
Curses (for console)
If you are interested in these platforms and would like to contribute, please get in touch on Mastodon or Discord.
Unofficial platform support#
At present, there are no known unofficial platform backends.