Ein iPad als Computerersatz zu nutzen ist bei Aufgaben abseits der Entwicklung einfach — aber wie sieht es mit Coding aus? Hier ist ein vollständig portables VSCode-Setup, das sogar offline funktioniert.
Maschinell aus dem Englischen übersetzt, vom Autor geprüft.
Englisches Original
Kürzlich stand ich vor dem Problem, dass mir im Urlaub mein Hauptcomputer nicht zur Verfügung steht. Ich reise im Urlaub normalerweise nur mit einer leichten IT-Ausstattung, in diesem Fall meinem iPad Pro und ein paar Kabeln und Ladegeräten. Das ist eine bewusste Entscheidung, da ich nicht zu viel — im besten Fall gar keine — Zeit damit verbringen möchte, vor meinem Computer zu sitzen. Es gibt aber Situationen, in denen man schnell etwas reparieren muss: zum Beispiel, wenn eine meiner Webseiten kaputtgeht oder ein anderer Dienst nicht mehr läuft. Selbst wenn das theoretisch möglich wäre, ist es schwierig, solche Dinge auf einem Smartphone zu beheben, ohne eine IDE wie VSCode[arch] zur Verfügung zu haben.
Ich brauchte also ein Setup, mit dem ich zumindest dringende Dinge reparieren kann, ohne gleichzeitig in Versuchung zu geraten, mehr als das zu tun.
Warum iOS VSCode nicht nativ unterstützt
Apples iOS ist ein stark reglementiertes Betriebssystem. Das bringt viele Vorteile mit sich, hat aber auch Nachteile. Einer davon ist, dass man keine Apps installieren kann, die auf ein zugrunde liegendes Betriebssystem angewiesen sind. VSCode nutzt intensiv die vom Betriebssystem bereitgestellte Shell. Da iOS keine Shell bereitstellt, ist es schwierig, diese Apps zu portieren. Die App müsste eine komplette Linux-Distribution enthalten, um denselben Funktionsumfang bieten zu können.
Diese Einschränkung führt dazu, dass VSCode auf einem vollwertigen Betriebssystem laufen muss statt direkt auf dem iPad. Aber keine Sorge, es wird sich trotzdem so anfühlen, als würde es direkt auf deinem iPad laufen.
Hardware-Setup
Da wir ein portables und leichtes Setup aufbauen wollen, verwenden wir Komponenten, die auch abseits des Stromnetzes laufen können und eine kleine Bauform haben.
Stückliste
Raspberry Pi 4 (8GB)[arch]: du kannst auch die 4GB-Variante wählen, aber man kann nie genug Speicher haben!
USB-C-zu-USB-C-Kabel: Achte darauf, dass es Power Delivery und Datenübertragung unterstützt.
Micro-SD-Karte mit 128GB oder mehr. Ich selbst nutze eine SanDisk Ultra 400GB Class 10 Karte.
Gehäuse für den Raspberry Pi
iPad Pro mit USB-C-Anschluss
(Bluetooth-)Tastatur & Maus für das iPad
RPis USB-C-Port als Netzwerkschnittstelle einrichten
Wir konfigurieren den USB-C-Port des Raspberry so, dass er als Netzwerkkarte für dein iPad fungiert. Dadurch kann das iPad mit deinem Raspberry kommunizieren, während es gleichzeitig in seinem WLAN-Netzwerk bleibt, um internetbasierte Dienste nutzen zu können.
Verbinde dich per SSH mit deinem Pi und führe die folgenden Schritte aus. Alternativ kannst du deine SD-Karte an einem Computer einbinden und die Schritte 1-3 durch Bearbeiten der Dateien dort durchführen.
Bearbeite /boot/config.txt und füge dtoverlay=dwc2 hinzu. Dadurch wird der USB-OTG-Modus auf deinem Raspberry aktiviert.
Füge modules-load=dwc2 an das Ende von /boot/cmdline.txt an. Dadurch erhält der Kernel den Befehl, dieses Modul als Parameter zu laden
Falls SSH noch nicht aktiviert ist, aktiviere es, indem du eine leere Datei namens ssh in /boot/ anlegst. Das Anlegen aktiviert den SSH-Server beim nächsten Boot
Bearbeite /etc/modules und füge libcomposite in einer neuen Zeile am Ende der Datei hinzu. Dadurch wird sichergestellt, dass die USB-Gadget-Treiber geladen werden
Bearbeite /etc/dhcpd.conf und füge denyinterfaces usb0 hinzu. Da wir nicht wollen, dass unsere USB-Netzwerkschnittstelle von DHCP konfiguriert wird, schließen wir das hier explizit aus
Installiere dnsmasq mit sudo apt-get install dnsmasq. dnsmasq fungiert als DHCP-Server für die USB-basierte Netzwerkschnittstelle. Es stellt sicher, dass die Ethernet-Schnittstelle deines iPads eine IP-Adresse erhält.
Erstelle eine neue Datei /etc/dnsmasq.d/usbnetwork mit folgendem Inhalt:
Um VSCode auf dem Pi auszuführen und vom iPad aus zugänglich zu machen, verwenden wir code-server[arch]. Code-server verpackt VSCode und seine Abhängigkeiten in einen Dienst, auf den du über deinen Browser zugreifen kannst.
Code-server auf deinem Raspberry Pi installieren
Installiere yarn mit sudo apt-get install yarn
Installiere code-server global mit yarn global add code-server
Du solltest code-server jetzt mit yarn run code-server starten können
Passe die Code-Server-Konfiguration an deine Netzwerkkonfiguration an. Bearbeite ~/.config/code-server/config.yaml und füge folgende Konfiguration ein:
Deine code-server-Instanz sollte jetzt von deinem iPad aus über Safari oder einen anderen Browser unter https://raspberrypi.local:8080 erreichbar sein. Falls das nicht funktioniert, versuche, das WLAN auf deinem iPad vorübergehend zu deaktivieren. Du kannst es wieder aktivieren, nachdem VSCode in Safari geladen wurde.
An diesem Punkt solltest du die VSCode-Anmeldeaufforderung sehen, die nach dem Passwort (changeme) fragt, das wir in der YAML-Datei konfiguriert haben. Um VSCode korrekt nutzen zu können, müssen wir auf dem iPad noch weitere Konfigurationen vornehmen. Lies weiter!
Detailliertere Anweisungen zur Installation von code-server findest du hier[arch].
Code-server beim Systemstart automatisch starten
Damit code-server bei jedem Systemstart automatisch startet, müssen wir es bei systemd registrieren. Erstelle eine neue Datei /lib/systemd/system/code-server.service mit folgendem Inhalt:
Führe dann systemctl daemon-reload aus, um den neuen Dienst zu aktivieren.
Du kannst den Status von code-server nun mit systemctl status code-server prüfen. Er sollte dir mitteilen, dass er active (running) ist. Falls nicht, kannst du versuchen, ihn mit systemctl restart code-server neu zu starten.
VSCode zum Homescreen deines iPads hinzufügen
Der Zugriff auf VSCode über den Safari-Browser des iPads ist nicht ganz einfach, da VSCode Web-Sockets verwendet, um mit dem Backend zu kommunizieren, das auf deinem Raspberry Pi läuft. Damit diese Kommunikation funktioniert, muss die Verbindung verschlüsselt sein (HTTPS oder TLS). Glücklicherweise stellt code-server ein Zertifikat für dich bereit. Diesem Zertifikat muss auf dem iPad vertraut werden.
Zertifikat auf dem iPad importieren
Suche auf dem Raspberry nach der Datei ~/.local/share/code-server/raspberrypi_local.crt und kopiere sie auf dein iPad.
Öffne raspberrypi_local.crt in der Dateien-App und folge den Dialogen, um dem importierten Zertifikat zu vertrauen.
Öffne die Einstellungen-App und navigiere zu Allgemein -> Info -> Zertifikatsvertrauenseinstellungen (unten in der Liste) und aktiviere den Schalter Vollständiges Vertrauen für Root-Zertifikate aktivieren für das Zertifikat namens raspberrypi.local.
VSCode als Progressive Web App zum Homescreen hinzufügen
Öffne https://raspberrypi.local:8080 in Safari
Klicke auf das Teilen-Symbol
Wähle Zum Home-Bildschirm und vergib einen Namen
Du solltest jetzt VSCode öffnen können, indem du auf das gerade erstellte Symbol tippst.
Herzlichen Glückwunsch!
Du hast gerade ein vollständig portables Software-Entwicklungs-Setup erstellt, das sogar ohne Internetverbindung genutzt werden kann. Lass mich in den Kommentaren wissen, was du davon hältst!