Electron gets a bad rap for being a slow and resource-hungry wrapper around Chrome, but in reality, it's a very capable desktop application framework that's well-suited for building complex software. Leveraging the capabilities of Node.js, you can read and write files, work with databases, speak bespoke IP protocols to control connected devices, and then wrap it all up behind a responsive, quick, and friendly user interface.
In this session, we'll explore a successful Electron application that does all of those things. You'll learn about Electron's general architecture and how it works to make all these things happen. You'll hear about how the team of React, Redux and TypeScript all worked together to make this complex application robust and understandable. We'll talk about lessons learned while building this application, including how some realizations and subsequent refactors simplified it and made it faster and easier to implement new features. We'll cover what was done when performance problems reared their ugly heads so the application could easily handle a hundred state updates per second, smoothly updating metrics and plotting devices' positions on live maps. We'll also talk about what the stack's limitations are, so you know what Electron is good at, helping you to leverage its strengths and avoid its weaknesses.