firetext icon indicating copy to clipboard operation
firetext copied to clipboard

[Strategize] Modularity

Open ferndot opened this issue 11 years ago • 7 comments

Objectives for this discussion:

  • [ ] Decide upon an effective modularization strategy.
  • [ ] Write a wiki page explaining that strategy.
  • [ ] File bugs for the implementation of the strategy.

All comments are welcome!

ferndot avatar Nov 07 '14 21:11 ferndot

I have been implementing a basic modularization strategy without defining it. This could cause problems for Firetext, so I have created an issue for us to discuss it.

Current concept

Parent

Definition: The parent is the core process and layout of the app. It serves as a hub, connecting all of the modules and components.

Components

Definition: Components are bundled sections of the app. They are inserted directly into the main layout. Possible implementation: <component data-name="foo"></component> where foo is the component's name. This tag will be replaced with the contents of the component file.

Modules

Definition: Modules are independent and self-contained sections of the app. Modules, unlike Components, are loaded in <iframe> elements, and communicate with the parent through messages.

Please feel free to propose different ideas, or change the existing ones.

ferndot avatar Nov 07 '14 21:11 ferndot

Possibly web components are applicable here. I've never used them though.

It would be great if components

  1. Could be used in Firetext without having to rewrite everything
  2. Could encapsulate the difference between desktop and mobile, as I proposed in #203
  3. There were already a few ready-to-use components useful to us

twiss avatar Nov 07 '14 23:11 twiss

@twiss: web components sound great. Mozilla has a cross-browser polyfill for them here: http://www.x-tags.org/.

IMO we should still use our custom system for Modules. IIRC, <iframe>s offer performance and security benefits. In fact, I believe that Firefox OS uses frames extensively for that purpose. What are your thoughts?

ferndot avatar Nov 08 '14 03:11 ferndot

Sounds good to me. Candidates for modules:

  • Editor
  • File system
  • UI extensions, such as sharing documents or so

twiss avatar Nov 08 '14 12:11 twiss

Note that some filesystems are capable of working in a worker thread, so that might be a possibility.

jackd1 avatar Nov 08 '14 12:11 jackd1

E.G. the file system api

jackd1 avatar Nov 08 '14 12:11 jackd1

@twiss: web components sound great. Mozilla has a cross-browser polyfill for them here: http://www.x-tags.org/.

FWIW: Google's approach is called Polymer.

Ryuno-Ki avatar Nov 10 '14 10:11 Ryuno-Ki