Building a Web-IDE based on Eclipse Theia for Smart Home | EclipseCon Europe 2018
EclipseCon Europe 2018
Ludwigsburg, Germany · October 23 - 25, 2018
https://www.eclipsecon.org/europe2018
Speaker(s):
Jonas Helming (EclipseSource Munich)
https://www.eclipsecon.org/europe2018/sessions/building-web-ide-based-eclipse-theia-smart-home
This talk is an experience report on how to build a custom web-based IDE based on Eclipse Theia. We present a real-world example, that was recently implemented: an IDE to develop Smart Home applications. The tooling includes customized Java support via LSP, custom wizards, a form-based editor and code deployment. The talk will be focused on how to build web-based IDEs with Theia and no Smart Home knowledge is required to attend.
Theia is a new Eclipse project which is used create web-based tools analogous to the Eclipse tools platform for desktop-based tools. Although it is not quite as powerful in its current state, if a user only requires a focussed set of features and wants to avoid huge setup and deployment efforts, Theia is an excellent choice.
Developing Smart home applications is exactly such a use case. Developing Smart Home behavior is often only a few lines of code, but setting up a separate tool suite and deployment to embedded devices is a much larger burden.
Therefore, we developed a solution based on Eclipse Theia, which allows you to develop Smart Home Applications directly in the browser. The tooling itself runs on a Smart Home gateway, so that developed code can be immediately deployed and tested on a live system.
During the talk, we will explain and demonstrate how we added custom features to Theia to implement our use case. We highlight, which components are already available in Theia and can be reused (e.g. the language server), how to customize them if required, and how to implement missing pieces. Finally, we highlight best practises and pitfalls that we have experienced.
If you are interested in creating your own web-based tools, this talk will be a good jumpstart for you!