Para desarrollar una aplicación de escritorio multi-plataforma, debes utilizar un conjunto de herramientas de widget multi-plataforma: Toga. Toga abstrae las diferencias entre las distintas plataformas, proporcionando una API común de Python para el desarrollo de aplicaciones.

En macOS, esta API utiliza las capacidades de Rubicon para acceder a bibliotecas nativas del sistema. Rubicon es una librería puente que te da acceso transparente a todas las clases nativas de Objective C que proporciona iOS. En Linux, se utilizan enlaces nativos de Python para GTK +. En Windows, ctypes se utiliza para llamar a las API de Win32 C directamente.

Una vez que hayas escrito tu aplicación móvil, puedes usar Briefcase para empaquetar tu código Python para plataformas específicas. Briefcase toma la definición de setup.py de distutils para tu proyecto de Python, y usa esa metadata para generar un proyecto de base, compilar tu código Python y ubicar los artefactos compilados para que se encuentren cuando ejecute la aplicación. El proyecto de base se genera usando la Plantilla Python para macOS.

Sigue el tutorial en los documentos de Briefcase para empezar!