「これを解決するために、JavaScriptをラップする部分はフレームワーク化して、Rubyだけを書けばいいようにした。というわけでunloosenというフレームワークを紹介する」 お、フレームワーク作ったんだ強い #rubykaigi #rubykaigiC
2023-05-11 14:20:11ほえー、たしかにめっちゃシンプルになった。フレームワークにしちゃえばボイラープレート削れるしDSLも使えるからすごい良さそう。 #rubykaigi #rubykaigiC
2023-05-11 14:20:41おぉ、ポップアップも `popup.do` の中に書けばいいのか。めっちゃ書きやすそう #rubykaigi #rubykaigiC
2023-05-11 14:21:26「Unloosenの主要なポイント。1.ファイルを少なくすることができる。普通のChrome拡張よりファイル数を少なくできる。すべてのリクエストをアプリケーションにフィルタリングできるので、manifestでのフィルタリングをしなくても良くなる。」 #rubykaigi #rubykaigiC
2023-05-11 14:23:23「2. remote requireができる。require "test" としたら require_relative "./a" に書き換えて、それを取れるようパッチを当てている」 #rubykaigi #rubykaigiC
2023-05-11 14:24:39Chrome拡張だけに特化させたフレームワークかなるほど!これめちゃめちゃ頭いいすね👀 (JSのコードをすべてRubyでイイ感じに書けるようにラップすると、記述量が膨大になってしまうので1人でのメンテが現実的じゃなくなってしまう) github.com/aaaa777/unloos… #rubykaigi #rubykaigiC
2023-05-11 14:24:41「3. Live reload。require_remoteしたことによって、リロードで変更が反映できるようになった」 #rubykaigi #rubykaigiC
2023-05-11 14:25:11aaaa777/unloosen github.com/aaaa777/unloos… #rubykaigi #rubykaigiC
2023-05-11 14:25:14「4. シンプルな文法。トップレベルスコープにdocument, consoleなどを導入しておくことでシンプルに書けるようになった」 #rubykaigi #rubykaigiC
2023-05-11 14:26:27WebpackやRollupでのバンドルしんどいのすっっっっっっっっごいわかるンゴ #rubykaigi #rubykaigiC
2023-05-11 14:27:29「5. ブラウザーだけで完結するようにした。bundleやrollupなどは不要にしている」 #rubykaigi #rubykaigiC
2023-05-11 14:27:29「他のChrome拡張フレームワークとの比較。調べたところ2つくらいあったが、1つは10年くらい前にコミットが止まっていた。PlasmoはReactでChrome拡張が作れるもの。高機能だがビルドが必要。UnloosenはRubyで書けてシンプル」 #rubykaigi #rubykaigiC
2023-05-11 14:29:39「React知らないのでRubyでフレームワーク作った、好きだから」この熱量すき #rubykaigi #rubykaigiC
2023-05-11 14:29:45Ruby VMで300MB食うのわろた、大食いかわいいね(?) #rubykaigi #rubykaigiC
2023-05-11 14:30:06「UnloosenではRubyVMを立ち上げるので300MBくらいメモリを使ってしまう」 仕組み上しょうがないけど、なかなかクリティカルなやつだ #rubykaigi #rubykaigiC
2023-05-11 14:30:14