リリース以降、自分で使っていて気付いた不良をいくつか修正。詳細は更新履歴参照。夜中にWindows Store申請を出したら朝には公開されていた。米国で審査しているとしたら、時差の関係で日本からは効率よく公開できますね。
ユーザはどうやって更新するかというと、Windows 8.1の場合は自動更新らしい。なのでそのうち入れ替わっていることになる。
リリース以降、自分で使っていて気付いた不良をいくつか修正。詳細は更新履歴参照。夜中にWindows Store申請を出したら朝には公開されていた。米国で審査しているとしたら、時差の関係で日本からは効率よく公開できますね。
ユーザはどうやって更新するかというと、Windows 8.1の場合は自動更新らしい。なのでそのうち入れ替わっていることになる。
Flashぱじさんの非公開日記から。最初,私が「アナログ本に近い電子ブックリーダーを作る」と言ったときに,「パラパラめくるアニメーションに力を入れるの?? それは違うんじゃないかなー リアル本に近づけても意味ないよー」という感想を持ったらしい。
元々Analog Book Readerは,Windows 8の脱スキューモーフィズム,つまりデジタルなのにアナログを真似して使いにくくするのはもうやめよう,という理念に賛同して作り始めたもの。電子書籍も,本を読みたい人にとっては,ページめくりなんかやりたくないものであって,デジタルでまでめくる操作をさせられるのは苦痛だよね,と思ったのがきっかけ。なので私が目指したものとぱじさんが最初から持っていた感覚は同じわけですね。さすがぱじさん。
名前にAnalogが入っているが,これはデジタルで読んでいるのにアナログの本を読んでいるような感覚を得るという理想を表したつもりだが,まだそこまではいってないですね。できるだけ理想に近づけたいところ。
CSSのパーサーはなんとなく完成。@ルールはとりあえず非対応かなあ。ってところで,CSSはBNFで定義されているのでそれ通りに組めば良いのだが,一箇所変なところがあった。
URI:url({w}{string}{w}) |url({w}([!#$%&*-[]-~]|{nonascii}|{escape})*{w})
で,stringは「""」か「”」の文字列。これだとurl(“http://denasu.com”)はAcceptで,url(http://denasu.com)はRejectになる。つまり引用符がない場合,一部の記号とASCII以外かエスケープ文字しか受け付けないので,コロンとかピリオドとか,アルファベットすら受け付けない。後半の例には引用符なしのものが出てくるので,引用符なしも正しいはずなのに。ってことで定義がバグっていると決めつけて,左括弧が来るまではURIとみなすように実装した。
Windowsストアに登録して10日くらい。最初,書籍カテゴリの一番最後に登録されていた。その後数日経過して書籍の新着の上の方に入って,ダウンロード数が一気に上がった。今は書籍の無料トップ6位くらいに入っている。なので,順位は最近数日のダウンロード数を元に計算していて,新着ソフトが比較的優遇されているといったところか。
今は新着で目立っているが,新着じゃなくなると目立たなくなりそう。定期的にバージョンアップしていく必要がある。あとはストアのアイコンをもう少し派手にしないといけない。アプリのアイコンをそのまま載せたけど,他の人は割と派手なアイコンにしてるのが分かった。
そういえば,Windowsストアアプリの開発関連の話って検索しづらくて,自分は「winrt」を入れて検索している。この日記で開発の話を書くときもwinrtのキーワードを入れるようにしよう。
本題。EPUBリーダーを作るためにWebブラウザを作ろうとしているが,まずCSSの解析を作るのに時間がかかりそう。NuGet探してみたけど,Winrtでそのまま使える手軽なものというとかなり制限されてしまう。
やっぱり電子書籍と言えばEPUBということで,調べている。まずはWindows StoreにあるEPUBリーダーをかたっぱしから入れてみたが,やり方はさまざまっぽかった。というか結構落ちまくるし使いづらいし,成熟してなさ感が強い。その中でもBook Bazaar Readerというアプリは読み込みは完璧な感じ。自力でレンダリングしてるんだろう。ただ,ページめくりのアニメーションとか,使いやすさよりも本っぽさを優先しているので,UI的に私が目指しているものとは正反対。
EPUBは中身がHTMLなので,扱いがちょっと難しい。やり方としてはWebViewを使ってIEのエンジンを使って描画するか,自力でWebブラウザを作るか,ってところか。IEエンジンを使うとページ分割がかなり大変になるし,ブラウザを作るのはさらに大変。多分テキストと画像のみに対応したWebブラウザを作るところに落ち着くかな。将来PDFを自力で読むことも考えると無駄にならないし。
Windows Storeに公開して6日。電子ブックリーダーカテゴリの新着に載った。どういうアルゴリズムなんだろう? そして初のコメントでやる気が出ますね。Google Playだと作者側からコメントを仕返す機能があったけど,Windows Storeはなさそう。とりあえずEPUBは元々次のバージョンでサポートするつもりだったのでニーズはあってることが確認できた。
Analog Book Readerを作る際,Visual Studio 2013にしてしばらくほっておいたのだが,一段落したのでWeatherTyping,WorldTester,PurentroをVisual Studio 2013用に再構築。なんかプロジェクトファイルを自動変換したらVisual Studio 2013がすぐ落ちるようになったので,結局すべてのライブラリやアプリのプロジェクトを再作成。毎回そうだからもう慣れたけど。とりあえずこれで何か急にパッチを出すことになっても対応できる。
最近日本語と英語の日記を同時に書いているのだが,その時から日記の更新率が低くなった気がする。英語で書くのがめんどうというならしょうがないが,更新するファイルが多すぎてめんどうなだけというのが本当の理由なのでもったいない。1回の更新でトップページと日記トップページと各日記ページを日英で更新しているのでやってられない。 というわけで日記を更新するソフトを作った。WPFで作ればこのくらいのものは1日で作れる。特にLINQの生産性は異常。
Windows 8.1を持っている人にAnalog Book Readerをテストしてもらっている。まず最初の指摘はPDFを開くのが遅いこと。Windows 8.1の.NETに標準で付いているPDFレンダラーを使っているのだが,標準のAdobe Readerに比べるとやはり遅い。途中のページから読むときはそこだけまず読み込むから普通に本を読むときにイライラすることはないはずだが,PDFの解析とレンダー部分を自作するかどうしようか。
そういえばAnalog Book ReaderをWindowsストアに公開するときに,紹介用のスクリーンショットを作ったが,それだけで1日かけてしまった。著作権がいろいろあるのでスクリーンショット用の本を自作したのだが,最近TeXの環境もインストールしてないので,1度も起動していないAdobe InDesignを使おうと考えた。で,やり方がまったく分からず,基本から勉強することになった。せっかく苦労して作ったのでここに公開しておこう。タイピングソフトの作り方.pdf
「Analog Book Reader」がWindowsストアで公開された。Appストアのときは5日くらいかかってたから相当早い。denasu.comの中に紹介ページも作っておいた。
テストはSurface Pro 2でやっている。今日あたり職場の人がSurface RTとかLenovo Windows 8タブレットで試してくれるはず。
ようやく「Analog Book Reader」の開発が完了。Windowsデベロッパーセンターで登録してみたので,来週には登録されているはず。
本当は先月リリースするはずだったのだが,テストフェーズに入って毎日バグが見つかっていたので延期になっていた。どこにバグが多かったかというとほとんどが非同期処理。Windowsストアアプリは,UIをブロックするのは許さないというのがある。例えば電子書籍アプリだと,本を開いたとき,本を開き終わるまで待つようなことはしてはいけない。でも自分のアプリだと,ブックマークや落書きがキャンバスにあって,ローディング中に操作できるようにするというのがかなり難しかった。
今週末,Windowsストアに電子書籍リーダ「Analog Book Reader」をリリースする。なのでここでちょっと紹介してみたい。
「Analog Book Reader」は本好き向けの電子書籍リーダー。自分は小説とか技術書とかを毎日読んでいて,最近はほとんど電子書籍で読んでいる。iOSのNewsstandとか,技術書読み放題のSafari booksとか。でも,今の電子書籍は本好きからするとどうも使いづらい。なので,自分で作ってみることにした。もちろん,ほとんどの電子書籍サービスは専用のクライアントがあるので,自分でそのサービス向けのアプリは作れない。最終的にはこれらのサービスが,「Analog Book Reader」くらいの使い勝手になって欲しいなあ,という期待を込めてフリーで公開するといったところ。
現状,「Analog Book Reader」はPDFとzip(自炊の本とか)のみサポートしている。今後はEPUB等のフォーマットをサポートしていく予定。また,現状「Analog Book Reader」はWindows 8.1のストアアプリのみサポート。これも今後はAndroidタブレットとかiPadとかをサポートする予定。
Microsoftの最近のサービスの調査令が出たので,AzureとOffice 365を登録してみた。
Azureは既にMSDNサブスクリプションで登録していたのだが,「現在のサブスクリプションは使えなくなります。延長しますか?」メールが来ていた。その時は,MSDNユーザでも有償になるのかと思っていたが,そうではなかった模様。今の契約では,テスト目的なら無償で使える。15,500を毎月もらえて,1時間に6.12かかるので,実質使い切れないってことですね。
Office 356もMSDNサブスクリプションで登録。1年間は無料で使える。
今週末,新しいアプリのテストを終わらせようと思っていたのだが,できなかった。BitmapSource.SetSourceを呼び出すと,どうも内部的に画像のメモリを確保するらしいのだが,いつまでも解放されない。いろいろWebで調べた末,使い終わったら1ピクセルの画像で初期化するという解決策をとった。この問題で週末いっぱいかかってしまったので,多分今月中のリリースは無理。
今作っているアプリケーションはもうすぐ完成しそう。今月中には,Windowsストアに書籍リーダアプリを公開できると思う。で,公開するためにはプライバシーポリシーを作りなさいとのことなので,作っておいた。
朝からBフレッツにつながらなくて、さっきWebから申し込んだら、もう来て直してくれた。対応は平日だけって書いてあったけど早い。とりあえずAndroidのテザリングがあればフレッツが使えなくても不自由はないことが分かった。
ホテルでSurfaceとノートPCを同時に使っているのだが、ついノートPCのディスプレイを触ってしまう。ディスプレイをタッチできても不便だろうと思っていたのだが、意外に便利なことが分かった。というかSurface Proは最高です。
サンフランシスコ到着。フロリダのディズニーから10kmのところにいたけど、空港のディズニーショップに行っただけという。
SurfaceのACアダプタはUSBポートを搭載している。USBデバイスを1つ充電できるのだが、タブレットを充電できるだけあって十分な性能。もちろんiPad Miniも余裕。Surfaceさえあれば他に充電器はいらない。
今週はフロリダとサンフランシスコへ出張。Surface pro 2を持って行くので旅行中も開発ができる。
外で開発をしたくてSurface Pro 2を買ってみた。Surface Proはネイティブアプリが動くのでPurentroを動かせる。電子キーボードの上に乗っけられるからすごい便利。
なんかみんなクッキークリッカ-でクッキーを焼いているので,私もクッキーを焼いてみた。
Visual Studio 2013プレビューのGit機能を使ってみた。今3つのプロジェクトを1つのソリューションに入れている。Portable Class LibraryとWinRT Libraryとビューアのプロジェクト。Viewerのソリューションを登録しようとしたら,「The current solution has projects that are located outside the solution folder.」というエラーが表示された。なので,ビューアプロジェクトの上にダミーソリューションを作って登録してみた。VSSのときと変わらない使い勝手。
Windows 8.1でサポートされたFlyoutをxamlに入れてみる。でもFrameworkElementを継承していないので,プロパティへのバインディングができない。結構困った結果,FyoutBase.ShowAtで指定したElementのDataContextにバインディングされることが分かった。
WinRT(Windows Store Apps)で電子書籍ビューアを作っている。Windowsストアアプリの本をいくつか読んだけど,理念が目からウロコ的。デジタルの良さを極限まで活かせ,わざわざ本物を真似するな。電子書籍ビューアも,ページめくりなんかリアルにしないで,デジタルとしてどうするのがよいUIなのか考えろということですね。
Weather Typingランキングより作りたいものができてしまった。ので,ランキングリニューアルはちょっと保留してそっちを作り始めてみる。
てことでVisual Studio 2013 RCを入れてWindowsストアのアプリを作り始めた。Windowsのデスクトップとかスマートデバイスとかも将来的に動かしたいので,まずはWindowsストアかな。.NET framework 4.5のAPIをWebで検索するんだけど,そのAPIがどの環境で動くのかさっぱり分からない。いろんなバージョンとか環境がありすぎる。
Weather TypingのランキングをREST Webサービスで表示できた。これからデザインをしないと。今回は開発環境にEclipseとMaven, サーバにApache, Tomcat,mySQL,サーバフレームワークにServlet, JSP, Axis2,Hibernate,クライアントフレームワークにStruts2とjQueryを使ってるんだけど,使うテクノロジ多すぎ。
Windows 8.1を実機にインストール。Weather Typingを動かしたところ,DirectPlayを入れろと言われた。それ以外は普通に動いているっぽい。あんまり試してないけど。World TesterとPurentroも問題なし。
Safari Books Onlineを,月額無制限コースにアップグレード。オライリーなどの有名な出版社のIT関連の本を,読み放題検索し放題なので,どこでも本屋状態。月4000円ちょいするけど便利すぎる。