Building a cross-platform app with BeeWare
- Track:
- ~ None of these topics
- Type:
- Tutorial
- Level:
- beginner
- Room:
- Club C
- Start:
- 13:45 on Monday, 14 July 2025
- End:
- 17:00 on Monday, 14 July 2025
- Duration:
- 180 minutes
Abstract
All code needs a user interface. That might be an API, or a web page - but these days, many users will expect an app that they can install on their laptop, or on their phone. But how do you build a native application in Python? And do you need to build a different version of your app the app for every device and operating system you want to support?
In this hands-on tutorial, you'll lean how you can use the BeeWare suite of tools to build a graphical user interface for your code, and deploy that code as a desktop app, and as a mobile app - all from a single Python codebase. You'll learn how to integrate third-party libraries like NumPy into your app, and how to customize the appearance of your packaged app. You'll also learn how you can access device hardware (such as cameras an accelerometers) in your app's code.
No experience with mobile or desktop app development is required; a basic familiarity with Python is all you need. By the end of the tutorial, you'll have an app running on your own phone, written entirely by you, using nothing but Python.
Important instructions for attendees
In order to ensure that you have a smooth tutorial experience, there's a couple of preparatory steps you can do ahead of time. It's really important you follow these steps before you arrive. Some of them involve very large downloads (tens of gigabytes). The conference WiFi won't be able to support everyone performing those downloads at once; and because of licensing restrictions, we can't distribute the software on site using a USB drive.
If you're on Windows, you'll need to install a stable version of Python 3.9 or newer (i.e., no alpha or beta releases). It doesn't matter if you use an install from a python.org installer, a Windows Store install, or a Conda install - as long as you have Python 3.9 installed and on your path. It's also important that it is NOT a uv install. I know uv is the "new hotness" - however, uv has some limitations when it comes to cross-platform app development, so we'd strongly recommend you obtain Python from another source.
If you're on macOS, you'll need to install:
- A stable version of Python 3.9 or newer (i.e., no alpha or beta releases). As with Windows, a python.org install, a homebrew install, or a Conda install should all be OK; a uv install will be a problem.
- An up-to-date macOS version. macOS 15 (Sequoia) is preferred; macOS 14 (Sonoma) should work; older versions may work, but you're likely to experience some problems. It doesn't matter if you're on x86-64 or Apple Silicon - but your operating system must be up to date.
- An up-to-date version of Xcode - 16.4 is the most recent version
- The iOS developer kit for Xcode. This may be installed automatically by Xcode. To check that this is installed, start Xcode, then select Settings from the "Xcode" menu, select the "Components" tab, and ensure that a recent iOS developer kit (18.5 is the most recent) is listed on the available components. If it says "8.83GB on disk" or similar, it's available; if there's a GET button, press that button.
If you're on Linux, ensure you have all system updates applied; then visit this URL:
https://beeware.org/t/linux-deps
and follow the instructions for your chosen platform. On Linux, you must use the system-provided Python - if you have Conda or any other source of Python installed (like uv, or deadsnakes on Ubuntu), you'll need to know how to disable that Python for the purposes of the tutorial.
Again - it's really important that you follow these steps before you arrive on site. Hotel and conference WiFi is not friendly to multi-gigabyte downloads at the best of times, and it definitely doesn't play well with a room full of people all doing the same multi-gigabyte download at the same time.