Romtter for WP

/ Windows Phone

6作目のWindows Phoneアプリ「Romtter」がリリースされました。

勿体つけた挙句に性懲りもなくまたこれかー、って感じですが、まぁ、そゆことですw
基本的にPC版からの移植みたいなものなので機能面はほぼ変わらず、トレンドが見れて、検索ができるだけ。
強いて挙げるとしたら詳細画面でサムネ表示に対応したのと、一度読み込んだ情報はキャッシングされてオフラインでも読めるところ。
大抵の検索アプリは都度最新データをロードする形のものが多いので、アドバンテージとして大きいのはこのキャッシュ機構かと思われ。
ひとつの検索結果につき、1000件まで保持され、それより増えると古いものから消していく仕組みになっています。

当初は検索結果をいくつも並べて見せることを考えていたのですが、数百アイテム突っ込んだリストボックスをいくつか並べるだけで90MBのメモリ制限にひっかかってしまう状況だったので、1つの結果ページを使い回すようにしてみたわけですが、個人的にはこれじゃない感が半端なく…
リストボックスの制御にもそれなりに手間取ったものの、結果的にはあまり良い動きにならなかったのも情けない話で、あらためてWPアプリ開発の奥深さを思い知った次第。
その代わりというわけではありませんが、トゥームストーン対策は比較的きちんとしたつもりなので、放置されたアプリがコケることは従来より少なくなっているかと思います。
いつもと同様のコンセプトとして、ページ遷移を極力少なくしたかったのですが、パノラマをチョイスしたのはちょっと後悔気味で、いっそピボットにしといたほうがもう少し軽快に動いてくれたかもしれず。
本格的なTwitterクライアントはもちろんのこと、同種のアプリもわりとたくさんあるので、まだほとんどダウンロードされてなさげですが、Twitterを見るだけの方にはそこそこ便利なツールになっているかと思いますので、是非一度お試しを。


アフィアプリ

/ Diary, Windows Phone

新作アプリの審査申請を済ませて、一段落している今日この頃。
詳細はもったいぶって伏せておきますが、最近新たにできたらしい国別の提供可能アプリの縛りや、スクリーンショットのレタッチが禁止されていることを知らずに一度審査落ちして、二度目の申請だったり。

今回は無料アプリなのですが、試験的にAdMob広告を搭載。
本来ならばMicrosoftオフィシャルのpubCenterを使いたいところなのですが、当初昨年内に予定されていた日本展開が遅れているようで、つい最近ようやく今月末に予定というアナウンスが出たばかり。
Googleのライセンスポリシー改訂によって一部ではGoogleバッシングが強まっている気配があるので、正直どうかな、という思いもあったりしますが、まぁとりあえずAdMob。
現状5本のWindowsPhoneアプリを出しているわけですが、有料アプリの課金具合や国内及びワールドワイドでのダウンロード数などはおおよそ分かってきたので、そろそろアフィについても探りを入れてみようか、といった感じですw
現状のパイの小ささでは広告付けたところで「焼け石に水」感が否めないわけですが、海外ユーザの広告に対する反応を窺うチャンスでもあるので、とりあえず物は試しということで…

技術的なトピックでいくと、今回sharpSerializerというシリアライズ関連のオープンソースライブラリを利用してみました。
当初、単純に分離ストレージのApplicationSettingsにデータ格納していたのですが、サイズが大きくなると初期化が激遅になってしまう問題に遭遇したため、バイナリシリアライズによるデータ保存/復元の採用に至った次第。
後になって分かった話ですが、ApplicationSettingsに設定値以外のデータを保持する事自体が無謀だったようで、データ類については別途保存が基本のようです。
今回はとっつきやすそうなsharpSerializerを使いましたが、Sterlingという多機能なライブラリがあるようなので、そちらも是非試してみたいところ。
また、大量データを扱う上で考慮しなければいけないのがメモリ使用量。
WindowsPhoneアプリでは基本的に90MBを超えるメモリを利用してはいけないという規約があるため、闇雲に大量のデータを画面上に表示することはできません。
個人的にやたらめったらにページが遷移するのは利用する側としても作る側としてもあまり好みではないのですが、ひとつのページに大量データを載せるのはタブーなようです。
パノラマやピボットが便利だからといって、いくつもアイテムを持たせるのは規約的に厳しいということです。
UI的にもページの構成というのは悩みどころなわけですが、加えてメモリ管理の観点からも考えなければいけないということを今回あらためて学んだ次第。


