2014年5月のエントリ

掲示板にも書いたけど,Ver1.2でいろいろテストして,起動時のエラーの原因ぽいものは分かった。ここには技術的な話を書く。

原因は,Ver1.2で追加したエラーログ。ファイルが開けない場合などはデバッグログを出すようにしていたが,Ver1.2ではRelease版のときだけファイル出力するように変更した。しかし,大量のエラーログが出た場合に排他制御がうまくいかず,UnauthorizedAccessExceptionエラー(Access Denied)が出るようになっていた。起動時にパスワードPDFなどがたくさん登録されているとエラーになりやすくなる。

await FileIO.AppendTextAsync(logFile, message);

awaitがついているので単純にlockかけることはできない。なので,メッセージをキューに入れて,タスクから一定時間毎にキューの内容を出力するのが正攻法か。とりあえず今回はエラーログは封印して出さないように修正しておく。

アメリカはこれから週末なので,今からストアに申請しても,公開されるのは日本時間の来週の火曜日以降だろう。


ただ,すでにSharpCompressというライブラリを取り込んでrar対応してしまったので,バグFixと一緒にrar対応も入ってしまう予定。

とりあえず職場の人にLenovoとSurfaceRTのテストを頼んでみた。それで何もなければWindows Dev Centerにダンプが出るのを期待して待つか。で,他のマシンで試していて気付いたけど,ホイール無しマウスだと拡大縮小できなくて使えないですね。キーボードでできるようにするか拡大ボタンが必要か。

そしてよさそうなrarライブラリがあるっぽいので週末試してみよう。

Windowsストア提出後,40分で公開された。早すぎる。ということでAnalog Book Reader Ver1.2公開。変更点はこのページの後ろに書いておいた。

で,今回本棚の画像をキャッシュして,本を追加して一回表示した後は一瞬で表示できるように変えたのだが,コメントで落ちるようになったという方がいますね。自分のところでは数百個追加したり追加中に削除してを繰り返すテストをして大丈夫だったのだが,ハードウェアによるのだろうか。100個でも数MB~数十MBの消費なのでメモリやディスク不足ではないと思うし。

Windows Storeのコメントに返信する機能があればいいんだけど,現状追加情報をもらう手段すら存在しない。自分で自分のアプリにレビューすればいいのかな。とりあえず他にこういう症状が出る方がいたら教えて欲しいです。できればどのPCを使っているかも一緒に。

Analog Book Reader Ver1.2をWindows Storeに提出。うまくいけば今週中にストアに並ぶはず。アイコンとかストアの説明文なんかも改善したので,日本以外のダウンロード数も増えてくれるといいなあ。

Analog Book Reader Ver 1.2完成。あとはスクリーンショットとか作りながら,しばらく使ってみて問題なければMicrosoftに送ろう。

Analog Book Readerテスト中だが,順調にバグを見つけてるので来週中くらいには公開できるか?

日本のWindowsストアでは,書籍カテゴリの無料トップ6~7くらいで安定しているが,実際はダウンロード数はだいぶ下がっている。日本のWindows 8.1ユーザでPDFを見たい人だとこれ以上は難しいのかな。海外ダウンロードを増やしたいんだけど,まずはストアのスクリーンショットとかで目立つようにするのがいいのかなあ。

2chのSurfaceスレでAnalog Book Readerの名前が出ていたので反応してみる。Analog Book Readerは,大々的には言ってないけど漫画ビューアとしても使える。あまり売りとして言ってないのは以下の理由。

  • 漫画ビューアには漫画ビューア独特の要求がたくさんあって,その辺に対応していない。rar対応もそうだし,各種補正とか,本気で対応するなら最低限そういう要求に応えないと漫画対応は名乗れない
  • Analog Book Readerはどちらかというとページ数が多くて1ページ読むのに時間がかかる本であるほど良さが分かるアプリだと思っているので,漫画を読んでも多分そんなに嬉しくない

ただ,Windows Storeには漫画を読むのによいアプリがあまりないという話っぽいので,漫画的な機能を付けていくのもアリかなあ,とは思う。要求をリサーチするために,次のバージョンで漫画とかコミックを試しにキーワードに入れてみるかなぁ。

