Electron is a javascript framework to develop desktop applications. In this presentation we will discuss from a performance perspective, how we can solve different challenges involved in a desktop application.
2. About me 2
• Application developer for the past 12 years
• Works for Sahaj Software solutions (http://sahajsoft.com)
• Contributor to open source projects (https://github.com/mangroveorg/
datawinners)
• Likes to focus on technologies that can solve complex problems in a simple
way
• Worked extensively in ReactJS, Node and Javascript heavy applications
• Currently developing desktop applications for different clients
9. ❌It is not
• GUI (Graphical User interface) Library
✅It is
• Runtime on top of NodeJS runtime
• minimal Chromium browser
(libchromiumcontent - a lightweight /
single shared lib - includes all it’s
dependencies)
Fundamentals
Coming back
9
14. 14Advantage
What kind of problems electron can solve
Distributed applications
• thick clients
• sync with central server
• bring down the load on server side
• huge performance benefits both on client side and server
side
• example - Financial trading domain, Retail domain (point of
sale systems)
15. 15Advantage
What kind of problems electron can solve
Offline applications
• geographical locations (countries) where internet penetration
is less
• domains where problem logic can be handled on the client
side itself - example - Tax computation application - rules are
predefined and can be computed on the client side, at least
partially.
• Save and resume applications - example - editing a large
document and resuming the work (multiple days) and finally
submitting to server
16. 16Advantage
What kind of problems electron can solve
Computation heavy applications
• Data analytics and visualisation needs on client specific data
• Raw Data can be delivered to the client app from server and
thick client can take care to performing computations on top
of it
• Media processing (audio, video, image) are CPU and
memory intensive.
18. 18Advantage
Performance Benefits
Chrome’s V8 engine - high-level overview
- will come here
how electron can take advantage of chromium
- to achieve best performance
- low memory footprint
19. Showcase 19
Space radar
- Hard disk space analyser
- D3js based visualisations on top of the
analytics
- An open source electron application
- Available in github - https://github.com/
sairamindia/space-radar
- Forked from - https://github.com/zz85/space-
radar
21. Node’s Event driven architecture
bringing it to Desktop apps
21
- Node’s EventEmitter - overview
- How to take advantage of EventEmitters in
electron
- Demo of a simple app
- Async method invocation and how it can
benefit desktop apps