Picture Cutter

/ Windows Phone

遅ればせながら、新年あけましておめでとうございます。
今年も諸々頑張っていきたいと思いますので、よろしくお願い致します。

というわけで、新春一発目のエントリもWindows Phoneでいきます。

昨年のクリスマスイブに公開された「Picture Cutter」のご紹介。
画像をライブタイルのサイズに細切れカットする、という趣旨のツールです。
開発のきっかけは、たまたまTwitterでどなたかがWPのスタート画面カスタマイズに付箋紙アプリを使っているのを見かけたところから始まっているのですが、単なる画像カットだけでは芸がないということで、単体でのライブタイル作成機能やアプリランチャー機能を加えたりしていたらば結構な手数がかかってしまいました。

メトロUIのオーソドックスな作りとして、何かしようとするたびにページが切り替わるという挙動に若干飽き気味だったこともあって、今回は実験的に1ページの中で色々な操作を行う形にしてみました。
Silverlightでは隠しコントロール的なものが比較的簡単に使えることもあって、ページ遷移の代わりにグリッドコンテナを表示したり隠したりといった実装にしてもあまりゴチャゴチャした感じにはならないので、デスクトップアプリではこういった手法をわりとよく使ってきたのですが、WPでもまぁこれはこれでアリなんじゃないかな、といった仕上がりになってるかと…
少なくともページがいちいち切り替わらないので、アプリ内のどこにいるか迷子になることは避けられるのではないかと思われ。

アプリランチャー(というか標準アプリの起動)に関しては今回初めて実装したのですが、思っていた以上にライブラリの制限が厳しくて、あまりたいしたことができていません。
また、起動後は自アプリを強制終了させるしかなかったり、モノによって起動するまでのタイムラグがマチマチだったりするので適当なウェイトをかましたり、といった細かい調整が必要なのもちょいとビミョーな感じでしたが、この辺りのライブラリに関しては今後OSのバージョンアップなどで変わってきそうな気配がなきにしもあらず。

当初は付箋紙アプリの補助ツールとして無料アプリにするつもりだったのですが、最終的にはカット機能は試用制限なし、単体でのライブタイル作成機能は試用制限あり、有償版にてフル提供という形になりました。
まぁ、そもそもの趣旨は付箋紙アプリユーザに遊んでもらうことなので、アプリランチャーはオマケってことで、試用版で遊んでみてください。

ということで、マイクロソフトから届いたクラウディアさんの年賀状で遊んでみましたぁ。


DatePickerの改造

/ Windows Phone

Windows Phoneアプリのページを追加するついでに、サイトのテンプレも変えてみようかと思ったりしたのですが、あえなく挫折。
結局トップページとアプリ紹介ページを起こしただけになってしまいましたが、いまいち残念感が否めず…orz

というわけで、久々のブログ更新ですが、今月初めに世界に向けて公開したLive Calendarはアクセントカラーに対応したアップデートを経て、累計5000超のダウンロードを達成しました。
34ヶ国からダウンロードが行われ、うち18ヶ国の人たちからレビューをいただいています。
国別のダウンロード数は、アメリカとドイツが2強で、かなり離れた位置にイギリス、台湾などが続いている感じで、各国でのWindows Phoneのシェアが伺える興味深い数字が出ています。
カレンダーの表示自体はローカライズに対応していますが、アプリ説明やメニューなどは全て英語表記なので、英語圏以外での状況が気になるところだったのですが、この様子だと英語であれば世界リリースしても問題なさげ、という結論に至った次第。
まぁ、問題があるとすれば我々の英語力が著しく低いことでしょうかw


