特別企画

「Sleipnir 4」公開記念、「Sleipnir」開発者インタビュー

「Sleipnir 4」に込めた想いから、開発の苦労話まで

「Sleipnir 4」

 26日、2年ぶりにメジャーバージョンアップした「Sleipnir 4」。1月29日に「Sleipnir 4 for Windows Technology & Design Build」、2月26日に「Sleipnir 3 for Windows Final Build」が公開され新機能はほぼ実装済みだが、改めて「Sleipnir 4」として公開する想いや開発の苦労話を、実際に開発に携わった方々に聞くことができたのでお伝えする。

「Sleipnir 4」に至る経緯

プロダクトオーナーの大倉氏

――まずは自己紹介からお願いします。

大倉氏:自社開発部担当部長の大倉貴之です。Windowsグループのプロダクトオーナーという役割をしております。主にどういった形のものをリリースするか計画を立てることと、進捗管理をやっています。現在のフェンリルでは、私が設定した新コンセプトや新機能の操作感がフェンリルブランドに合致しているかを、社長の柏木が判断してWindows向けの製品が作られるという流れになっております。

上田氏:自社開発部Windowsグループ主任の上田です。WindowsチームのAPI周りなどに関わっています。「Sleipnir 4」では設定がWebKitとTrident両方に反映できるようにするといったことをやっています。実は、プライベートでテキストエディター「gPad」を作っています。また、古くはWebブラウザー「DonutP」を開発していました。

松本氏:自社開発部Windowsグループの松本です。「Sleipnir 4」では新スキンの適用や描画関連の高速化をやっておりました。

福満氏:自社開発部Windowsグループの福満です。「Sleipnir 4」では“FeedReader”機能や“SuperDrag Extension”機能、“SuperSearch”機能などを手がけています。ちなみに、上田と松本はC++言語を使っていますが、私はDelphi言語を使っています。

――はじめに、「Sleipnir 4 for Windows Technology & Design Build」から「Sleipnir 3 for Windows Final Build」、そして「Sleipnir 4」に至るまでの経緯が、少しわかりづらいので教えてください。

大倉氏:7年前にリリースした「Sleipnir 2」、2年前にリリースした「Sleipnir 3」は、それぞれソースコードの紛失や大幅にコンセプトを変えるといった理由で、その前のものとは別プロダクトとしてリリースさせていただきました。しかし、今回の「Sleipnir 4」に関しては別プロダクトではなく、コンセプトは変わったものの「Sleipnir 3」の延長線上にあります。「Sleipnir 3」から「Sleipnir 4」に変わっていく過程をユーザーに見ていただきたかったため、“Technology & Design Build”“Final Build”という形でリリースしました。

 ほかのWebブラウザーはリリースサイクルを短くし、メジャーバージョンアップの位置付けを低くしているようです。そんな中で、「Sleipnir」もバージョンの数字にこだわらずにアップデートを行うようにしていくという意味で、v3.9.1として「Sleipnir 3 for Windows Final Build」を公開したというところもあります。

「Sleipnir 4」のコンセプト

「Sleipnir 4」について熱く語る大倉氏

――「初代 Sleipnir」「Sleipnir 2」「Sleipnir 3」そして「Sleipnir 4」のコンセプト・位置付けというのはどうなっているのでしょう?

大倉氏:「Sleipnir」「Sleipnir 2」はカスタマイズ性を前面に出していました。「Sleipnir 3」はそれまでとコンセプトが大きく変わりました。“TouchPaging”やリッチなユーザーインターフェイス(以下、UI)など革新的機能の提案がコンセプトでした。それは新たな挑戦であったわけですが、それまで「Sleipnir」を支持してくれたユーザーの想いとはずれがあったのではないかと思います。

 “TouchPaging”を支持してくれる声だけでなく、昔からのジェスチャーを望む声もあります。リッチなUIに関してもスペックの低いPCでは重くなってしまうという問題がありました。私は昨年の3月から品質改善担当・プロダクトオーナーをやっていますが、その頃からユーザーの想いというものをしっかりとヒアリングし、ユーザーが求める「Sleipnir」とはどういったものかをイメージして「Sleipnir 4」を提案しました。

 「Sleipnir 4」は、機能とのバランスがとれたデザインと、多くのユーザーから支持される機能の開発がコンセプトです。「Sleipnir 3」のコンセプトの一部は引き継ぎますが、「Sleipnir 4」では使い心地のよさに注力しています。また、ツールとして、ユーザーの作業を助けるものであることが必要。使っていることを誇りに思って他の人に勧めたくなるWebブラウザーを目指して開発しています。

――フェンリル社はユーザーの声が直接反映しやすい会社だという印象があるのですが、“Sleipnir”シリーズの旧バージョンユーザーからどのような要望が届き、要望をどのように取り入れているのでしょうか?

