Electron - WebDeskApps

Ähnliche Dokumente
Dies ist der zweite Artikel einer Serie über Electron.

Node.js der Alleskönner. Kai Donato MT AG Ratingen

Eclipse Tutorial.doc

1. Python Interpreter installieren (WinPython)

APEX OOS TOOLS & HELFER

Kurze Einführung in die C++-Entwicklungsumgebung Visual Studio 2005

Tools zur Programmierung mit C Software Entwicklung 1

1 Haben Sie alles, was Sie benötigen?

Benutzer Installations-Anleitung Beispiel zur Applikation AHH

React in Apex Mit React zu noch besseren Apex Apps

Microsoft Visual Studio Code mit RPG und IceBreak

Entwicklungswerkzeuge & - methoden

Inhalt. Installieren Projekt erstellen UI Bedienen Objekte importieren Blueprints C++

Mit PL/SQL auf s ipad

Node.js Einführung Manuel Hart

Benutzung von Microsoft Visual Studio 2017

Microsoft Visual C

Whitepaper. Produkt: combit address manager & combit Relationship Manager. Debuggen von Scripts in Visual Studio 2005

JS goes mobile: Eine Übersicht. Frederik von Berg w11k / thecodecampus

Grundlagen der OO- Programmierung in C#

APEX DESKTOP APPS. Interaktion mit dem Client System

Handbuch. TC3 Remote Manager. TwinCAT 3. Version: Datum:

JetViewSoft Versions Update von V1.40 auf V1.50

Ausfüllen von PDF-Formularen direkt im Webbrowser Installation und Konfiguration von Adobe Reader

RRZK Universität zu Köln. Anleitung zur Installation und Konfiguration der Spectrum Protect (TSM) Client-Software unter dem Betriebssystem Windows

DOAG München Layout und dynamische Elemente für APEX Anwendungen

Programmieren mit Edipse 3

HTML. HyperText Markup Language. von Nico Merzbach

XPages Extensibility API going deep. René Winkelmeyer midpoints GmbH

RRZK Universität zu Köln. Installation und Konfiguration der Spectrum Protect (TSM) Client-Software unter dem Betriebssystem Windows

1. Briefing zur Übung IT-Systeme

Windows 10 Terminal Anleitung Vorher eine Sicherheitskopie von der termsrv.dll (C:\Windows\System32) und der win.ini (C:\Windows) erstellen.

Qt-Projekte mit Visual Studio 2005

APEX Datenverwaltung Wo sind die Daten gerade? Dr. Gudrun Pabst

Visual Basic Editor CATIA V5

Aufgabe 2.2. Folgende Schritte sollen durchgeführt werden:

Arbeiten mit Visual COBOL 3.0 for Eclipse. Rolf Becking 30. November 2017

Brownbag Zieht den Helm auf

Frank Bültge Thomas Boley. Das WordPress-Buch. Vom Blog zum Content-Management-System

Installation und Inbetriebnahme von Microsoft Visual C Community Edition

Programmieren mit Eclipse 3

Einrichten der TSM-Backup-Software unter dem Betriebssystem Windows

1. Übung IT-Management HTML, CSS und JavaScript Teil 2. Einführung, , PC Pool

Micro Focus Unit Testing Framework in Visual COBOL 3.0. Rolf Becking 29.August 2017

Autodesk CIVIL 3D Gert Domsch, CAD-Dienstleistung Hinweise zur Installation

Puppet. Modul Guide. Alexander Pacnik Karlsruhe,

Programmieren in Haskell Debugging

1. Tool-Designer Sketcher Installation

Zum Bearbeiten ins Backend einloggen

Literatur und Links. Webtechnologien SS 2017 Teil 1/Entwicklung

Installationsanleitung

Windows Einstellungen & win.ini Bearbeitung

Konfigurieren von verteilten Installationen

Modul Amazon Alexa. Installation. Installierbar auf Geräten der V3 Version ab Patch Level 1077.

React.js flottes Front-End für Domino. Knut Herrmann

TYP03. Ihr Einstieg -iftfdävcontent-management- System, inkl.-typoscript. Markt+Technik

4. AUFLAGE. Praxiswissen TYP03. Robert Meyer mit Olaf Clemens. O'REILLY* Beijing Cambridge Farnham Köln Sebastopol Taipei Tokyo

Dominik Doerner, Jonathan Bechtle ESCde

Einrichten der TSM-Backup-Software unter dem Betriebssystem Windows. Einrichten der TSM-Backup-Software unter dem Betriebssystem Windows

Webdesign im Tourismus

Einführung zum MS Visual Studio

Webtechnologien Teil 1: Entwicklungsumgebung(en)

Installation von Microsoft SQL Server 2014 Express in Verbindung mit Postbuch

AVR Studio 5: Ohne Schweiß kein Preis!

Installation. Wenn SPG-Verein nur an einem Arbeitsplatz genutzt werden soll, dann sollte diese Installationsart gewählt werden.

Vereinfachter Zugriff mit lfb-map

Einrichten einer Debug- Umgebung in Eclipse

Microsoft Visual C

Informationen zur Verwendung von Visual Studio und cmake

Formulare mit HTML. Beispiele. Beispiele & Nutzen. Web. Fach: Klasse: BW2. Datum: (Freitag) Agenda zu HTML und PHP

Im Mathe-Pool startet man Eclipse am besten aus einer Shell heraus, und zwar indem man im Home- Verzeichnis den Befehl

Einführung in Truevision3D

Oliver Brinkmann Java Swing-Applikationen & JApplets (mit NetBeans)

aibrowser Ausgabe

The app the crashes, before the breakpoint is reached: Code to the event:

Eclipse kann kostenlos unter dem folgenden Link herunter geladen werden:

PDF. PDF-Generierung aktivieren. Methode zum Erzeugen der PDFs. PDF-Format. Seitengröße. Anzunehmende Browserbreite

Frontend-Entwicklung mit JavaScript

21 Ein eigenes. Diskussionsforum. Bauen Sie auf Ihrer Website eine Community auf. Warum ein Diskussionsforum anbieten?

Borland C++ 5 Borland C++ 5 Borland C++ 5

Informationen zur Verwendung von Visual Studio und cmake

cytan cytansynchro Version 4.1 / Mai 2016 Letzte Softwareanpassung: Woche 17 / 2016

Die CO 2 Bank. 1. Inhaltsverzeichnis

PHP Debugging für.net Dummies (IIS WordPress PhpStorm Xdebug)

Transkript:

Electron - WebDeskApps Dies ist der dritte Artikel einer Serie über Electron. Im ersten Artikel wurden die Grundlagen von Electron, und die verschiedenen Ressourcen, die man benötigt um eine Electron-App zu entwickeln, beschrieben. In diesem Artikel wird erläutert, wie man dieses Tool installiert und eine einfache Electron- Applikation baut. In diesem Artikel konzentrieren wir uns auf die verschiedenen Möglichkeiten, eine Electron- Applikation zu debuggen. Übersicht: Demo-Projekt zum Debuggen Die Datei launch.json Die Erweiterung Debugger for Chrome Debugging einer Electron-Applikation Debugging des Main-Prozesses in Javascript Debugging des Main-Prozesses in Typescript Debugging eines Renderer-Prozesses in Javascript Debugging eines Renderer-Prozesses in Typescript Gleichzeitiges Debugging des Main-Prozesse und eines Renderer- Prozesses Next Demo-Projekt zum Debuggen Wir erstellen ein kleines Demoprojekt, um die Möglichkeiten des Debuggens mit VS Code zu verdeutlichen. Das Projekt hat den gleichen Aufbau wie das aus dem zweiten Artikel. Die Datei index.ts hat sich nicht geändert. Die Datei index.html verändern wir ein wenig, sie sieht jetzt so aus: <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>hello Electron!</title> </head> <body> <h1>hello Electron!</h1> Electron version <script>document.write(process.versions.electron)</script>

<br/> Chromium version <script>document.write(process.versions.chrome)</script> <br/> Node.js version: <script>document.write(process.versions.node)</script> <script> require('./renderer.ts') </script> </body> </html> Hier zeigt sich ebenfalls die Stärke von Electron: wir können Funktionalität durch Einbinden von Scripten durch die Angabe von require hinzufügen. Wir erzeugen also eine Typescript- Datei mit dem Namen renderer.ts und folgendem einfachen Inhalt: function sayhi() console.log('hi') sayhi(); Wir hätten natürlich auch eine renderer.js mit require einbinden können. Die Datei launch.json VS Code benötigt zum Debuggen die Datei launch.json, in der das Setup für das Debugging hinterlegt ist. Diese Datei kann mehrere Konfigurationen für das Debugging beinhalten. Die Datei launch.json lässt sich entweder manuell oder durch VS Code selbst erzeugen. Möchte man diese mit VS Code erzeugen, so muss man in der Debug-Ansicht eine neue Konfiguration anlegen. VS Code legt sofort die Datei an und lässt uns sofort eine Konfiguration auswählen. An dieser Stelle muss man wissen, welches Template man einfügen möchte, damit die manuellen Anpassungen möglichst gering ausfallen.

Die Datei launch.json wird im Verzeichnis.vscode gespeichert, was ebenfalls verdeutlicht, dass sie nur für VS Code gedacht ist. Die Erweiterung Debugger for Chrome Damit man mit VS Code acu Renderer-Prozesse debuggen kann, muss eine Erweiterung installiert werden. Dies gestaltet sich sehr einfach: im VS Code den Bereich für Extensions auswählen, nach der Extension suchen, diese installieren und anschließend VS Code neu starten. Debugging einer Electron-Applikation Eine Electron-Applikation besteht aus zwei Typen von Prozessen: dem Main-Prozess und dem Renderer-Prozess. Der Main-Prozess wird in Node.js ausgeführt, der Render-Prozeess dagegen im Chromium. Als Entwickler möchten wir deswegen vielleicht nur den Main- Prozess, oder nur den Render-Prozess, oder sogar beide debuggen. Daraus resultiert aber, dass man zwei Instanzen des Debuggers benötigt. Der Debugger für den Main-Prozess ist im Node.js enthalten, der Debugger für den Renderer-Prozess kommt als Erweiterung (Extension) für den Chrome-Browser daher. Wir haben, wenn wir Typescript benutzen, die Möglichkeit entweder den Typescript- oder den Javascript-Code zu debuggen. Mit Visual Studio Code ist beides möglich, je nach gewählter Konfiguration. Die verschiedenen Konfigurationsmöglichkeiten werden nun einzeln beschrieben. Debugging des Main-Prozesses in Javascript Die Datei launch.json sollte für unser Projekt folgendermaßen aussehen: // launch.json "version": "0.2.0",

"name": "Debug Electron Main Process", "type": "node", "cwd": "$workspaceroot", "$workspaceroot/node_modules/.bin/electron", "--remote-debugging-port=9222", "." "windows": "$workspaceroot/node_modules/.bin/electron.cmd", "program": "$workspaceroot/index.js", "protocol": "inspector", Der Name der Konfiguration sollte gut gewählt sein: kurz und eindeutig. Zu beachten sind auch noch zwei andere Punkte. Der erste ist der Pfad zu Electron (innerhalb des heruntergeladenen Paketes). Der zweite Punkt betrifft den Pfad zum Einstiegspunkt, d.h. in diesem Fall ist es die Datei index.js. Der Eintrag für runtimeargs ist von Bedeutung, wenn wir gleichzeitig den Main- und einen er-prozess debuggen möchten - für beide muss der gleiche Port konfiguriert sein. Nun kann man die Breakpoints in den Javascript-Dateien des Main-Prozesses setzen, die erstellte Konfiguration auswählen und mit dem Debugging anfangen. Debugging des Main-Prozesses in Typescript Die Konfiguration unterscheidet sich nicht von der Konfiguration, wie sie unter Debugging des Main-Prozesses in Javascript beschrieben worden ist. Damit man Typescript-Dateien debuggen kann, muss noch in der Datei tsconfig.json der Eintrag "sourcemap": true vorhanden sein. Dadurch wird eine *map-datei konfiguriert, die dann vom Debugger benutzt wird. Deswegen haben wir zwar als Einstiegspunkt die Datei index.js angegeben, aber gedebuggt wird die Datei index.ts. Nun kann man die Breakpoints in den Typescript-Dateien des Main-Prozesses setzen, die erstellte Konfiguration auswählen und mit dem Debugging anfangen.

Debugging eines Renderer-Prozesses in Javascript Die Datei launch.json sollte für unser Projekt folgendermaßen aussehen: // launch.json "version": "0.2.0", "name": "Debug Electron Renderer Process", "type": "chrome", "$workspaceroot/node_modules/.bin/electron", "windows": "$workspaceroot/node_modules/.bin/electron.cmd", "$workspaceroot/index.js", "--remote-debugging-port=9222" "webroot": "$workspaceroot" Wir teilen dem Debugger for Chrome mit, dass er den Port 9222 benutzen soll (das ist der Standardport). Anhand von webroot kann Chrome erkennen, wo sich die Sourcedateien befinden, die wir debuggen möchten. Nun kann man die Breakpoints in den Javascript-Dateien des Renderer-Prozesses setzen, die erstellte Konfiguration auswählen und mit dem Debugging anfangen. Da es sich um ein Renderer-Prozess handelt, wird der Breakpoint natürlich nur dann erreicht, wenn es etwas zum Rendern gibt (ein View > Reload sollte genügen). Debugging eines _Renderer_-Prozesses in Typescript Die Konfiguration unterscheidet sich nicht von der Konfiguration, wie sie unter Debugging eines Renderer-Prozesses in Javascript beschrieben worden ist. Damit man Typescript-Dateien debuggen kann, muss noch ein Eintrag in der Datei tsconfig.json; der Eintrag "sourcemap": true vorhanden sein. Dadurch wird eine *map-datei konfiguriert, die dann vom debugger benutzt wird. Deswegen haben wir zwar als Einstiegspunkt die Datei index.js angegeben, aber gedebuggt wird die Datei index.ts.

Nun kann man die Breakpoints in den Typescript-Dateien des Renderer-Prozesses setzen und mit dem Debugging anfangen. Da es sich um ein Renderer-Prozess handelt, wird der Breakpoint natürlich nur dann erreicht, wenn es etwas zum Rendern gibt (ein View > Reload sollte genügen). Gleichzeitiges Debugging des Main-Prozesse und eines Renderer-Prozesses Möchte man beide Prozesstypen gleichzeitig debuggen, so kombiniert man die obigen Konfigurationen und legt sie in der Datei launch.json ab. Um Javascript-Dateien zu debuggen, benötigen wir etwa folgende launch.json-datei für unser Projekt: // launch.json "version": "0.2.0", "name": "Debug Electron Main Process", "type": "node", "cwd": "$workspaceroot", "$workspaceroot/node_modules/.bin/electron", "--remote-debugging-port=9222", "." "windows": "$workspaceroot/node_modules/.bin/electron.cmd", "program": "$workspaceroot/index.js", "protocol": "inspector",, "name": "Debug Electron Renderer Process", "type": "chrome", "$workspaceroot/node_modules/.bin/electron", "windows": "$workspaceroot/node_modules/.bin/electron.cmd", "$workspaceroot/index.ts", "--remote-debugging-port=9222"

"webroot": "$workspaceroot" "compounds": [ "name": "Debug Electron All", "Debug Electron Main Process", "Debug Electron Renderer Process" Hier erkennt man, wie man Konfigurationen kombinieren kann. Damit man Typescript-Dateien debuggen kann, muss noch ein Eintrag in der Datei tsconfig.json; der Eintrag "sourcemap": true vorhanden sein. Next Im nächsten Artikel kümmern wir uns noch etwas um den Compiler und beginnen, eine kleine - aber nützliche - Electron-Applikation zu entwickeln. Wojciech Kusch