Skip to content

About

Android Python IDE and script runner powered by Chaquopy and Jetpack Compose with interactive terminal output.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

🇬🇧 English  •  🇩🇪 Deutsch


🐍 Python IDE & Interpreter for Android

Latest Release Download APK

Platform Arch Kotlin Compose Python License


Tip

⚡ Quick Start & APK Download

You do not need to compile the app yourself. Ready-to-install Android packages are available in Releases:

📥 Direct APK Download: Python-IDE-1.1.apk (~81 MB, v1.1)
🏷️ All Versions & Changelogs: GitHub Releases


A full-featured native Android Python Integrated Development Environment (IDE) and Python Interpreter.

Powered by the integrated Chaquopy Python 3.10 Engine, the app executes Python code natively and completely offline on your Android device – with zero cloud dependencies or external servers. Out of the box, it supports numerical computing with NumPy, data visualization with Matplotlib, multithreading, socket network communication, IoT applications, and interactive WebViews.


🌟 Why this IDE? (Key Benefits)

  • 🚀 True "Zero Setup": No Linux terminal, no flaky pip install errors, and no compilation headaches on your phone. C and math libraries (such as NumPy and Matplotlib) come precompiled, tested, and ready to run immediately.
  • 📱 Touch-Optimized Development: Large action buttons (Run ▶, Stop ⏹, Save 💾), quick-access bar for programming symbols (Tab, :, (), [], def, class, try, while, with), and an integrated slide-out file explorer make mobile coding comfortable.
  • 🖥️ Smart 3-Tab Architecture: Dedicated fullscreen views for Code Editor, ANSI Streaming Terminal, and Visual Web/Plot Output – all accessible with a single swipe or tab tap.
  • 📊 Seamless Visualization Without Desktop: When your script calls plt.show(), the IDE intercepts the call and renders the plot in high resolution. Local HTML/JS dashboards and HTTP servers are rendered interactively in the embedded WebView.
  • 🛑 Reliable Emergency Stop: Infinite loops or blocking network sockets can be cleanly interrupted with a tap via KeyboardInterrupt without freezing Android ("ANR - App Not Responding").
  • 📶 Direct Local Network Access: Unlike cloud notebooks, your phone on Wi-Fi has direct socket access to local LAN IP addresses (e.g., smart home devices, microcontrollers, Modbus inverters, or routers).
  • 🔒 100% Offline & Private: Runs fully self-contained on the device – no telemetry, no cloud costs, no data leaks, and zero dependence on an active internet connection.
  • 🛠️ Maximum Flexibility: Tweak calculations, test algorithms, or write new scripts on the go in seconds – without ever rebuilding an entire Android app.

🚀 Releases & Downloads

Release File Target OS Download Link Notes
v1.1 (Latest) Python-IDE-1.1.apk Android 7.0+ (arm64-v8a, x86_64) 👉 Download APK v1.1 Added editor snippets (try, while, with, self.), version footer, CI automation
v1.0 Python-IDE-1.0.apk Android 7.0+ (arm64-v8a, x86_64) 📦 Download v1.0 Initial release with NumPy, Matplotlib & Modbus
Repo Mirror Python-IDE-1.1.apk Universal 📦 Mirror in repository Local Git asset in apk/ directory

📲 Installation on Android:

  1. Download the APK: Python-IDE-1.1.apk.
  2. Open the downloaded file from your notification shade or Files/Downloads app.
  3. If Android prompts a security dialog, enable "Allow from this source" for your browser or file manager.
  4. Tap Install and launch Python IDE from your app drawer.

✨ Features & Capabilities

🖥️ 1. Fullscreen Three-Tab Interface

