3liz / lizmap-rfc

Lizmap Request For Comment
2 stars 0 forks source link

Lizmap as a framework to build web mapping applications #2

Open pcav opened 5 years ago

pcav commented 5 years ago

Lizmap RFC: Lizmap as a framework to build web mapping applications

Date 2019/07/30

Author Paolo Cavalini (@pcav )

Contact

maintainer @pcav

Version Lizmap-Web-Client 4.0

Summary

Does it make sense to share some of the components with other projects, e.g. https://github.com/qgis/qwc2-demo-app/blob/master/doc/QWC2_Documentation.md#quick-start ?

Proposed Solution

Structured and documentation about:

Backwards Compatibility

Keep some part of the already API like the capability to add widgets in the docks.

Issue Tracking ID(s)

https://github.com/3liz/lizmap-rfc/issues/1

Votes

(required)

nboisteault commented 5 years ago

QWC2 is based on ReactJS which is different of web components.

rldhont commented 5 years ago

I rewrote this RFC

rldhont commented 5 years ago

@pcav I have rewritten the issue based on the template.

The idea under lizmap 4 is also to provide a framework, but to do so we have to provide a documentation of the elements and the API.

@nboisteault how to document JavaScript ?

pcav commented 5 years ago

Thanks @rldhont for the rewrite - I was not sure this small note deserved full attention.

pcav commented 5 years ago

@nboisteault sure, React has to be avoided,but perhaps other tools could be reused? The idea is reducing duplication of efforts and sharing the burden of basic application. Maybe we should discuss the other way around, what is the specificity of Lizmap compared to other solutions? To me it's mainly the ease of installation together with a ready to use complete set of features, especially permission management and online editing. Also being able to do almost all the configs graphically is a major advantage.

nboisteault commented 5 years ago

@pcav which tools do you think at ? How could we reuse those tools ?

pcav commented 5 years ago

I don't know qwc2 well enough to say. From what I read, their approach is modular, and some tools (e.g. permalink generation, elevation queries) seem reusable. See https://github.com/sourcepole/qwc2-server

nboisteault commented 5 years ago

@pcav Your link shows Python code.

pcav commented 5 years ago

Correct. The services are Flask applications, written in Python.

rldhont commented 5 years ago

@pcav we would like to avoid dependencies to ReactJS, VueJS, AngularJS, Polymer, LitElement or other JavaScript framework. Even if they seem cool, they add dependencies to non standard elements.

To be reusable, Lizmap will proposed HTML Web Components based on W3C standard https://developer.mozilla.org/en-US/docs/Web/Web_Components

We will provide Lizmap JavaScript specific modules and some generic classes like the Dispatcher.

pcav commented 5 years ago

It makes a lot of sense to me.

Raruto commented 5 years ago

Given that neither do I'm crazy about React (and anything else that isn't js native), but:

Have a good day, Raruto

rldhont commented 5 years ago

We have studied all other frameworks:

None has convinced us.

We don't want other langages than EcmaScript (VanillaJS), HTML and CSS. So React or Preact are excluded because of JSX a faster, safer, easier JavaScript. And we don't want TypeScript.

Raruto commented 5 years ago

We have studied all other frameworks, none has convinced us. We don't want other languages than EcmaScript (VanillaJS), HTML and CSS.

I reiterate that I fully agree with your choice (and it is also for the same reason that I am generally against choosing to developing another shiny new javascript "framework").

Anyway, is there already a summary of which web components or classes you are intending to use? and how it would work this stuff put all together? (folders, extensions, hooks, signals, events, ...)


PS: React JSX is not JSX: a faster, safer, easier JavaScript (which are however not required to work with p/react).

nboisteault commented 5 years ago

@Raruto We are working on this branch. We are just beginning as you'll see.