codexa / firetext

[NOT MAINTAINED] Word Processing App 📝 📖
https://marketplace.firefox.com/app/firetext
38 stars 28 forks source link

[Strategize] Modularity #208

Open ferndot opened 10 years ago

ferndot commented 10 years ago

Objectives for this discussion:

All comments are welcome!

ferndot commented 10 years ago

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.

twiss commented 10 years ago

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
ferndot commented 10 years ago

@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?

twiss commented 10 years ago

Sounds good to me. Candidates for modules:

jackd1 commented 10 years ago

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

jackd1 commented 10 years ago

E.G. the file system api

Ryuno-Ki commented 10 years ago

@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.