-
Notifications
You must be signed in to change notification settings - Fork 5
Home
Mikhail Milikhin edited this page Apr 10, 2023
·
8 revisions
The key principles principles results in the following decisions.
The application consists of two components:
- Platform-specific GUI
The platform-specific application provides native UI.
For the current target platforms it is a pure QML application withpyotherside
being used when QML is not enough. - Platform-agnostic editor engine
HTML5 application for a WebView (the editor itself).
Hence all the core functionality is contained in a platform-independend web application.
UI and Editor interact using message-based (Pub/Sub-like) API. Message flow implementations may vary across supported platforms:
-
runJavaScript
andframescript:action
for Sailfish OS - websockets for Ubuntu Touch
The message-based API is the only way of interaction between the UI and the editor.
The only critical requirement for a target platform is a WebView component that could handle HTML5 code editor.
-
editor
- HTML5 Editor -
generic
- platform-independent components that can be used within native applications across different platforms-
py-backend
- pytotherside code, used to interact with the OS when QML is not enough. -
qml
- common QML components, contains Editor API implementation
-
-
harbour-seabass
- Sailfish OS application -
ubports-seabass
- UBports application
/harbour-seabass/qml/generic
and ubports-seabass/qml/generic
are links to generic/qml
directory.