大倉氏:ユーザーの要望はサポートフォームを始め、Twitterやコミュニティ、ブログなどから情報収集し、ユーザーと対話しています。とくに苦情に近いものは積極的にヒアリングしています。

 なかにはわかりにくい要望もあり、苦労します。そういった場合は、“どのような場面や理由で必要なのか?”“どのような結果が望ましいのか?”という2つの質問をユーザーにすることで、要望のなかに潜んでいるより深い問題点を見つけるようにしています。

 たとえば、スキン対応への要望は多数の方からいただいているのですが、現状では複数のスキン制作と仕様検討などの時間を作るのは困難だと判断しました。そこで、解決策を模索するためにスキン対応を望んでいる複数のユーザーに質問をしました。すると「Sleipnir 3」の視認性に問題があると考えているユーザーが多く、“視認性の良いUI”にしたいからスキン対応を望んでいることがわかりました。そこでWindows 8では採用されていないことも鑑み、Aeroのデザインを諦める決断をしました。一部のユーザーからはお叱りを受けましたが、ご理解いただければと思います。

――多かった要望の具体的な内容は?

大倉氏:一番多かったのは「Sleipnir 2」から「Sleipnir 3」に変わった際になくなった機能の復活を望む声です。また、動作速度に関しての要望も多くありました。さらに、「Sleipnir 2」までのようなカスタマイズ性を実現してほしいという声もよく聞かれました。

――それらの要望に応えるのが「Sleipnir 4」と考えてよろしいでしょうか?

大倉氏:そうですね。ただ、ユーザーの要望というのは無限と思えるほどありました。「Sleipnir」はそれらを取り入れることで評価されているわけですが、あまりに細かいカスタマイズ項目を追加しすぎると、新しい機能を開発する際にそれまでに実装したカスタマイズ項目が足かせになることがあります。そのため、カスタマイズ項目はなるべく統合・整理し、項目を減らしつつ「Sleipnir」らしさを失わないようにしました。

――ユーザー回帰ということでしょうか?

大倉氏:ユーザーのやりたいことや解決したい問題を我々が最適化して開発するということです。

「Sleipnir 4」のこだわり

――「Sleipnir 4」のUIやユーザーエクスペリエンス(以下、UX)に関するこだわりというのはありますか?

大倉氏:個人的にソフトウェアとはベストだと考えられるUIやUXの塊が実体化したものであるべきだと思っています。使い心地がよく長時間使っていても疲れない、直感的に使い方がわかるように作るということを常に意識しています。「Sleipnir 4」のUIは軽量であるということと、落ち着いたデザインということを考えました。

――「Sleipnir 3」ではv3.5でレンダリングエンジンにWebKitを採用する大きな変更がありましたが、「Sleipnir 4」の今後の展開をお聞かせください

大倉氏:スキンに対応できればと考えていますので、そのための設計がなされています。さらに、使い心地の向上とユーザーにとって新しい機能の提案をしっかりやってきたいと思います。「Sleipnir 4」は、現在大きなシェアをもっているWebブラウザーよりも使いやすいものでなくてはいけない。より高機能なWebブラウザーを目指します。ほかのWebブラウザーで満足できなかった人に“Sleipnirがあるじゃないか”と言っていただけるWebブラウザーであり続けたいと思っています。

――「Sleipnir 3」では当初レンダリングエンジンにGeckoを搭載していました。WebKitを搭載する際に3つのエンジンを搭載するということもできたと思うのですが、なぜGeckoは非搭載となったのでしょうか?

大倉氏:「Sleipnir」に組み込んで拡張機能を利用しようとした際に、WebKitと比べると問題が多かったのが一番の理由です。WebKitを採用する際に我々もかなり悩み、社内でも大いに議論されました。トリプルエンジンにしようという意見もあったのですが、1つの機能を実装しようとして3つのエンジンへ反映させるには開発に時間がかかりますので、競争力を高めるためにもWebKitとTridentのダブルエンジンを採用しています。

「Sleipnir 4」開発秘話

――それでは次は実際に開発に携わっているエンジニアの方にお聞きします。「Sleipnir 4」のUIやUXを実現するために行ったテクニックなどがあればお聞かせください。

Windowsグループ主任の上田氏

上田氏:UIのパーツを少なくするため、かなり整理しました。「Sleipnir 3」ではパーツの画像がいろいろなフォルダに散らばっていたのですが、大きく整理・統合しました。

大倉氏:そうですね、かなり整頓しました。さらにソフトを速く、軽くするために、「Sleipnir 3」を作るときにエンジニアが一番苦労した部分も、申し訳ないのですが省くべきところは私がスパスパと削除依頼を出しました。デザインがよくてなおかつスピード感があるソフトウェアにしましょうということで、エンジニアやデザインナーへ要望しました。

上田氏:たとえば、“Aero Glass”を実現するために今までは各パーツがそれぞれ4つのファイルで構成されていたのに対して、新デザインでは1つになりました。すべてではありませんが、“Aero Glass”で利用しているパーツのファイルなどは1/4に削減しています。

