Twitter 以上、ブログ未満

IT エンジニア。現在は働けておらず闘病中。いわゆる鬱です。

最近のアウトプット(と、Chrome 拡張開発の Tips とか)

はじめに

  • 自分は病気で何年も働けてないです
  • 調子が悪くて全く何もできない日も多いけど、調子のマシな日は 3〜4 時間くらいコードを書いたり勉強したりしてる(今はこれが限界)
  • 下記が最近作ったりメンテしてるものです

はてなブックマークの記事をキーワードやURLでミュートする Chrome/Firefox 拡張

chrome.google.com

  • ミュート機能以外にも便利機能たくさんあります。詳しくは 紹介記事(増田) をどうぞ
    • 個人的には、訪問済みの記事を薄くする機能がめっちゃ便利(自画自賛
  • ブコメFirefox 版も欲しい!との声をいくつか貰ったので Firefox 版 も出したら すごい感謝してもらえた
    • 働けなくなってから自分が書いたコードで感謝してもらえたのは初めてだったので嬉しかった
  • 非 React のアプリでも JSX で UI を記述したかったため、jsx-dom というのを使ったところ たいへん便利だった

はてなブログの購読リストの未読の数を表示する Chrome 拡張

chrome.google.com

Notion のページの目次を表示する Chrome 拡張、のメンテ

去年出したやつ。

chrome.google.com

  • React 使ってて、多数の state がすごい複雑に絡み合ってるんだけど、Jotai ( Recoil の API をさらにシンプルにしたみたいなライブラリ)を導入したところ、劇的にコードがシンプルになって感動した
    • 別に Redux Toolkit でもいいと思うけど、Redux Toolkit と違って非同期処理の絡む一連の処理をコードを分断せずにひとまとめに書けるところが良いと思う

Notion のページをどこでもポップアップ検索できる Chrome 拡張、のメンテ

去年出したやつ。

chrome.google.com

  • ありがたいことに、Issues とかメールで海外の方からよく機能の要望をいただく。
    • 要望全てに応えることはできてないけど、自分のプロダクトを通していろんな国の方とコミュニケーションが取れて楽しい。
  • 1枚の React アプリ。状態管理ライブラリは使っていない

Chrome 拡張の開発で共通してやってること

とにかく Vite Plugin (Rollup Plugin) が必須

  • これ( https://crxjs.dev/vite-plugin/
  • これがあるのと無いのでは開発の生産性が段違い
    • これがないとホットリロードできない。つまりコードを修正したらリロードボタンを押さなければならない。原始時代か。

テストを書く

  • chrome.*API を使っている箇所でも jest-chrome を使うと簡単に処理を mock/stub することができる
  • Puppeteer を使うと拡張を入れた Chrome を使って End-to-End テストが書けるそうだが、そこまで手が回っていない(やりたい)

CI を回す

  • テスト、型チェック、もろもろの Lint ( ESLint / Stylelint / Prettier ) を Github Actions で push をフックに実行してる
    • Stylelint のおすすめ設定は下記にまとめました

zenn.dev

Sentry で実行時エラーを回収する

sentry.io

  • ユニットテストを厚く書いてもエラーは出るときは出るので、そういうエラーは Sentry で回収する
  • センシティブ情報を送ってしまわないように注意する(送らない・マスクする)

ユーザーを増やすためにやったこと

今んところ、ユーザー数はそれぞれ 150 人ちょい。

ユーザーを増やすために、自分は SNS の発信力もないので、とにかく サムネにこだわった

一番重要なのは 220x140 のサムネ で、これは Chrome Web Store の検索結果に表示されるので、 これを機能が一目で分かる画像にする ことが重要。そうするようにしたらユーザー数が伸びるようになった気がする。

↓ サムネの例。機能を端的に表す画像にしてる。

終わりに:今後の展望

  • 今後も、社会活動のリハビリのために、あるいは学んだ技術を実践する場として、何かしら作ったりメンテし続けていきたい
  • 寄付ボタンを置く ... はもう少し先かな
    • 今の体調だと、せっかく寄付してもらっても満足いくスピードでメンテナンスできない可能性が大いにあるので
  • Chrome 拡張ばっかじゃなくて、もう少しサーバーが絡むアプリを作っていきたいなぁ、、(しかしネタが思いつかぬ)