This month, we have less to report by raw feature count - but the changes we have made represent extremely significant progress.
What we've done
- Our primary focus this month has been making the changes to CPython needed to add support for iOS and Android. We've made major progress towards this goal: all the patches required for iOS have been merged; a large number of patches have been submitted for Android, with only a small number still required. This month, we have:
- Added test exclusions to support running the test suite on Android
- Fixed some issues with the process of building an Android libPython
- Modified sys.platform identification for Android so it returns "android" not "linux"
- Added an API to get device and OS information on Android
- Modified ctypes so it can load libraries on Android
- Modified a signals test to make it more reliable on more platforms
- Added a build script and instructions for Android builds
- Added a custom module loader so that iOS apps can load binary modules from Frameworks
- Modified test_doctest to support platforms that don't support subprocesses
- Modified the standard library to support iOS
- Added documentation for the iOS platform
- Corrected some additional test failures introduced on Android
- PEP 738, adding official Android support to CPython, has been formally approved by the Python Steering Council.
- We updated the CPython Developer Guide to describe the iOS development process.
- We improved Briefcase's handling of stdout for some tools. We're hoping this will fix - or at least make it easier to diagnose - a mode of failure we've had reported for the Android emulator on Windows.
- We added color to Android's log output.
- We corrected the handling of key shortcuts on Window and GTK, adding a lot of key combinations that weren't previously possible to represent.
- We restructured the Toga documentation landing page, making it easier to find the documentation you're likely to need.
- We landed the MapView widget, and have completed most of the work on a new Geolocation service.
What's next?
In April, we're hoping to wrap up the work on iOS and Android patches for CPython, and add buildbots for those platforms. With the buildbots in place, iOS and Android will officially be Tier 3 supported CPython platforms. We also plan to revisit the BeeWare tutorial, adding some more steps in preparation for a tutorial presentation at PyCon US in May. If you're coming to Pittsburgh and you'd like to attend that tutorial session, ticket sales are open!
Want to get involved?
Want to get involved? Here are some open issues that would be a great place to get started with contributing to a BeeWare project. They're all relatively minor changes, but would provide a big improvement to the lives of BeeWare users:
- Update the Toga testbed test suite to use Pixel 7 Pro device sizes
- Filter out a message generated after Xcode updates
- Add the ability to configure the ABIs built by an Android project
- Rationalise the application of adhoc signing on macOS
- Add support for custom PyPI repositories
- Document how to debug an application in popular IDEs
- Correctly handle incomplete project deletions
- Add an option to select the Android base image when creating new emulators
- Print notarisation log failures when building macOS apps
- Add an API to replace a child of a widget
- Add an API to entirely replace the style of a widget
- Add the ability to define content when creating a window
Pick one of these tickets, drop a comment on the ticket to let others know you're looking at it, and try your hand at a PR! We have a guide on setting up a Briefcase development environment; but if you need any additional assistance or guidance, you can ask on the ticket, or join us on the BeeWare Discord server.
- Próximo artigo
- 2024Q2 Roadmap
- Artigo anterior
- February 2024 Status Update