大倉氏:それだけではなく、1個1個のパーツもかなり軽量化しています。そのため、「Sleipnir 4 for Windows Technology & Design Build」で従来の10%、「Sleipnir 3 for Windows Final Build」では一般的なスペックのマシンで30%、スペックの低いマシンでは50%の高速化を実現しています。ユーザーの方からもかなり速くなったという感想をいただき、ほっとしています。今後も定期的にチューニングを行うほか、多くのユーザーが望むのであれば更なる高速化に挑戦することになると思います。

――「Sleipnir 4」を開発するにあたっての苦労話があればお聞かせください。

福満氏

福満氏:私は「Sleipnir 3」から「Sleipnir 4」にかけて、「Sleipnir 2」で人気があった機能を移植する作業を担当しています。しかし、Tridentエンジンで実現していた機能をWebKitエンジンで実現するのは、「Sleipnir 2」での使い心地を再現するために細かい調整を入念に行う必要があり、苦労しました。

“SuperDrag Extension”

――TridentエンジンからWebKitエンジンへ機能を移植するのは大変なんでしょうか。

福満氏:はい。Tridentは同一プロセス上で処理されていたことが、WebKitでは複数のプロセスで処理されていることがあり、プロセス間通信をしたりするなど、大変でした。

大倉氏:「Sleipnir 2」の“SuperDrag Extension”は私が開発したのですが、最終的な使い心地の調整にかなり工数をかけました。しかし、私がはじめから作ったよりも移植する方が遥かに時間がかかっていると思います。私が見ていて無理じゃないかと思うほど苦労していました。途中で止めようかと思ったくらいです。

――細部の調整には時間がかかりますか?

大倉氏:そうですね。頭の中にイメージがあれば、80%までは一気に作れるのですが、あとの20%、ユーザーが『これは使い心地がいい』と思っていただけるための調整に労力がかかります。とくに、すでに存在している機能を移植し、なおかつ異なるレンダリングエンジンで同じ使い心地を実現するというのは大変です。

――ほかにも苦労話はありますか?

松本氏

松本氏:私は主にWebKit周りをいじることが多いのですが、WebKitのバージョンアップには常に苦労しました。「Sleipnir」の機能がWebKitのバージョンアップで動かなくなることがよくあるのです。WebKitの膨大なソースコードからその原因を探す作業は、藁山の中から針を探し出すようなもので大変でした。

大倉氏:WebKitでも多機能なのが「Sleipnir」ですので、機能の移植は苦労しながらもエンジニアが気合いと根性で何とかやってくれています。

上田氏:Tridentは今までのノウハウがありますがWebKitにはないので、実現できる機能とできない機能の差もわからないことがありました。最近はできることが見えてきたので、どうやって実現するかが課題になっています。プロセス間でデータをやりとりする際の“口”を探すということに苦労しているんです。

開発風景

松本氏:“口”が見つかっても機能を実行するタイミングによってダメなことがありまして、ちょっとずらすとうまくいったりすることがありました。

上田氏:今の「Sleipnir」は「Sleipnir」本体とWebKitのプロセスがある上にWebKitの子プロセスが複数あります。そのため、タブのプロセスを開いただけではデータを渡せず、描画用の別プロセスを明示的に起動しないといけないといったことがありました。外部からWebKitを呼び出しているため、相手のプロセスの状態にも依存する部分があり、調整に苦労しています。

大倉氏:タイミングが合わないと機能が実行できないだけならまだいいのですが、タイミングが合わないと「Sleipnir」が強制終了してしまい、画面上から消えるといったことが、開発初期の社内評価版ではよくありました。『アレ、私ナニシテタンダッケ?』というくらい、突然目の前から「Sleipnir」がサッと消えるんです(笑)。WebKitはタイミングの処理がシビアで、細かく調整しています。

ユーザーへのメッセージ

――そのほかお伝えしたいことがあればお願いします。

松本氏:今回の「Sleipnir 4」では、ファイルの構造もすっきり整理してあるので、「Sleipnir 4」はユーザーサイドでもデザインを改造しやすくなっていると思います。早くも某巨大掲示板ではユーザーさんが非公式の「Sleipnir 4」用スキンを作られているようです。

福満氏:“デベロッパーズブログ”をよろしくお願いします。多くのユーザーの方に見てもらいたいです。

大倉氏:そうですね。もともとユーザーにいちはやく伝えたい情報を発信するために作ったのですが、最近はいろいろな情報を発信しています。是非ご覧ください。

――最後にユーザーの方にメッセージをお願いします。

大倉氏:「Sleipnir 4」は旧バージョンの「Sleipnir」を使っていて、ほかのWebブラウザーへ乗り換えた方にも使っていただけるように、メジャーアップデートしました。まだまだ完成度を高めなくてはいけないのですが、「Sleipnir 4」を通じて開発のコンセプトを表現しているつもりです。ぜひ使ってみてください。よろしくお願いします。

 ちなみに、最近“Google リーダー”が終了することが話題となっていますが、「Sleipnir 4」の“FeedReader”機能も“Google リーダー”からフィードを取り込めます。お試しください。

(長谷川 正太郎)