Using Web Technologies For The Local User Interface
This is a rough concept for using web technologies for the local user interface, replacing the Swing-based user interface. The basic idea is this:
- The user downloads the software
- They start languagetool-standalone.jar
- A local webserver is started on port 8080 (other ports are tried automatically if 8080 is used already)
- The user's default web browser is started, showing http://localhost:8080, which looks a lot like languagetool.org today but with more features (set mother tongue, activate/deactivate rules, …)
- When the user checks a text, the API running at http://localhost:8080 is used
No features would be lost compared to before, as there's still the server part running which can e.g. store configuration files or show an LT icon in the task bar. In other words, we're not limited by what Javascript can do. Privacy is as good as with the old stand-alone version, as no personal data leaves the user's computer.
What's good about this?
- We'd be using the same technology for the stand-alone client and the web interface
- By doing so, the interface at languagetool.org would become complete, features like rule configuration would be added
- We'd be using technologies that are more widespread among developers than Swing is
- It's easy to add a "remote" mode, where a different LT server is used instead of the local one (e.g. to take advantage of the ngram data which is available on languagetool.org, but usually not locally)
What's bad about this?
- HTML + Javascript + CSS + server part is at least as complex as Swing
- It's a lot of work
Status
There's an incomplete prototype implementation, see page attachments. The main class to start is LocalWebAppConcept.
page revision: 5, last edited: 24 Sep 2020 07:47