Optimizes screen space for mobile productivity:

  • 📝 Tab 1: Editor
    • Line numbers, dynamic syntax highlighting (PythonSyntaxHighlighter), and quick-access toolbar.
    • Tab key for standard 4-space indentation and one-tap Python tokens (def, class, import, print, :, (), [], {}).
    • Unsaved changes indicator (●), font size scaling.
  • 💻 Tab 2: Terminal
    • Live unbuffered streaming of stdout and stderr.
    • ANSI color rendering (AnsiParser), execution timer in milliseconds (elapsedMs), autoscroll toggle, copy and clear.
    • Emergency Stop button executing KeyboardInterrupt. Auto-switches to terminal on Run ▶.
  • 🌐 Tab 3: Web / Visual View
    • Automatic rendering of Matplotlib 2D/3D figures without an X11/desktop server.
    • Interactive WebView for generated HTML/SVG dashboards or embedded web servers (http://localhost:8080).

📦 2. Included Python Runtime & Libraries

Full, preconfigured Python 3.10 environment including:

Library Version Purpose
numpy 1.26.2 Fast vector and matrix math, linear algebra
matplotlib 3.6.0 2D/3D plotting (rendered in Visual View)
pillow 11.0.0 Image processing and manipulation
pysolarmanv5 3.0.6 Modbus RTU/TCP telemetry for hardware/solar inverters
uModbus 1.0.4 Modbus protocol implementation
pyserial 3.5 Serial communication
Standard Library 3.10 socket, threading, http.server, json, math, struct, urllib, ctypes, etc.

🛠️ Technical Architecture

Layer Technology Role
UI & Presentation Jetpack Compose (Material 3) Reactive UI with StateFlow in MainViewModel
Interpreter Core Chaquopy (Python 3.10) Native in-process Python runtime for Android
Output Interceptor runner_hook.py Streams sys.stdout & sys.stderr in real time to Compose
Visual Bridge Base64 Image & WebView Intercepts Matplotlib figures & renders local web servers
Permissions INTERNET, ACCESS_NETWORK_STATE Allows network sockets (IoT, APIs, embedded servers)

📄 License

Licensed under the MIT License.



🇩🇪 Deutsche Beschreibung

🐍 Python IDE & Interpreter for Android

Latest Release Download APK

Platform Arch Kotlin Compose Python License


Tip

⚡ Schnelleinstieg & APK-Download

Du musst die App nicht selbst kompilieren. Die installierbare Android-Version steht als Release bereit:

📥 Direkter APK-Download: Python-IDE-1.1.apk (ca. 81 MB, v1.1)
🏷️ Alle Versionen & Changelogs: GitHub Releases


Eine vollwertige, native Android Python-Entwicklungsumgebung (IDE) und Python-Interpreter.

Mit der integrierten Chaquopy Python 3.10 Engine führt die App Python-Code nativ und offline direkt auf dem Android-Gerät aus – ganz ohne Cloud-Abhängigkeiten oder Server. Unterstützt werden numerische Berechnungen mit NumPy, Datenvisualisierung mit Matplotlib, Multithreading, Socket-Netzwerkkommunikation, IoT-Anwendungen sowie interaktive WebViews.


🌟 Warum diese IDE? (Vorteile)

  • 🚀 Echtes „Zero Setup“: Kein Linux-Terminal, kein fehleranfälliges pip install und keine Build-Probleme auf dem Smartphone. C- und Mathe-Bibliotheken (wie NumPy und Matplotlib) sind bereits vorkompiliert, getestet und sofort startklar.
  • 📱 Touch-optimierte Entwicklung: Große Schaltflächen (Run ▶, Stop ⏹, Save 💾), Schnellzugriff auf oft benötigte Programmiersymbole (Tab, :, (), [], def, class, try, while, with) und ein seitlicher Datei-Explorer machen das Coden auf dem Smartphone komfortabel.
  • 🖥️ Clevere 3-Tab-Architektur: Klare Aufteilung in Vollbild-Editor, ANSI-Streaming-Terminal und visuelle Web-/Plot-Ausgabe – alles lässt sich mit einer Wischgeste oder einem Fingertipp erreichen.
  • 📊 Nahtlose Visualisierung ohne Desktop: Ruft dein Skript plt.show() auf, fängt die IDE das automatisch ab und rendert Grafiken hochauflösend. Lokale HTML/JS-Dashboards und HTTP-Server werden direkt im integrierten WebView interaktiv dargestellt.
  • 🛑 Zuverlässiger Notaus-Schalter (Stop): Endlosschleifen oder blockierende Netzwerk-Sockets können per Knopfdruck sauber via KeyboardInterrupt abgebrochen werden – ohne dass Android einfriert („App reagiert nicht“).
  • 📶 Voller Zugriff auf das lokale Heimnetzwerk: Im Gegensatz zu Cloud-Notebooks hat das Smartphone im WLAN direkten Socket-Zugriff auf lokale IP-Adressen (z. B. Smart-Home-Geräte, Mikrocontroller, Sensoren oder Router).
  • 🔒 100 % Offline & Privatsphäre: Läuft komplett autark auf dem Gerät – keine Cloud, keine Serverkosten, kein Datenabfluss und keine Abhängigkeit von einer Internetverbindung.
  • 🛠️ Maximale Flexibilität: Anpassungen, neue Berechnungen oder zusätzliche Schnittstellen können direkt auf dem Gerät im Code geändert und sekundenschnell getestet werden – ohne eine ganze Android-App neu kompilieren zu müssen.

🚀 Releases & Downloads

Release Dateiname Zielsysteme Download-Link Hinweise
v1.1 (Neueste) Python-IDE-1.1.apk Android 7.0+ (arm64-v8a, x86_64) 👉 APK v1.1 herunterladen Erweiterte Editor-Snippets (try, while, with, self.), Versions-Footer, CI-Builds
v1.0 Python-IDE-1.0.apk Android 7.0+ (arm64-v8a, x86_64) 📦 v1.0 herunterladen Initial Release mit NumPy, Matplotlib & Modbus
Repo Mirror Python-IDE-1.1.apk Universell 📦 Aus Repository laden Lokales Git-Asset im apk/-Verzeichnis

📲 Schritt-für-Schritt-Installation auf Android:

  1. Lade die APK über den Link oben herunter: Python-IDE-1.1.apk.
  2. Öffne die heruntergeladene Datei (über die Statusleiste oder deinen Dateimanager wie z. B. Files oder Downloads).
  3. Falls Android eine Sicherheitsabfrage anzeigt:
    • Tippe auf Einstellungen und aktiviere den Schalter „Installation aus dieser Quelle zulassen“ (für deinen Browser oder Dateimanager).
  4. Bestätige die Installation mit Installieren.
  5. Starte die App Python IDE direkt aus deiner App-Übersicht.

✨ Features & Funktionsumfang

🖥️ 1. Vollbild Drei-Tab-Benutzeroberfläche

Jede Hauptansicht nutzt die volle Bildschirmhöhe und -breite optimal aus:

  • 📝 Tab 1: Editor

    • Vollbild-Code-Editor mit Zeilennummern und dynamischem Syntax-Highlighting (PythonSyntaxHighlighter).
    • Quick-Access-Symbolleiste für schnelles Programmieren auf Touchscreens:
      • Tab-Taste für standardmäßige 4-Leerzeichen-Einrückung.
      • Schnelleingaben für häufige Python-Tokens (def, class, import, print, :, (), [], {}).
    • Statusanzeige für ungespeicherte Änderungen (●).
    • Zoom & Schriftgrößenanpassung.
  • 💻 Tab 2: Terminal

    • Vollbild-Streaming-Konsole für stdout und stderr in Echtzeit.
    • Automatische ANSI-Farbdarstellung via AnsiParser (z. B. farbige Status- oder Fehlerausgaben).
    • Ausführungszeit-Messung in Millisekunden (elapsedMs).
    • Autoscroll-Schalter, Copy-to-Clipboard und Clear-Funktion.
    • Stop-Schalter zur sauberen Unterbrechung laufender Skripte über KeyboardInterrupt.
    • Beim Klick auf Run ▶ wechselt die Ansicht automatisch in das Terminal.
  • 🌐 Tab 3: Web / Visual View

    • Integrierte visuelle Ausgabe für grafische Ergebnisse:
      • Matplotlib Plots: Automatisch erfasste Diagramme werden nahtlos hochauflösend gerendert.
      • Web-Dashboards: Generierte HTML/CSS/JavaScript-Dateien oder lokale HTTP-Server (z. B. http://localhost:8080) werden interaktiv im WebView dargestellt.
    • Badge-Indikator, sobald neue Visualisierungen verfügbar sind.

📊 2. WebView- & Visual-Output-Abfangen

  • Ausgabe-Erkennung: Wenn ein Skript HTML generiert oder Matplotlib-Plots erzeugt, wird dies automatisch abgefangen und bereitgestellt.
  • Matplotlib-Hook (runner_hook.py): Fängt plt.show() im Hintergrund ab, konvertiert Plots in In-Memory Base64-PNGs und leitet sie direkt an die Android-Ansicht weiter – ganz ohne Desktop-Display-Server.
  • Integrierte Android WebView-Komponente: Stellt interaktive HTML-Inhalte, SVG-Grafiken oder lokale Dashboards dar (unterstützt auch lokale Server auf Ports wie 8080).

📦 3. Enthaltene Python-Laufzeit & Pakete

Die IDE liefert eine vollständige, vorkonfigurierte Python 3.10 Umgebung mit folgenden nützlichen Paketen aus:

Paket Version Verwendungszweck
numpy 1.26.2 Schnelle Vektor- und Matrixberechnungen, lineare Algebra
matplotlib 3.6.0 2D/3D-Plots (wird automatisch im Visual View gerendert)
pillow 11.0.0 Bildverarbeitung und Bildmanipulation
pysolarmanv5 3.0.6 Modbus RTU/TCP-Kommunikation für Hardware- und IoT-Geräte
uModbus 1.0.4 Modbus-Protokoll-Implementierung
pyserial 3.5 Serielle Kommunikation
Python Standard Library 3.10 socket, threading, http.server, json, math, struct, urllib, ctypes, etc.

📂 4. Workspace- & Dateimanager

  • Slide-Out Drawer zur Verwaltung eigener Python-Skripte im App-Workspace:
    • Neue Dateien anlegen (.py, .json, .html, .txt).
    • Dateien umbenennen, speichern und löschen.
    • Reset-Funktion zur Wiederherstellung aller mitgelieferten Musterskripte.

💡 Enthaltene Beispielskripte & Showcase

Die IDE enthält verschiedene Beispielskripte, die das breite Einsatzspektrum demonstrieren:

  1. 1_matplotlib_waves.py – Wissenschaftliche Visualisierung

    • Berechnet Sinus- und Kosinuswellen mit NumPy und formatiert sie im Dark-Theme.
    • Der Plot erscheint direkt im Web / Visual View Tab.
  2. 2_numpy_matrix.py – Numerische Mathematik

    • Matrix-Multiplikation, Determinanten- und Inversionsberechnungen nativ auf dem Smartphone.
  3. 3_interactive_html_dashboard.py – Web-Generierung

    • Erzeugt ein interaktives HTML5/SVG-Dashboard, das direkt im WebView gerendert wird.
  4. deye_12k_inverter.py – IoT & Photovoltaik (Real-World Showcase)

    • Beispiel für hardwarenahe Netzwerkkommunikation via reine Python-Sockets.
    • Fragt einen Hybrid-Wechselrichter per Modbus TCP (Port 502) oder WLAN-Stick (Port 8899) im Heimnetzwerk ab.
    • Startet einen lokalen HTTP-Server im Hintergrund-Thread und streamt Telemetriedaten live in den Web / Visual View Tab.

🚀 Selbst kompilieren (Optional)

Wer die App selbst aus dem Quellcode bauen möchte:

Voraussetzungen

  • Android Studio (Koala / Ladybug oder neuer)
  • JDK 17
  • Android SDK (Min SDK: 24, Target SDK: 36)

Kompilieren & Installieren

  1. Repository klonen:
    git clone https://github.com/juergen874/Python-IDE-Runner.git
    cd Python-IDE-Runner
  2. Projekt über Gradle bauen:
    ./gradlew assembleDebug
  3. APK auf dem Smartphone / Emulator installieren:
    adb install -r app/build/outputs/apk/debug/app-debug.apk

🛠️ Technische Architektur

Schicht Technologie Beschreibung
UI & Presentation Jetpack Compose (Material 3) Reaktive Zustände via StateFlow im MainViewModel
Interpreter Core Chaquopy (Python 3.10) Nativer In-Process Python-Interpreter für Android
Output Interceptor runner_hook.py Leitet Python sys.stdout & sys.stderr in Echtzeit an Compose weiter
Visual Bridge Base64 Image & WebView Fängt Matplotlib-Figuren ab und stellt HTML/Webserver dar
Berechtigungen INTERNET, ACCESS_NETWORK_STATE Erlaubt Netzwerk-Sockets (z. B. für IoT, APIs oder lokale Webserver)

📄 Lizenz

Dieses Projekt ist unter der MIT-Lizenz lizenziert.

About

Android Python IDE and script runner powered by Chaquopy and Jetpack Compose with interactive terminal output.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages