<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title>Electron on Thorsten Hans</title>
		<link>https://thorsten-hans.com/tags/electron/</link>
		<description>Recent content in Electron on Thorsten Hans</description>
		<generator>Hugo</generator>
		<language>en-US</language>
		
		
		
		
			<lastBuildDate>Fri, 03 Mar 2017 00:00:00 +0000</lastBuildDate>
		
			<atom:link href="https://thorsten-hans.com/tags/electron/index.xml" rel="self" type="application/rss+xml" />
			<item>
				<title>Electron CrashReporter - stay up to date if your app fucked up!</title>
				<link>https://thorsten-hans.com/electron-crashreporter-stay-up-to-date-if-your-app-fucked-up/</link>
				<pubDate>Fri, 03 Mar 2017 00:00:00 +0000</pubDate>
				<guid>https://thorsten-hans.com/electron-crashreporter-stay-up-to-date-if-your-app-fucked-up/</guid>
				<description>&lt;p&gt;Every one of us knows about those situations. You ship your app to production and you&amp;rsquo;re instantly losing 10 pounds of weight 💪🏼 if nothing bad happens in the first 24 hours. You&amp;rsquo;re finally able to get some sleep, customers are happy, the manager is happy, &lt;em&gt;you are happy&lt;/em&gt;!&lt;/p&gt;&#xA;&lt;p&gt;But at some point in time your app will crash! It will definitely crash. No matter how professional you are, there are bugs! Customers will find them! And that&amp;rsquo;s &lt;strong&gt;okay&lt;/strong&gt;.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Integrating Angular and Electron using ngx-electron</title>
				<link>https://thorsten-hans.com/integrating-angular-and-electron-using-ngx-electron/</link>
				<pubDate>Fri, 24 Feb 2017 00:00:00 +0000</pubDate>
				<guid>https://thorsten-hans.com/integrating-angular-and-electron-using-ngx-electron/</guid>
				<description>&lt;p&gt;GitHub Electron makes crafting cross-platform desktop applications really simple. You can take any existing website or &lt;em&gt;Single Page Application&lt;/em&gt; (&lt;em&gt;SPA&lt;/em&gt;) and just wrap it into a native container. Those containers (powered by &lt;em&gt;Chromium&lt;/em&gt; and &lt;em&gt;Node.js&lt;/em&gt;) could easily be distributed to all major desktop operating systems like &lt;em&gt;Windows&lt;/em&gt;, &lt;em&gt;macOS&lt;/em&gt; or &lt;em&gt;Linux&lt;/em&gt;.&lt;/p&gt;&#xA;&lt;p&gt;On the other side is &lt;em&gt;Angular&lt;/em&gt; as a full-blown application framework for building robust &lt;em&gt;SPAs&lt;/em&gt;. &lt;em&gt;Angular&lt;/em&gt; makes building &lt;em&gt;SPAs&lt;/em&gt; fun and provides a rich set of APIs to get everything done, inside of the client. However, sometimes you need a deeper integration. For example, you want to call into &lt;em&gt;Electron&amp;rsquo;s&lt;/em&gt; main-process to execute some &lt;em&gt;Node.js&lt;/em&gt; script like reading files from a directory or do some other processing using &lt;em&gt;Node.js&lt;/em&gt;. In those cases, you could utilize &lt;em&gt;Electron&amp;rsquo;s&lt;/em&gt; APIs.&lt;/p&gt;</description>
			</item>
			<item>
				<title>HTML5 notifications in electron apps with Angular</title>
				<link>https://thorsten-hans.com/html5-notifications-in-electron-apps-with-angular/</link>
				<pubDate>Fri, 22 Jul 2016 00:00:00 +0000</pubDate>
				<guid>https://thorsten-hans.com/html5-notifications-in-electron-apps-with-angular/</guid>
				<description>&lt;p&gt;Within &lt;em&gt;Electron&lt;/em&gt; apps, you can use &lt;em&gt;HTML5 Notification API&lt;/em&gt; to keep users posted about events happened. &lt;em&gt;Electron&lt;/em&gt; is bridging incoming calls to &lt;em&gt;HTML5 Notification API&lt;/em&gt; to native notification APIs offered by all supported platforms.&lt;/p&gt;&#xA;&lt;h2 id=&#34;create-a-notification&#34;&gt;Create a notification&lt;/h2&gt;&#xA;&lt;p&gt;Creating new notifications is straightforward. An instance of the &lt;code&gt;Notification&lt;/code&gt; class is all you need. In the most basic shape, notification consists of a &lt;code&gt;title&lt;/code&gt;. Additional metadata could be provided by providing an object as the second parameter to the &lt;code&gt;Notification&lt;/code&gt; constructor, as demonstrated below with &lt;code&gt;body&lt;/code&gt;.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Using Augury inside of Electron Apps</title>
				<link>https://thorsten-hans.com/using-augury-inside-of-electron-apps/</link>
				<pubDate>Sat, 02 Jul 2016 00:00:00 +0000</pubDate>
				<guid>https://thorsten-hans.com/using-augury-inside-of-electron-apps/</guid>
				<description>&lt;p&gt;Writing apps using &lt;em&gt;GitHub&amp;rsquo;s Electron&lt;/em&gt; is a reasonably easy task. The framework and community-driven tools are taking away much pain from you as a developer. Nevertheless, it is essential to have powerful debugging tools working in every environment. &lt;a href=&#34;https://augury.rangle.io/&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;&lt;em&gt;Augury&lt;/em&gt;&lt;/a&gt;&#xA; (created by &lt;em&gt;Rangle.IO&lt;/em&gt;) is currently the most powerful debugging tool for &lt;em&gt;Angular&lt;/em&gt; developers. It&amp;rsquo;s a &lt;em&gt;Chrome Extension&lt;/em&gt; that works perfectly inside of the Browser, in this post, you&amp;rsquo;ll learn how to use &lt;em&gt;Augury&lt;/em&gt; inside of your &lt;em&gt;Electron&lt;/em&gt; apps.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Angular and Electron - The definitive guide</title>
				<link>https://thorsten-hans.com/angular-and-electron-the-definitive-guide/</link>
				<pubDate>Sun, 14 Feb 2016 00:00:00 +0000</pubDate>
				<guid>https://thorsten-hans.com/angular-and-electron-the-definitive-guide/</guid>
				<description>&lt;p&gt;Building cross-platform apps for desktop operating systems became simple compared to the past. With &lt;em&gt;GitHub&amp;rsquo;s Electron&lt;/em&gt; is a framework available that takes away the pain for abstracting all common platform APIs from us as web developers.&lt;/p&gt;&#xA;&lt;p&gt;&lt;em&gt;Electron&lt;/em&gt; makes it easy to host &lt;em&gt;Single Page Applications&lt;/em&gt; (short &lt;em&gt;SPAs&lt;/em&gt;) within a native application container which is available for &lt;em&gt;macOS&lt;/em&gt;, &lt;em&gt;Linux&lt;/em&gt;, and &lt;em&gt;Windows&lt;/em&gt;. When looking at &lt;em&gt;Electron&amp;rsquo;s&lt;/em&gt; architecture, you will find two main counterparts.&lt;/p&gt;</description>
			</item>
			<item>
				<title>NW.js and Electron compared</title>
				<link>https://thorsten-hans.com/nw-js-and-electron-compared/</link>
				<pubDate>Tue, 09 Feb 2016 00:00:00 +0000</pubDate>
				<guid>https://thorsten-hans.com/nw-js-and-electron-compared/</guid>
				<description>&lt;p&gt;I&amp;rsquo;ve spent much time doing cross-platform development over the past year with a significant workload on &lt;strong&gt;cross-platform desktop&lt;/strong&gt; development.&lt;/p&gt;&#xA;&lt;p&gt;During that time, I found some customers and blog readers asking me if they should go for &lt;strong&gt;NW.js&lt;/strong&gt; or if they should go direction &lt;strong&gt;Electron&lt;/strong&gt;. There is no quick answer to this question. It&amp;rsquo;s this kind of question that has to be answered with &lt;strong&gt;It depends&lt;/strong&gt;.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;p&gt;I&amp;rsquo;ve used both frameworks for real projects in the past, and both of them worked great for the given projects. Neither &lt;em&gt;Electron&lt;/em&gt; nor &lt;em&gt;NW.js&lt;/em&gt; is perfect (but they&amp;rsquo;re close to it) 😃. Each has its pitfalls. However, the communities behind those frameworks are fantastic and keep on answering quickly to questions popping up on GitHub or in tools like Gitter or Slack.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Setting Electron App-Icons for Windows from macOS</title>
				<link>https://thorsten-hans.com/setting-electron-app-icons-for-windows-from-macos/</link>
				<pubDate>Sat, 16 Jan 2016 00:00:00 +0000</pubDate>
				<guid>https://thorsten-hans.com/setting-electron-app-icons-for-windows-from-macos/</guid>
				<description>&lt;p&gt;When building cross-platform apps using &lt;em&gt;GitHub Electron&lt;/em&gt;, you may run into the same issue I did a few days ago. I wanted to build an &lt;em&gt;Electron&lt;/em&gt; app for &lt;em&gt;Windows&lt;/em&gt; and &lt;em&gt;macOS&lt;/em&gt; directly from my host-system (also &lt;em&gt;macOS&lt;/em&gt;). The build-process failed because setting the &lt;em&gt;Windows App&lt;/em&gt; Icon didn&amp;rsquo;t work for me when building it from the &lt;em&gt;Mac&lt;/em&gt;.&lt;/p&gt;&#xA;&lt;p&gt;I was using &lt;code&gt;gulp-atom-electron&lt;/code&gt; to build the apps automatically. It has a dependency on &lt;code&gt;rcedit&lt;/code&gt; which is a small Windows executable that is responsible for updating either &lt;em&gt;Windows Assemblies or Windows Executables&lt;/em&gt; to make resource changes from outside. &lt;em&gt;GitHub&lt;/em&gt; itself has published a corresponding npm module which uses &lt;code&gt;wine&lt;/code&gt; to execute &lt;code&gt;wine rcedit app-name.exe --set-icon app-icon.ico&lt;/code&gt; if you&amp;rsquo;re executing the code on a &lt;em&gt;macOS&lt;/em&gt; or &lt;em&gt;Linux&lt;/em&gt; system.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Building an electron app using Angular Beta0 in TypeScript</title>
				<link>https://thorsten-hans.com/building-an-electron-app-using-angular-beta0-in-typescript/</link>
				<pubDate>Thu, 07 Jan 2016 00:00:00 +0000</pubDate>
				<guid>https://thorsten-hans.com/building-an-electron-app-using-angular-beta0-in-typescript/</guid>
				<description>&lt;p&gt;You can build Angular apps using plain old &lt;em&gt;JavaScript&lt;/em&gt; and &lt;em&gt;TypeScript&lt;/em&gt;. I&amp;rsquo;ve been using plain JavaScript for the past &lt;em&gt;Angular&lt;/em&gt; demonstrations, because I felt in love again with &lt;em&gt;JavaScript&lt;/em&gt; after spending years with &lt;em&gt;CoffeeScript&lt;/em&gt; (But that&amp;rsquo;s a different story). However, teams at Google and Microsoft were working together in these days to marriage &lt;em&gt;Angular&lt;/em&gt; and &lt;em&gt;TypeScript&lt;/em&gt;. If you don&amp;rsquo;t know &lt;em&gt;TypeScript&lt;/em&gt; yet, go and learn it. It will change the way how you write Frontend stuff in the upcoming years. You can think of it as todays *&lt;em&gt;JavaScript&lt;/em&gt; on steroids. It makes you more productive, it makes your code more robust, you&amp;rsquo;ve to write less plumbing because the &lt;em&gt;TypeScript Compiler (TSC)&lt;/em&gt; generates all the good parts of &lt;em&gt;JavaScript&lt;/em&gt; and knows about the edge-cases.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Angular goes cross platform with GitHub Electron</title>
				<link>https://thorsten-hans.com/angular-goes-cross-platform-with-github-electron/</link>
				<pubDate>Mon, 16 Nov 2015 00:00:00 +0000</pubDate>
				<guid>https://thorsten-hans.com/angular-goes-cross-platform-with-github-electron/</guid>
				<description>&lt;p&gt;A while ago I&amp;rsquo;ve posted a &lt;a href=&#34;https://github.com/ThorstenHans/electron-angular-es6&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;sample on how to write an electron app using Angular 1.x with ES2015 and JSPM&lt;/a&gt;&#xA;.&lt;/p&gt;&#xA;&lt;p&gt;Now having more than 100 stars on &lt;em&gt;GitHub&lt;/em&gt;, it seems to be quiet important for the community. That&amp;rsquo;s why I&amp;rsquo;ve decided to take this sample to another level.&lt;/p&gt;&#xA;&lt;p&gt;Angular2 is becoming more severe with each day. That&amp;rsquo;s why I&amp;rsquo;ve decided to publish another electron sample targeting Angular2. &lt;a href=&#34;https://github.com/ThorstenHans/electron-es2015-ng2&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Go and visit the repo right here on &lt;em&gt;GitHub&lt;/em&gt;&lt;/a&gt;&#xA;&lt;/p&gt;</description>
			</item>
			<item>
				<title>Frontend Builds 3 - Cross Platform Desktop Builds</title>
				<link>https://thorsten-hans.com/frontend-builds-3-cross-platform-desktop-builds/</link>
				<pubDate>Thu, 15 Oct 2015 00:00:00 +0000</pubDate>
				<guid>https://thorsten-hans.com/frontend-builds-3-cross-platform-desktop-builds/</guid>
				<description>&lt;h2 id=&#34;the-frontend-builds-article-series&#34;&gt;The Frontend Builds article series&lt;/h2&gt;&#xA;&lt;p&gt;Welcome to the third part of this article series. If you didn&amp;rsquo;t read the other parts, check them out now.&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://thorsten-hans.com/frontend-build-series-introduction/&#34;&gt;Introducing the Frontend Builds Article Series&lt;/a&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://thorsten-hans.com/frontend-builds-1-getting-started/&#34;&gt;Frontend Builds 1: Getting Started &lt;/a&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://thorsten-hans.com/frontend-builds-2-readable-and-pluggable-gulp-files/&#34;&gt;Frontend Builds 2: Readable and Pluggable Gulpfiles  &lt;/a&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;👉🏻 &lt;a href=&#34;https://thorsten-hans.com/frontend-builds-3-cross-platform-desktop-builds/&#34;&gt;Frontend Builds 3: Cross-Platform Desktop Builds&lt;/a&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://thorsten-hans.com/frontend-builds-4-building-cross-platform-mobile-apps/&#34;&gt;Frontend Builds 4: Building Cross-Platform Mobile Apps&lt;/a&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://thorsten-hans.com/frontend-builds-5-build-as-a-service-baas/&#34;&gt;Frontend Builds 5: Build as a Service (BaaS)&lt;/a&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://thorsten-hans.com/frontend-builds-6-configurable-builds/&#34;&gt;Frontend Builds 6: Configurable builds&lt;/a&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://thorsten-hans.com/frontend-builds-7-conditional-build-tasks/&#34;&gt;Frontend Builds 7: Conditional Build Tasks&lt;/a&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;the-idea&#34;&gt;The idea&lt;/h2&gt;&#xA;&lt;p&gt;Frontend Apps can quickly be built for a various range of platforms. You can use &lt;a href=&#34;http://cordova.apache.org&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Apache Crodova&lt;/a&gt;&#xA; for building cross-platform mobile apps. For building cross-platform desktop apps, you can either use Electron or &lt;a href=&#34;http://nwjs.io&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;NW.js&lt;/a&gt;&#xA;.&lt;/p&gt;</description>
			</item>
			<item>
				<title>When Electron&#39;s window.setTitle keeps you driving crazy</title>
				<link>https://thorsten-hans.com/when-electrons-window-settitle-keeps-you-driving-crazy/</link>
				<pubDate>Wed, 06 May 2015 00:00:00 +0000</pubDate>
				<guid>https://thorsten-hans.com/when-electrons-window-settitle-keeps-you-driving-crazy/</guid>
				<description>&lt;p&gt;As a reaction on my initial post about Electron, &lt;a href=&#34;https://github.com/ingorichter&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Ingo Richter&lt;/a&gt;&#xA; came up with a comment on setting the window&amp;rsquo;s title. He described that he get errors when trying to set the window title to the app&amp;rsquo;s name.&lt;/p&gt;&#xA;&lt;p&gt;&lt;code&gt;browser-window&lt;/code&gt; is exposing the &lt;code&gt;setTitle&lt;/code&gt; function and &lt;code&gt;app&lt;/code&gt; is exposing the &lt;code&gt;getName&lt;/code&gt; function. So my first impression was “well, that should be easy to realize”, but there is on common pitfall that I realized when trying to set the title of the window – which I&amp;rsquo;d like to share with you.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Packaging Electron apps as ASAR archive using Gulp.js</title>
				<link>https://thorsten-hans.com/packaging-electron-apps-as-asar-archive-using-gulp/</link>
				<pubDate>Tue, 05 May 2015 00:00:00 +0000</pubDate>
				<guid>https://thorsten-hans.com/packaging-electron-apps-as-asar-archive-using-gulp/</guid>
				<description>&lt;p&gt;A couple of weeks ago I open-sourced a sample on how to build an electron app using Angular and ES6. The sample has become popular on Github, so I sat down and updated the sample a bit. All changes are about distributing the electron app.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://github.com/ThorstenHans/electron-angular-es6&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;https://github.com/ThorstenHans/electron-angular-es6&lt;/a&gt;&#xA;&lt;/p&gt;&#xA;&lt;p&gt;Instead of writing down all the bits, I&amp;rsquo;ve started Camtasia and recorded a short webcast.&lt;/p&gt;&#xA;&lt;p&gt;I&amp;rsquo;ll explain all the required steps from 0 to the final &lt;code&gt;app.asar&lt;/code&gt; package in these 11 minutes. Enjoy&lt;/p&gt;</description>
			</item>
			<item>
				<title>Writing an Electron app using Angular and ES6</title>
				<link>https://thorsten-hans.com/writing-an-electron-app-using-angular-and-es6/</link>
				<pubDate>Mon, 04 May 2015 00:00:00 +0000</pubDate>
				<guid>https://thorsten-hans.com/writing-an-electron-app-using-angular-and-es6/</guid>
				<description>&lt;p&gt;If you haven&amp;rsquo;t heard of &lt;em&gt;Electron&lt;/em&gt; (formerly known as &lt;em&gt;Atom Shell&lt;/em&gt;) you should check out it&amp;rsquo;s official website &lt;a href=&#34;https://github.com/atom/electron&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;here&lt;/a&gt;&#xA;.&lt;/p&gt;&#xA;&lt;p&gt;In this post, I will not provide an introduction for all the different tools and frameworks. It&amp;rsquo;s more a walkthrough that should give you some hints on how to get things up and to run with the following stack.&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://github.com/atom/electron&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Electron&lt;/a&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;http://angularjs.org&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Angular.JS&lt;/a&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;ES6 using &lt;a href=&#34;https://babeljs.io&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Babel&lt;/a&gt;&#xA; as transpiler&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://github.com/systemjs/systemjs&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;SystemJS&lt;/a&gt;&#xA; as module-loader&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;getting-started&#34;&gt;Getting started&lt;/h2&gt;&#xA;&lt;p&gt;First of all, you&amp;rsquo;ve to ensure that all dependencies are installed on your system and a simple folder structure has been created for the sample project.&lt;/p&gt;</description>
			</item>
	</channel>
</rss>
