Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Space City JS — Using Electron & React to Build N1

Space City JS — Using Electron & React to Build N1

Using Electron & React to Build N1: The Open Source Email Client or "Standing on the Shoulders of Giants"

Evan Morikawa

May 14, 2016
Tweet

More Decks by Evan Morikawa

Other Decks in Technology

Transcript

  1. Using Electron & React to Build N1: The Open Source

    Email Client Evan Morikawa | @e0m | [email protected] | May 14 2016 Nylas
  2. How do we: Deliver to the desktop Support 3rd party

    plugins Keep data & view in sync Work offline Keep it performant Pay it forward
  3. How do we: Deliver to the desktop Support 3rd party

    plugins Keep data & view in sync Work offline Keep it performant Pay it forward
  4. Chromium Browser aka Backend aka Main Process C++ Renderer Renderer

    Renderer HTML / JS (DOM) HTML / JS (DOM) HTML / JS (DOM)
  5. Chromium Browser aka Backend aka Main Process C++ Renderer Renderer

    Renderer HTML / JS (DOM) HTML / JS (DOM) HTML / JS (DOM) ipc
  6. Browser aka Backend aka Main Process Renderer Renderer Renderer HTML

    / JS (DOM) HTML / JS (DOM) HTML / JS (DOM) ipc
  7. How do we: Deliver to the desktop Support 3rd party

    plugins Keep data & view in sync Work offline Keep it performant Pay it forward
  8. How do we: Deliver to the desktop Support 3rd party

    plugins Keep data & view in sync Work offline Keep it performant Pay it forward
  9. const q = `SELECT * FROM threads WHERE …` Rx.Observable.fromQuery(q)

    .filter(myFn).subscribe((threads) => { this.setState({threads}) })
  10. const q = `SELECT * FROM threads WHERE …` Rx.Observable.fromQuery(q)

    .filter(myFn) .map(mapFn).subscribe((threads) => { this.setState({threads}) })
  11. How do we: Deliver to the desktop Support 3rd party

    plugins Keep data & view in sync Work offline Keep it performant Pay it forward
  12. How do we: Deliver to the desktop Support 3rd party

    plugins Keep data & view in sync Work offline Keep it performant Pay it forward
  13. How do we: Deliver to the desktop Support 3rd party

    plugins Keep data & view in sync Work offline Keep it performant Pay it forward
  14. How do we: Deliver to the desktop Support 3rd party

    plugins Keep data & view in sync Work offline Keep it performant Pay it forward