Storeのコメントで,「統計画面にスペルミスがある」というのと「遅くて使えない」というのをもらった。遅いというのは他の人からも指摘されていて,改めてチューニングを考えてみた。今までは,ファイルロード中,最初から読み込んでいくのと平行して,画面に表示しようとしたページを優先で表示するようにしていた。それはいいのだが,ページをパラパラやっていると,読み込み待ちのページが増えていって,結局表示されるのがずいぶん後になってしまっていた。今表示しようとしたページを最優先で表示するようにしてみた。専門用語で言うとFIFOからLIFOに変えたってことですね。これだけでもだいぶ改善されて,ロード中にパラパラめくる分にはそんなに待たないようになった。あとは見開きの決定をもっと早くできればよいのだが,見開き計算結果をキャッシュするしかないだろうな。ここは慎重にやらないとバグりそうなのでもう少し後で。ストアに提出したので,まもなくダウンロードできるようになるはず。CSSってオートマトン使うの?CSSのセレクタを実装中。ルールが複雑なのでオートマトン化を検討中。HTML内にある全ての要素をCSSの数十のルールと全てマッチングをとるというのはなかなかヘビーな気がする。ブラウザの実装ってどうやってるんだろう。Ver1.1.0.1リリース以降、自分で使っていて気付いた不良をいくつか修正。Store申請を出したら朝には公開されていた。米国で審査しているとしたら、時差の関係で日本からは効率よく公開できますね。8.1の場合は自動更新らしい。そのうち入れ替わっていることになる。リアル本の真似はしないFlashぱじさんの非公開日記から。リアル本に近づけても意味ないよー」という感想を持ったらしい。8の脱スキューモーフィズム,つまりデジタルなのにアナログを真似して使いにくくするのはもうやめよう,という理念に賛同して作り始めたもの。電子書籍も,本を読みたい人にとっては,ページめくりなんかやりたくないものであって,デジタルでまでめくる操作をさせられるのは苦痛だよね,と思ったのがきっかけ。私が目指したものとぱじさんが最初から持っていた感覚は同じわけですね。名前にAnalogが入っているが,これはデジタルで読んでいるのにアナログの本を読んでいるような感覚を得るという理想を表したつもりだが,まだそこまではいってないですね。できるだけ理想に近づけたいところ。Reader実装中CSSのパーサーはなんとなく完成。@ルールはとりあえず非対応かなあ。ところで,CSSはBNFで定義されているのでそれ通りに組めば良いのだが,一箇所変なところがあった。|url({w}([!#$%&*-[]-~]|{nonascii}|{escape})*{w})で,stringは「""」か「”」の文字列。これだとurl(“http://denasu.com”)はAcceptで,url(http://denasu.com)はRejectになる。引用符がない場合,一部の記号とASCII以外かエスケープ文字しか受け付けないので,コロンとかピリオドとか,アルファベットすら受け付けない。後半の例には引用符なしのものが出てくるので,引用符なしも正しいはずなのに。ことで定義がバグっていると決めつけて,左括弧が来るまではURIとみなすように実装した。WindowsストアまとめWindowsストアに登録して10日くらい。最初,書籍カテゴリの一番最後に登録されていた。その後数日経過して書籍の新着の上の方に入って,ダウンロード数が一気に上がった。今は書籍の無料トップ6位くらいに入っている。順位は最近数日のダウンロード数を元に計算していて,新着ソフトが比較的優遇されているといったところか。今は新着で目立っているが,新着じゃなくなると目立たなくなりそう。定期的にバージョンアップしていく必要がある。あとはストアのアイコンをもう少し派手にしないといけない。アプリのアイコンをそのまま載せたけど,他の人は割と派手なアイコンにしてるのが分かった。EPUBリーダーどうしようそういえば,Windowsストアアプリの開発関連の話って検索しづらくて,自分は「winrt」を入れて検索している。この日記で開発の話を書くときもwinrtのキーワードを入れるようにしよう。EPUBリーダーを作るためにWebブラウザを作ろうとしているが,まずCSSの解析を作るのに時間がかかりそう。NuGet探してみたけど,Winrtでそのまま使える手軽なものというとかなり制限されてしまう。EPUB対応に向けてやっぱり電子書籍と言えばEPUBということで,調べている。StoreにあるEPUBリーダーをかたっぱしから入れてみたが,やり方はさまざまっぽかった。いうか結構落ちまくるし使いづらいし,成熟してなさ感が強い。Readerというアプリは読み込みは完璧な感じ。自力でレンダリングしてるんだろう。ページめくりのアニメーションとか,使いやすさよりも本っぽさを優先しているので,UI的に私が目指しているものとは正反対。EPUBは中身がHTMLなので,扱いがちょっと難しい。やり方としてはWebViewを使ってIEのエンジンを使って描画するか,自力でWebブラウザを作るか,ってところか。IEエンジンを使うとページ分割がかなり大変になるし,ブラウザを作るのはさらに大変。テキストと画像のみに対応したWebブラウザを作るところに落ち着くかな。将来PDFを自力で読むことも考えると無駄にならないし。Storeに公開して6日。電子ブックリーダーカテゴリの新着に載った。初のコメントでやる気が出ますね。Storeはなさそう。EPUBは元々次のバージョンでサポートするつもりだったのでニーズはあってることが確認できた。Readerをテストしてもらっている。最初の指摘はPDFを開くのが遅いこと。Readerに比べるとやはり遅い。途中のページから読むときはそこだけまず読み込むから普通に本を読むときにイライラすることはないはずだが,PDFの解析とレンダー部分を自作するかどうしようか。ReaderをWindowsストアに公開するときに,紹介用のスクリーンショットを作ったが,それだけで1日かけてしまった。InDesignを使おうと考えた。やり方がまったく分からず,基本から勉強することになった。苦労して作ったのでここに公開しておこう。Reader」がWindowsストアで公開された。Appストアのときは5日くらいかかってたから相当早い。denasu.comの中に紹介ページも作っておいた。8タブレットで試してくれるはず。Reader」の開発が完了。Windowsデベロッパーセンターで登録してみたので,来週には登録されているはず。本当は先月リリースするはずだったのだが,テストフェーズに入って毎日バグが見つかっていたので延期になっていた。どこにバグが多かったかというとほとんどが非同期処理。Windowsストアアプリは,UIをブロックするのは許さないというのがある。電子書籍アプリだと,本を開いたとき,本を開き終わるまで待つようなことはしてはいけない。自分のアプリだと,ブックマークや落書きがキャンバスにあって,ローディング中に操作できるようにするというのがかなり難しかった。Reader」をリリースする。ここでちょっと紹介してみたい。Reader」は本好き向けの電子書籍リーダー。自分は小説とか技術書とかを毎日読んでいて,最近はほとんど電子書籍で読んでいる。今の電子書籍は本好きからするとどうも使いづらい。自分で作ってみることにした。ほとんどの電子書籍サービスは専用のクライアントがあるので,自分でそのサービス向けのアプリは作れない。Reader」くらいの使い勝手になって欲しいなあ,という期待を込めてフリーで公開するといったところ。Reader」はPDFとzip(自炊の本とか)のみサポートしている。今後はEPUB等のフォーマットをサポートしていく予定。8.1のストアアプリのみサポート。これも今後はAndroidタブレットとかiPadとかをサポートする予定。