付箋紙アプリも先日久々にバージョンアップしました。
タイル裏面の表示を解除できなかったり、カラー設定で黒が純黒にならなかったりといった細かいバグ修正に加え、タイルカレンダー/LiveCalendarとデザイン互換のあるタイルを作成できるという新機能を入れてみたのですが、はたしてニーズがあるかは謎。
カレンダーコントロールは流用したので特に面倒はなかったのですが、Toolkitに含まれるDatePickerは年月だけを指定することができず、しばし検討。
多言語対応という問題もあったので、結論としてはDatePickerを改造して使うことに。
元々、DatePickerのローカライズが不完全という問題もあったので、Toolkitオリジナルのソースをプロジェクトに取り込んで改修してみた結果が下のスクショ。
年月のみの指定に加え、ページタイトルやボタンキャプションも日本語になりました。
もちろんローカライズにも対応しているので英語環境で動かせば英語表示されます。

詳しい方法は割愛しますが、Toolkit SourceのDateTimePickersフォルダ配下から、DataSource.cs、DateTimePickerPageBase.cs、DatePickerPage.xaml、DatePickerPage.xaml.cs の4ファイルを引っ張り出してきて自プロジェクトに追加した後、ゴニョゴニョいじってあげればオケ。
各ファイルのnamespaceを変更して、アプリページに配置したDatePickerコントロールのPickerPageUriプロパティを “/Sticky;component/DatePickerPage.xaml” のように指定すればとりあえずは使えるようになるので、そこからいじり始めるのが分かりやすいかと思われ。
TimePickerも同様に、既定の TimePickerPage.xaml、TimePickerPage.xaml.cs を流用してカスタマイズできます。

ちなみに、開発中にタイミング良くSilverlight Toolkitがバージョンアップしたので最新版を組み込んだのですが、ContextMenuを開くとSliderが挙動不審になるバグが修正されていたのが助かりました。GestureListenerのほうは相変わらずダメっぽいですが。


Live Calendar

/ Windows Phone

付箋紙アプリに引き続き、先日リリースしたタイルカレンダーもダウンロード数は好調に推移してくれているようで、総合ランキングで第4位まで到達。
調子に乗って、祝日表示をカットして少しいじったものを英語版として日本以外の国に公開したのですが、無料ということもあるのでしょうが、日本と同様に同種のアプリは少ないようで比較的好評な様子。
それなりにリサーチしてから作ってはいるものの、思惑通り喜んでもらえるとやはり嬉しい。
でもって、適当にググっていたらば、All About Windows Phoneという海外ブログで紹介されているのを発見。
Rafe Blandfordという方の記事なのですが、Symbian方面ではわりと有名な人物のようで… 恐縮です。
11/3に公開されて今日までに8ヶ国くらいのユーザからレビューを入れてもらっていますが、バックグラウンドタスクがうまく動いてなさげなレビューがあったりするので詳細が知りたかったり。
基本的にはタイルカレンダーと同じ実装なので、心当たりのある方はお知らせください。


左:タイルカレンダー、右:Live Calendar

アプリ名は、ライブタイルなカレンダーということで安直に「Live Calendar」としてみましたが、Windows Liveのカレンダーと勘違いされそうなので、ちょっと失敗したかもしれず。
今回はきっちりしたローカライズは施さず、ニュートラル言語を英語(en-US)にした英語版のみを提供しているのですが、ページの初期処理でLanguageプロパティにCurrentUICulture.Nameをセットするという手法で、カレンダー表示だけは端末の表示言語に従ってローカライズ表示されるようになっています。

それにしても、各国のユーザレビューが見られるのはとてもエキサイティングです。
英語以外のコメントは機械翻訳にかけてもはっきりとした意味がよく分からなかったりもしますが、それはそれで新鮮だったりするので、日本のユーザも積極的に海外製アプリのレビューを入れてあげるとよろしいんじゃないかな、と思った次第。