仕事帰りに川崎のヨドバシ寄ったが360のアンデフHDが見当たらないんで店員に聞いたら限定版しかないっすっていうからそれを買ってきたんだが、帰ってみたらPS3版だった。だから360版のってわざわざ聞いたじゃねぇかよ……。店員はそもそも360版があるなんて知らなかったのかもしれん。もー、今時店舗でゲーム買うなんてやっちゃだめだなー。DL販売か通販しかだめだわー。
チャンネル一覧からチャンネル情報表示・編集は一通りできるようになったかなぁ。
チャンネル情報編集はダイアログで出してその中で編集するようにしたんだが、ダイアログ出すのにjQuery UIを使ったら見た目をどう合わせればいいのか悩ましいことになった。 まだページにスタイル設定してないんだけどYAMLとかいうCSSフレームワーク?というかデザインテンプレート?を使おうかと思ってた。しかしこれとjQuery UIの標準のテーマが全然合わねぇんだわこれが。 jQuery UIのテーマは自分でいじれるんだけど、ちゃんと合わせるには手間かかりそう。 じゃあもう諦めてjQuery UIのテーマで全部統一してしまおうかと思ったんだが、jQuery UI全体で定義されてるスタイル自体はほんと少なくて各プラグイン専用のスタイルが細かく定義されてた。 これを使いまわして自分で作ったページに適用しようってのは一瞬でそれっぽくできましたというわけにもいかねぇな。
jQuery UIのダイアログは使わないようにするかまで含めてしばらく悩んでみたが、見た目のことはまたあとで考えようということにして見なかったことにした。
HTMLベースのUIとして一番大事なところはできた。あとめんどくさいのはリレーツリーなんだが。リレーツリーの組み立てはめんどくさいので、サーバ側でツリー状態にまで組み立てたデータを受け取ってきてクライアント側は描画するだけにしたほうがいいな。いやめんどいんだよなこれー。折り畳みとかしなければそうでもないんだろうか。
設定部分もけっこうめんどくさい。ポート設定増やせたりするとな。まあこれはGUI版でも2つしか設定できないようになってるから、同様に2つに固定でもいいや。YPの設定はたくさんできなきゃいけないのがめんどくさいが、なんとかするしかねぇか。
配信開始用の画面どうしようか。従来のPeerCastだと個別の配信開始ページになってるけど、チャンネル一覧に配信開始ボタン→ダイアログ出て配信情報作って配信開始という方がUIとして自然かな。ページ分けるのめんどくさいってのもある。
ちょっとJavaScriptも慣れてきた。あまり難しいことは考えないのがよさそうだ。作るのがめんどくさいところは諦めてUIの仕様を変えるくらいでいい。あとやっぱりJsRenderなんかのテンプレートエンジンは便利だし必須だ。
と思ったがうそうそ。全然慣れてなかった。画面更新するのにページほぼ全部作り直してたんだが、リストにチャンネル2つくらいの状態でべつにパフォーマンスは問題ないもんだなーと思ってたら項目が3つになったら構築される様子が見えるくらい遅くなってしまった。うわやっぱりだめっすよねそうすね……。
はてさてこれはどうしたものか。やっぱりページ全部作っちゃだめで値だけ書き換えないとだめか。値だけ書き換えればいいのかっていうとあやしくて、たぶん更新された値だけ書き換えないといけないんだろうな。えーと、それやるんだった自分で書くとかばからしいからデータバインディングできるライブラリ使いたいっすね……。
JsViewsはすげー意味わかんねーしと思ってたらKnockoutJSというものを知った。少なくともドキュメントはしっかりしてるのでわかりやすい。あとdata-bind属性のところにどの属性へのバインディングですよーというのを書くのでJsViewsよりは動作が想像しやすい。JsViewsはなんか文字列を返してるように見えるんだがなぜか更新される!という不思議なものに見えるし。
しかしJavaScriptに慣れてきてわかったのが、ライブラリてんこ盛りにしないと全く使いものにならねーという事実とは。勉強するってそういうことか。最初っからjQueryつかってたから本当のJavaScriptは知らないわけだが、クロスブラウザとか考えると知りたくもないな。