Jan 13, 2007

Split Browser開発のよもやま話(1):コンセプト確定まで

Split Browserを作るに至った経緯とかその辺の話。拡張機能勉強会なんてのも開催されるので、まあ、もしかしたら誰かの何かの役に立つかもなあ、と。のべ時間にして24時間くらいでできたんで、割と細かいところまで覚えてるからというのも理由の一つではあるんだけど。

  1. コンセプト確定まで(このエントリ)
  2. 小型ブラウザの制作
  3. 入れ子構造の制作
  4. 入れ子構造の試行錯誤
  5. 小型ブラウザの削除の仕組みの制作
  6. 小型ブラウザの作り込み
  7. 状態の保存と復元の仕組みの制作
  8. 「上/下/左/右に分割」ボタンの実装
  9. ポップアップボタン上へのドラッグ&ドロップの検知

前のエントリでもちょこっと触れてるとおり、当初はコンテントホルダーをFirefox 2向けに更新しようというのが目標だった。作りっぱなしで放置してたんで、ちゃんと動くのかどうか検証しときたいなというのもあったし。

でも実はあんまり気乗りしなくて。コンテントホルダーは、作ってはみたものの自分では使っていない技術的検証とか練習とか冗談とかそういう種類の制作物の一つで、これがないと困るとかそういう危機感はなかった。だから、できれば、他の人の作ったより出来のいい拡張機能があれば「今後はそっち使ってください」と誘導して終わりにしようかとも思ってた。

そういうわけで類似の拡張機能を探してみたら、Split Panelというのが見つかった。ブラウザの左に現在のページを開く、というごくシンプルなもの。 (スクリーンショット)

また、Firefoxに最初からある機能を使っても似たようなことはできる。ブックマークのプロパティで「このブックマークをサイドバーに読み込む」にチェックを入れれば利用できる、「Webパネル」という仕組みがそれ。 (スクリーンショット) ただ、いちいちブックマークを作らないといけないのと、管理の方法を工夫しないといけないのとで、気軽にはお勧めし辛いところもある。Ez Sidebarを使えば単純なドラッグ&ドロップでも同じことができるようにはなるけど、利用者の感覚としては、なんとなく遠回りしてるなー感は否めない。

こうして見ていると、コンテントホルダーにはできて他の拡張機能にはできない特徴があることに気付いた。それは、コンテントホルダーはウィンドウ内の上下左右好きな位置に動かせるという点。Ez Sidebarでサイドバーを分離すれば似たようなことはできるし、Split PanelでもuserChrome.cssを使えば配置は自由に動かせる。ただ、そのためだけにEz Sidebarを入れるのは嫌だろうし、userChrome.cssを使ったカスタマイズはそれなりの知識が要求される。GUI上で簡単な操作で場所を変えられるのは大きな利点と言っていいと思う。この点がクリアされない限り、コンテントホルダーを捨てて他の拡張機能に乗り換えてくださいと言うのは難しい。

逆に、これらの拡張機能全てに共通する制限にも気がついた。それは、いずれの場合も「ブラウザウィンドウを2分割するだけで、他にいくつも分割できるようにはなっていない」という点。実際の所、実用性を考えると2分割で十分に目的を果たせる場合がほとんどだと思うんだけど、しかし「できるけどしない」のと「できない」では、後者のままだとなんだか負けたような気がしてしまう(何に?)。

しかしそもそも、そんだけ複雑な使い方がしたいんだったらウィンドウ二つ並べりゃいいんじゃね? というのはコンテントホルダーやEz Sidebarを作った当初からずっと思っていたことで、実際自分もそれで不便感じてなかったし、そんな複雑な機能を実装するのはとても自分には無理だ!という諦めもあったから、今までその点にはずっと触れないでいた。

でもそんな気持ちでコンテントホルダーのソースを眺めてたら、もっと上手く作り込めば分割後の「小さなブラウザ」を一つだけじゃなく無限に増やせるようにできそうだ、ということに気が付いた。

「できないからしなかった」ではなく「できそうだけどしてなかった」という状態だということが分かってみると、後はもう、やる気・モチベーションの問題だけになってくる。「今のコンテントホルダーをメンテナンスするのはまっぴらごめんだ」という思いと、「何か新しいことをやってみたい」という思いとが交錯して、だんだんモチベーションも高まってきた。

……という風な過程を経て、やりたいこと・するべきことがだんだん明確になってきた。まとめると以下のようになる。

  • 上下左右好きな方向に分割できるようにする(コンテントホルダーの特長の継承)
  • 読み込んだ内容を保存・復元できるようにする(同上)
  • 2分割以上できるようにする(新しい特長)

これらの機能を備えた拡張機能を、可能な限り少ない手間で制作する。ということを目標にして、早速着手してみた。

あと、裏の目標として「上下左右好きな方向に好きなだけいくらでも分割できます。飽きるまで分割しまくって下さい。」とさらっと言えるようになると面白そうだ、というのもあった。OperaがまだMultiTorg Operaだった頃に備えていて、タブブラウズがデフォになった今ではすっかり過去の遺物になってしまったような機能を、わざわざ今になってFirefoxで再現するという、壮大なジョーク。アホなことほど真面目に頑張りたくなる芸人根性なのです。

長くなりそうなんで次のエントリに続く。

エントリを編集します。

wikieditish message: Ready to edit this entry.











拡張機能