Episode 22: Create Cross-Platform Python GUI Apps With BeeWare
The Real Python Podcast
Aug 14, 2020 1h 23m
Do you want to distribute your Python applications to other users who don’t have or even use Python? Maybe you’re interested in seeing your Python application run on iOS or Android mobile devices. This week on the show we have Russell Keith-Magee, the founder and maintainer of the BeeWare project. Russell talks about Briefcase, a tool that converts a Python application into native installers on macOS, Windows, Linux, and mobile devices.
We spend some time digging into BeeWare’s cross-platform widget toolkit named Toga. Russell talks about some of the intricacies of converting graphical user interface components from across multiple computing platforms. If you’re interested in contributing to an open source project, he discusses how you could get involved in the project. We also talk about the struggle of getting funding for open source projects.
Course Spotlight: Python Decorators 101
In this course on Python decorators, you’ll learn what they are and how to create and use them. Decorators provide a simple syntax for calling higher-order functions in Python. By definition, a decorator is a function that takes another function and extends the behavior of the latter function without explicitly modifying it.
Topics:
- 00:00:00 – Introduction
- 00:01:36 – History of the BeeWare project
- 00:05:20 – Is having separate tools helpful?
- 00:07:06 – Gaming frameworks in Briefcase
- 00:09:05 – How is Briefcase different from similar tools?
- 00:14:36 – Platform considerations 32bit vs 64bit
- 00:16:27 – Coming Mac hardware platform changes
- 00:18:20 – TOML: Background, use in Python projects, and Briefcase
- 00:26:29 – How is the project going for different platforms?
- 00:32:09 – Android hardware as a developer test device
- 00:36:14 – Making Toga (GUI) cross platform
- 00:41:21 – What type of interface widgets are available in Toga?
- 00:44:26 – Video Course Spotlight
- 00:45:37 – Distribution to the web as a platform
- 00:49:54 – What is WASM (Web Assembly)?
- 00:53:26 – Version numbering for BeeWare projects
- 00:56:23 – What is your day-to-day involvement in the project?
- 00:58:32 – How would someone get involved in the project?
- 01:05:15 – Funding open-source projects
- 01:13:31 – Including a smaller version of Python
- 01:17:08 – What are you currently excited about?
- 01:22:17 – What are you interested in learning next?
- 01:23:07 – Thanks and Goodbye
Show Links:
- BeeWare: Write once. Deploy everywhere.
- Briefcase: Convert a Python Project Into a Standalone Native Application
- Toga: A Python Native, OS Native GUI Toolkit
- BeeWare Documentation
- Snakes in a case: Packaging Python apps for distribution - Russell Keith-Magee PyCon 2020
- Python Community Interview With Russell Keith-Magee: Real Python
- Ceci n’est pas un homepage: The personal blog of Russell Keith-Magee
- Ludum Dare: Online Event Where Games are Made From Scratch in a Weekend
- PursuedPyBear: Unbearably Fun Game Development
- Blink: PPB App, Packaged with Briefcase
- TOML: Tom’s Obvious, Minimal Language
- What the heck is pyproject.toml?
- Everyday Project Packaging With pyproject.toml
- PEP 518 – Specifying Minimum Build System Requirements for Python Projects
- Elinor Ostrom’s 8 Principles for Managing A Commons - On the Commons
- Russell Keith-Magee Github Sponsors Page
- BeeWare Financial Membership
- PSF: Become a Supporting Member of the Python Software Foundation!
- Quake in the browser
- WebAssembly: Binary Instruction Format for a Stack-based Virtual Machine
- Emscripten: Toolchain for Compiling to asm.js and WebAssembly
- Announcing Pylance: Fast, feature-rich language support for Python in Visual Studio Code