プレゼンツール作ってる 2

f:id:side_tana:20170514223627j:plain

変な角度なのは机の上が散らばってるからです。これでもなんか映り込んでるので、画面外はお察しという感じ。

異なるWindow間のデータの同期みたいなのがどうしてもテーマになってしまっていて,今は知見もないのでとにかく愚直にやっている.具体的には

ウィンドウ間で共有が必要なデータはメインプロセスで管理し,

  • メインプロセス
    • REQUEST_<何かしらのリソースの名前> イベントを受け, 現在のリソースを SYNC_<何かしらのリソースの名前> イベントで送り返す
  • ブラウザウィンドウ
    • ipcRenderer.on('SYNC_<何かしらのリソースの名前>') みたいな感じでデータを受ける準備をし
    • ipcRenderer.send('REQUEST_<何かしらのリソースの名前>') みたいなのを送る

みたいな感じ.実際にはこのウィンドウとこのウィンドウでは共有したいけど,別のウィンドウでは共有したくない,みたいな状況があるので (複数のドキュメントを開いている時にウィンドウ間でドキュメントの内容は共有したらはちゃめちゃになる,みたいなことです),もうちょっと丁寧にやっているのだけれど,丁寧というか複雑な感じで険しい.

ゴールデンウィーク中に redux middleware でガバっとやろうと取り組んでいて,値を外に送り出すところは簡単に出来たのだけれど,action をどこで発行するかで悩んでしまい進まなくなったので, 結局 redux ごと剥がしてしまって, componentDidMount で ipc 待ち受けて setState すればいっか,みたいな気持ちになって素朴な構造を積み上げまくる,みたいな方針になった.