To develop a cross platform mobile app, you need to use a cross platform widget toolkit - Toga. Toga abstracts away the differences between the various mobile platforms, providing a common Python API for app development.

This API uses the capabilities of Rubicon and VOC to access native system libraries. Rubicon is a bridge library that gives you transparent access to all the native Objective C classes that iOS provides. VOC, on the other hand VOC is a transpiler - it takes Python source code, compiles it to CPython Bytecode, and then transpiles that bytecode into Java-compatible bytecode. The end result is that your Python source code files are compiled directly to a Java .class file, which can be packaged into an Android application. VOC also allows you to access native Java objects as if they were Python objects, implement Java interfaces with Python classes, and subclass Java classes with Python classes. Using this, you can write an Android application directly against the native Android APIs.

Once you've written your mobile application, you can use Briefcase to package your Python code for specific platforms. Briefcase takes the distutils setup.py definition for your Python project, and uses that metadata to generate a stub iOS or Android project, compile your Python code, and place the compiled artefacts so that they will be found when you run the app. The stub project is generated using the Python iOS template and Python Android template.