Toga supported platforms

Official platform support

Desktop platforms

macOS

../_images/cocoa.png

The backend for macOS is named toga-cocoa. It supports macOS 10.7 (Lion) 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

../_images/gtk.png

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.

Winforms

The backend for Windows is named toga-winforms. It supports Windows XP or later with .NET 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

The Windows backend is currently proof-of-concept only. Most widgets have not been implemented. 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 (such as one that has been developed using the Python-iOS-template cookiecutter). 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 VOC to compile Python code to Java class files for execution on Android devices.

Web platforms

Django

The backend for Django is named toga-django. It can be manually installed by invoking:

$ pip install toga-django

The Django backend is currently proof-of-concept only. Most widgets have not been implemented. It uses Batavia 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:

  • Other Python web frameworks (e.g., Flask, Pyramid)
  • 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 Twitter or Gitter.

Unofficial platform support

At present, there are no known unofficial platform backends.