ていうかアイデアリストが既に20を超えていて,いくらやっても追いつかないのが正直なところ。Analog Book Readerの強みを考えるとe-pubの方が優先度高いだろうし。

そういえば誤解を生みそうな表現だったので補足。次バージョンで選択機能をサポートするっていっても文字を選択する機能はまだサポートできないので,あくまで画像として選択できるというもの。選択してどうするかというと・・・リリースしてから書こう。

Analog Book Reader 1.2用の修正は完了。ページ見開きについては,とりあえず偶数奇数で見開きを読み込んで,確定した時点で更新するようにした。んだけど今回のバージョンはかなりいろいろ変えたのでテストに時間がかかりそう。

Googleでルービックキューブが遊べるようになっていたので1時間遊んでみた。キューブの回し方がすごく難しいのと解き方を忘れていたので大変だったが,195回の10:42でクリア。10年くらい前に解き方を覚えたときは4分くらいで揃えていた記憶がある。その後,物理シミュレータ作ったときにルービックキューブをPC上で操作するのを作ろうとしたが,とてもじゃないけど操作しづらそうなので諦めた。Googleの力を持ってしてもこのくらいのUIが限界か。パワーグローブとGoogleグラスが欲しい。

新しい機能は実装完了。範囲選択。自分は欲しいと思うけど,他の人が欲しいかは謎。とりあえずあとは保留していた見開き改善をやったらVersion 1.2かな。やっぱり自宅にいると作業がはかどる。本を読む時間が減って本末転倒という説もあるけど。。。

ページ見開きが難しい。のでとりあえず新しい機能を入れたりしている。四隅にスクロールするボタンとか,謎の選択機能とか,本が見つからない場合は本棚画面でダイアログを出すようにしたり。使い勝手を評価してもらうために試し公開してみたいけど,MS審査がいるからどうしても気軽に公開できない。

次バージョンに向けてとりあえず軽い修正をいくつかした。

  • スナップ表示でUIが崩れる問題の修正
  • ヘルプ画面でページ移動ができる問題の修正
  • デスクトップからのPDF/Zip関連づけ起動
  • 本サムネイルのデザインを変えて,ページ数を表示できるようにする
  • 本を選択したらメニューが自動的に出るようにする
  • Deleteキーで本を削除できるようにする
  • 右開きの場合,ブックマークは右側に置くようにする

あとはファイルがないときの処理と見開きの処理ができたら一旦公開かな。

しばらく開発してなかったので思い出すために軽くライブタイル対応してみた。ワイドと大の2種類のライブタイル対応をしたかったのだが,検索しても複数のサイズに対応させるやり方を書いたものがなく,最終的にQuickstart: Sending a tile updateを参考にした。テンプレートを2つ作って,最初のテンプレートの「visual」にもう一つのテンプレートの「binding」を追加すればOK。

ライブタイル対応で各本のサムネイルをキャッシュするようにしたので,本棚表示する時のサムネイル表示を速くしてみた。一応たくさん本があっても快適にはなった。

いろいろ使っていて,バグを発見。Analog Book Readerでファイルを開いて,一旦デスクトップを表示してからもう一度開くと,カーソルキーがきかなくなる。デバッガを使っていると再現しないので今まで気付かなかった。OnNavigatedToでWindow.Current.CoreWindow.KeyDownイベントを登録してOnNavigatedFromで解除しているのだが,デスクトップを表示するとOnNavigatedToなしでOnNavigatedFromが呼ばれるので,KeyDownイベントが解除されてしまっていた。NavigationModeを見て,本棚に戻るときだけ解除するようにして解決した。

先週ぱじさんにアメリカのナイスお土産を持って行ったときに,Kindleを使った漫画の読み方を見せてもらった。そういう使い勝手なのか。コメントでもらった,次のページへのスクロールが欲しいって言っていた意味がようやく分かった。Kindleは一度に見えるのが1/4くらいとすると,次のページに進むと,見えていない部分にスクロールするのか。Analog Book Readerではどうしようかな。

Kindle自体はZom-Bを買ってAndroidで読んでいるが,小説だと単純に次のページにいくだけなのでこれだけだと思っていた。

ようやくいつもの環境に戻ってきた。3週間長かった。開発再開。