Hi DEV! I’m an independent iOS developer, and I built PythonIDE, a Python development app for iPhone and iPad.

Here’s what you can do with it:

  • Write, run, and debug Python: edit scripts, set breakpoints, step through code, and inspect variables and call stacks.
  • Work with notebooks: edit .ipynb files, run cells, and combine code, Markdown, and plots.
  • Use familiar libraries: NumPy, pandas, and Matplotlib are included. You can also install compatible pure-Python packages through pip. Native extension support depends on the iOS builds bundled with the app.
  • Connect to remote machines: use SSH for terminal sessions and SFTP to browse, edit, upload, and download files.
  • Manage Git repositories: inspect diffs, stage changes, commit, work with branches, and sync with remotes.
  • Build MiniApps and widgets: use Python and AppUI to create MiniApps with native interfaces that run inside PythonIDE, and build Home Screen widgets with Python.
  • Work with an AI Agent: get help editing project files, running code, and investigating errors, subject to tool permissions and confirmations.
  • Edit web projects: write HTML, CSS, and JavaScript and preview pages in the app.

There’s also a community for discovering and sharing scripts and MiniApps.

You can find PythonIDE on the App Store.

I’d love to hear what you’d use it for and what would make coding on an iPhone or iPad easier.

A few screenshots

Screenshots were captured in the PythonIDE 1.7.9 development build on an iPhone simulator, using sample projects.

Python editor

PythonIDE editor showing a Python script that uses pandas, NumPy, and Matplotlib

Notebook

An executed notebook with Markdown, Python code, and a pandas table of fictional sample sales

A native interface built with Python and AppUI

A working AppUI checklist after clicking Complete next task, showing one of three tasks complete

HTML, CSS, and JavaScript preview

PythonIDE previewing a local HTML, CSS, and JavaScript sample project

Disclosure: I used OpenAI Codex to help draft and translate this post.