In true Python fashion, batteries are included – from popular third-party modules like requests, numpy, matplotlib, and many more, to modules that are tailor-made for iOS. You can write scripts that access sensor and location data, your photo library, contacts, reminders, the clipboard, and much more.
You can also use Pythonista to build interactive multi-touch experiences, custom user interfaces, animations, and 2D games.
Apart from learning and practicing Python, you can also use Pythonista to automate parts of iOS with app extensions, e.g. to invoke scripts directly from the standard share sheet in almost any app.
>>> Powerful code editor with syntax highlighting, code completion, scripting support, and more
>>> Interactive prompt with code completion, command history, and support for showing images in the console output
>>> Integrated visual debugger and object inspector
>>> Integrated PEP 8 style checker with issues highlighted directly in the editor
>>> Complete offline documentation with quick lookup directly from the editor
>>> Various beautiful light and dark color themes, and a theme editor to make your own
>>> UI editor for quick prototyping
>>> Includes most of the Python standard library and additional modules for graphics, sound, and iOS system services (e.g. clipboard, contacts, reminders, twitter, UI…)
>>> Matplotlib and NumPy for scientific visualizations
>>> Lots of other popular third-party modules, e.g. requests, BeautifulSoup, Flask, bottle, SymPy, and more are included.
>>> Lots of included examples to get started
>>> Universal app for iPad and iPhone
>>> Share sheet app extension for running scripts from almost any app
>>> Custom scriptable keyboard to use Python in any app that edits text
The name “Pythonista” is used with kind permission of the Python Software Foundation.
Please note that Pythonista is not designed to enable the installation or download of additional native modules, and it does *not* include the SciPy stack (just parts of it).
• Support for dark mode on iOS 13 – you can now select separate themes for light/dark mode, and Pythonista will switch automatically between them. Switching between themes is also a bit faster now.
• New custom keyboard (“PyKeys”) for running scripts in any app with text input. Have a look at the sample scripts in the Examples/Keyboard folder for some ideas of what you can do with this.
• Significantly improved support for external keyboards (more contextual shortcuts, arrow-key navigation almost everywhere…)
• The outline (list of functions) in the editor can now be filtered — just start typing if the keyboard is already active, or drag down the list to reveal the filter text field. The filter supports fuzzy matching, and you can enter line numbers as well.
• Unified UI (and documentation) for creating script shortcuts in various places of iOS (“Shortcuts” option in the “wrench” menu).
• New URL generator for easier inter-app automation (you can also use this with the Shortcuts app, but full Shortcuts support will come later).
• Support for opening external folders using the system’s file picker on iOS 13 (this was possible on iOS 12, but not easily discoverable).
• Revamped `notifications` module with custom action buttons, support for attachments, location triggers, and more – see the new “Notification Quiz.py” sample code for a demo. The module also works in the share sheet extension now.
• New “on device” option for speech recognition in the `speech` module (please note that this can be very slow though!)
• New `location.render_map_snapshot()` function to generate an image from a location (see new “Satellite Image.py” sample code).
• Console history is now persistent (you can clear it by tapping and holding the `^` button).
• Various bugfixes for iOS 13 and new screen sizes, new sample code, documentation, and more – you can find the full release notes in the in-app documentation (which also supports multiple tabs now btw).
Thanks for reading, and thanks for your patience with this release. It’s not everything I’d like it to be (hello, Shortcuts app!), but there are still many new things to discover, and I hope you have a lot of fun with it!