Add abstraction layer to support different types of container (Electron, Tauri, ..)
nimo23 opened this issue · 1 comments
nimo23 commented
Feature Description:
Currently, Theia can run in the browser and in the electron container. To meet the need for other platforms (web, desktop, iOS app, Android app (see #14040)) it would be great to have an abstraction layer to add more container environments easily. In this case: Tauri (see https://v2.tauri.app/). With Tauri it is possible to create native apps for desktop and mobile devices using only HTML, CSS and JS. It would be nice to add Tauri support for Thea. This can be achieved, for example, by providing a (container packaging) interface layer with two implementations (or two package.json tasks), one for Electron and one for Tauri.
At the end it can be something like:
"scripts": {
"build:browser": "yarn --cwd browser-app bundle",
"build:electron": "yarn --cwd electron-app bundle",
"build:tauri": "...",
"prepare": "lerna run prepare",
"postinstall": "theia check:theia-version",
"start:browser": "yarn --cwd browser-app start",
"start:electron": "yarn --cwd electron-app start",
"start:tauri": "...",
"watch:browser": "lerna run --parallel watch --ignore electron-app",
"watch:electron": "lerna run --parallel watch --ignore browser-app",
"watch:tauri": "..."
},