Electronアプリでパスワードを安全に保存する方法

Electronはデスクトップアプリであり、Cookieは使えない。
しかし認証情報をファイルに保存するわけにはいかない。
適切な保管場所は、macOSならKeychain、LinuxならKeyring、WindowsならCredential Vaultだろう。
これらプラットフォームに合わせた方法で保存できるモジュールを紹介する。

node-keytar

node-keytarは、atom製のキーチェーン管理モジュール。
プラットフォームの違いを意識せずに機密情報を読み書きできる。

続きを読む Electronアプリでパスワードを安全に保存する方法

Markdown-Itで独自レンダリングする方法

軽量でPluggableなJS製Markdownパーサ&レンダラのMarkdown-It
例えばaタグは全てtarget="_blank"にしたいなどの要求を実現するにはレンダラの処理を一部変更する必要がある。
その変更方法について説明する。

md.renderer.rulesを書き換える

以下のようにlink_openという名前のルールを書き換えることで、target="_blank"をデフォルトに出来る。

続きを読む Markdown-Itで独自レンダリングする方法

ElectronでデスクトップからD&Dでファイルを受け取る方法

FinderやエクスプローラなどからElectronアプリケーションにファイルをドラッグ&ドロップする操作を実現する方法について説明する。
すごく簡単。

まず以下のようにデフォルトの挙動をキャンセルする。

document.ondragover = document.ondrop = function (e) {
  e.preventDefault()
}

続きを読む ElectronでデスクトップからD&Dでファイルを受け取る方法

ElectronでエラーのStackを正しくsource mapする方法

Electronのrenderer側で、エラーのスタックトレースの位置が変という問題の解決方法。

webpackのコンパイル後の位置が表示される

エラーオブジェクトのstackプロパティをログなどに表示させると、トレース位置が全部コンパイル後のもので不便。
以下のような感じ。

non-source-mapped-stack

これでは使い物にならない。
続きを読む ElectronでエラーのStackを正しくsource mapする方法

React.js + Fluxでやりがちな失敗まとめ

ノートアプリを作りながら学んだ3つのこと

最近、Electron + ReactJS構成でノートアプリを作ってます。
拙作で使うのは両方とも初めてですが、軽く概要だけ知った状態から始めました。
そのためいろいろ転んだわけですが、たぶんこれから始め(てい)るみなさんにも参考になるんじゃないかと思ったので、その失敗をシェアしたいと思います。
もっといい方法あるよ!とかコメント欄などで教えていただけると幸いです 😉

本エントリでは、以下の3つのケースで自分がやりがちな失敗パターンを紹介します。

  1. 非同期処理の中途ステートを取り扱う
  2. アクションの結果を複数のストアに反映させる
  3. ReactJS/fluxと親和性の高いAPIを設計する

ただし、Flux実装は alt.js の使用を前提とします。
では、それぞれ詳しく説明します!

続きを読む React.js + Fluxでやりがちな失敗まとめ

HockeyAppがMicrosoftに買収されてて無料枠ができてた

ひゃっふう!!グッドニュース。
いや、めっちゃ古いネタなんだけど今気づきました。

HockeyAppっていうデスクトップアプリ向けのCrashlyticsとかCrittercismみたいな、クラッシュ解析ツールがあるんです。
これが、2年前にMicrosoftに買収されてました。

2014-12-11 – HockeyApp Joins Microsoft – HockeyApp Blog

We’re happy to share some exciting news with you: Microsoft has acquired HockeyApp!

で、昔は無料で使えなかったんですよね。
でも今みたら、2 Appsまで無料で使えるんですと!!!はい!!!神!!!

HockeyApp – Plans & Pricing

マイクロソフトさまぁ〜ありがとう〜。