巣立つグリフィン

 再申請していたWP7アプリ、「TokyoElectricityState」が再度審査を通過し、無事にマーケットプレイスにて公開されました。
 紹介ページはコチラです。

 紹介ページにも書きましたが、今後もう少し機能拡張をする予定です。やりたいことはあるけれどやり方がわからなくて実装しなかった機能などもありますので。何のことなのかは秘密で。
 それと日本で一番WP7に熱が入っているblogことななふぉ様にて、当アプリを紹介していただきました。まさかそんな有名どころに取り上げられると思っていなかったのでちょっと慌てたのも秘密です。この場を借りて、ご紹介いただきありがとうございました!

 思い返してみれば1年前は手に入れたばかりのT-01Bに大はしゃぎしてたころなんですよね、それがほぼ1年後にはWP7アプリを公開していることになるとは……。T-01Bが初スマフォだったはずなのに、気がつけばWindowsMobileを3台+WP7を1台所有している事実。なんだこのペースは。どうしてこうなった!

「我々はこいつを上達させようとはしていますが、こいつの探索への望みは能力をはるかに超えています」
――ハリマーのグリフィン使い、アマーディ

広告

TokyoElectricityState(紹介)

※当アプリはWindows Phone 7用アプリケーションです
※ネットワーク通信を行います

東京電力の電力使用状況を確認するためのシンプルなアプリケーションです。
データの取得にはWebAPIとして東京電力電力供給状況API様を使用させていただいております。

現在の最新版はVer1.610です。
実機でMarketplaceから落とせます。

◆更新履歴
・2011/09/11
 Ver1.610
 タイル情報の自動更新。(BackgroundTaskAgent使用)

・2011/09/02
 Ver1.500
 メッセージ投稿機能の追加。
 タイルへ使用状況の表示を追加。

・2011/07/20
 Ver1.100
 「yesterday」⇒「history」に変更
 「today」「history」のレイアウト変更、計画停電の実施実績情報を廃止

・2011/07/05
 Ver1.010
 「now」の仕様を以下のように変更
  1.東電から提供される5分おきのデータ「速報値」をベースに変更。
  2.前日同時刻比を表示するように変更。

・2011/06/29
 Ver1.000
 公開

・機能
 起動すると自動的に、
  1.最新の状況
  2.今日の状況一覧
  3.指定した日付(デフォルト:前日)の状況一覧
 を自動で取得しに行きます。今日の状況については、使用率を表すメーター上で針を動かすとともに、1ページ分にでかでかと情報を表示します。

 使用率が一定の値を超えると警告が表示されます。
 80%以上のとき : warning
 90%以上のとき : Danger
 95%以上のとき : CAUTION

 アプリケーションバーにある「更新」ボタンを押すことで、最新情報を取得しなおします。
 ただしWebAPIという性質上、サーバへの負荷をなるべく低減させるために1度更新処理を行うと、15秒間はもう一度ボタンを押しても更新処理を行いません。
 (5~10分程度、間を置いてからの更新を推奨します)

 2.今日の状況一覧 及び 3.指定日の状況一覧 についてはリストボックスに値を格納してあり、参照できます。「history」ページで日付を指定してGOボタンを押せば、指定した日付のデータが表示されます。ただしデータが存在しない日付もあります。

◆Mangoからの機能(Ver1.500~)

・メッセージ投稿機能
 WP7.5より追加された機能を用いて、TwitterやFacebookやWindowsLiveへのメッセージ投稿機能を実装しました。アプリケーションバーの「共有」ボタンから投稿できます。
 「now」で押した場合は、最新情報を。
 「today」や「history」で押した場合は、選択した日付時刻の情報をメッセージ投稿します。
 注意点として、「today」や「history」で使用する場合はリストボックスから呟きたい時刻を選択してからボタンを押さないと、何もおきません。

・タイルへの情報表示

 スタート画面にピン止めしている場合は、タイル上に最新情報が表示されるようになります。
 表面には右上に現在の使用率を2桁で、裏面にはその情報の更新日時と供給量、使用量が表示されます。
 ただし自動更新はされません。アプリ起動時に取得した最新情報が表示されるだけです。自動更新については、Ver1.600から対応を予定しています。

◆今後の更新予定
・指定日の状況一覧の取得機能 <完
・一覧画面の情報をもうちょっと見やすく……できたらいいな <完?
・メーター以外にもグラフでの表示(予定 どこを、どうやるか思案中)

(可能ならばMangoから対応予定のもの)
・Twitterへの投稿 <完
・定期的に最新状況取得してタイルに使用率表示 <完

◆カーターの願望(公開時の作者呟き)
ぶっちゃけWP7アプリ開発に慣れるための、試金石的なものとして作り始めたアプリです。
あと開発開始当初はまだWP7で電力状況を確認できるものがなかったので……。(さっき確認したらいつの間にか出来てたみたいです、しくじった……!)
はじめてのSilverlightでの開発ということもあり、些細なところで躓いてたりして、1ヶ月ほどもかかってたりしますが、色々と勉強になるアプリでした。非同期通信とかも実ははじめて作ったので当初はドキドキものでした。
なるべくシンプルに作ったつもりですが、いかがでしょうか。

願わくば、一日もはやく、このアプリの需要が無くなることを祈ります。

公証人

 そういえばAppHubに登録する際のことなのですが。
 前の日記に書いた通り英語がほとんど読めない自分は、偉大な先人様方の登録の記録をグーグル先生で探しながら真似してやっていたわけなのですが、一つ戸惑った部分がありましたのでここに記載しときます。
 というのもAppHubへの登録手順は、まずAppHubでのアカウント登録から始まります。ここは日本語表示されていたのですんなりと。で、次が難関のGeoTrustによる個人認証の部分です。このプロセスはGeoTrustの人とメールで自分自身でやり取りせねばならず、あちらさんは当然、英語のメールを投げてきます。英語のメールそのものは翻訳サイトの力を借りて、なんとかニュアンスは読み取れます。はやい話が「MSから依頼されてあんたの個人認証したいから、添付ファイルに必要事項を書いて返信してくれ」というような内容です。あれ、添付ファイル?

 というのも私が参考にしたのはこちらの記事(三日坊主と呼ばせない!日記様)だったのですが、ここの記事によるとメール本文の後半を印刷して、それに記載して、送り返したとのこと。はて……と思いながらも添付ファイルを開くと、そこには入力可能なPDFファイルが。

 GeoTrust側でちゃんとしたフォーマットを用意したみたいですね。
 ファイルへの記載後のイメージとして、私が書いたものをはっつけておきます。

 どこに何を書いたのかは画像を見てもらえばわかると思いますが、画像下部にある手書きの署名部分は“絶対に、紙に印刷したあとに手書きしてください”とのことです。上のほうにも注意書きされていますね。
 あと、よく認証に時間がかかる人もいるとのことですが、私の場合は1日か2日程度で終わりました。はやく終わる人のコツとしては、住所やらを英語表記にするとはやいとのことでしたが、当然私はそんなことしてませんし、メールの返信にも「Regards!(よろしく)」としか書いていません。なのにはやかった理由として考えられるのは、送り返したファイルをPDF形式にしていたからでしょうか……? 免許証の住所の部分などがPDFファイルからコピーできたので、GeoTrust側でも書き写したりせずすぐに読み取れたのが大きいのではないでしょうか。

 とまぁそんな感じです。
 これからAppHubに登録する人の参考にでもなれば……。

どんなに素晴らしい記憶力も、書き取った記録にはかなわない。

誤った指図

 前回の日記に書いたWP7アプリ、「TokyoElectricityState」が審査を一発で通過しました。これはめでたい。

 が。

 即行でマーケットプレイスから削除しました

 というのも、実は審査時にアップロードするXAPを間違えてしまい、正常に機能しない状態のアプリになってしまっていたからです。どういう状態かといいますと、何時いかなるときでも2011/06/22 16時台のデータしか表示されない状態なのです。
 なんでそんな状態に……という経緯を説明しますと、以下のような流れがあったのです。

1.アプリをリリース版でビルドしてXAPを作る
2.申請作業を進めていき、1のXAPをアップロード
3.スクリーンショット画像を用意していなかったことに気付き、エミュで実行
4.どうせなら「warning」状態の画像がいいなと思って、アプリ内部で表示する日時を6/22 16時台に固定してスクリーンショットを撮る
5.申請作業を最後まで進めたらXAP内に含まれるアイコンファイルでエラーが出た
 (アイコンに使う画像はpng形式でないと駄目なようです)
6.アイコンファイルをpng形式で作り直し、アプリに埋め込みなおす
7.アイコン部分以外は変更しないままリビルド
8.7で作ったXAPをアップロード
9.審査開始

 というわけです。
 しばらくしてエミュ実行したときに日時が固定になっておりこのミスに気付きましたが、審査中はアプリ申請の削除とか何もできず、せめて審査落ちすることを祈っていたのですが、こういうときに限って一発で審査が通りやがったよチクショー!
 ……ということで固定化していた部分の修正して、再度申請しなおすことにします。お騒がせしました。

平穏

 暑いですね。
 今年は電力不足を懸念して、扇風機を買いました。実は去年は扇風機を使わず、ずっとエアコンですごしてました。いいじゃないですかそれ以前の20数年間は自分の部屋にエアコンなんてない生活だったんですから!(つД`)

 とはいっても今年はそんな我侭も言ってられません。東日本大震災によって福島の原発が止まったことを切欠に、全国で慢性的な電力不足に陥っているわけで、夏になればいよいよ電力の余裕は無くなるでしょう。また震災直後のように、計画停電などがはじまるものと推測されます。そうなると、電力使用量が定期的に気になるような日々がまたやってくるでしょう。
 iPhoneやAndroidでは電力需要状況確認用アプリがあり、WindowsMobileにもあります。が、WP7にはありません。(そりゃ日本ではまだ出てないから当たり前ですが)しかし電力不足は今夏だけでなく今冬、下手すれば来夏すら続きかねないわけですし、今年の末には発売されるかもと噂されているのに、確認アプリが無いのは不便です。
 だから作りました。

TokyoElectricityState(仮)

 起動すると、最新の電力使用状況を自動的にダウンロードします。使用率に応じてメーターが移動し、一定数値を超えていると警告メッセージの表示が行われます。Pivotで作った別のページには、今日の状況一覧と、昨日の状況一覧が表示されます。
 アプリケーションバーにある更新ボタンを押せば、最新情報を取得しにいきます。
 ですがまぁサーバへの負荷を避けるために、更新間隔は5分以上置いてからやってほしいです。どうせそんなに頻繁に更新されるものでもないですし。一応アプリ側でも、15秒間の更新禁止処理を入れてあります。

 というわけで、簡単な紹介でした。わからないことだらけで開発に1ヶ月ほどもかかってしまいました。その割には中身はかなり質素です。勉強したり試したりしたことが多くて時間ばかりが取られてしまい……でもなんとか最低限の形にはなり、現在AppHubで申請中です。無事に通過すれば、マーケットプレイスから落とせるようになります。
 尚、データの取得にはWebAPIを使用しており、東京電力電力供給状況API様を使わせていただきました。アプリ内のaboutページにもURLと名前を載せさせていただきました。この場をかりて感謝いたします。

・蛇足
 最近、日記の最後に、タイトルに使ったMTGカードのフレーバーテキストを貼り付けておりますが、今回のフレーバーは疫病と災害の違いこそあれど、今回の大震災に対する私の願いでもあります。本当に一日でもはやく復興が完了することを、心より祈っております。

疫病がドミナリアからすべてを奪ったが、夢だけは奪えなかった。エラダムリーは夢だけで十分であることを祈った。

次元の門

 6/8に品川にてMicroSoft公式のWP7イベント、「Windows Phone Developer Day」が開催されました。残念ながらこのイベントは招待性イベントのため私は参加できませんでしたが、そのときの内容がUstreamで中継され、録画されたものが見られるようになっています。

 このイベントでは、WP7次期バージョンにあたる”Mango”の開発途中の実機がお披露目されました。すでにエミュで内容を見てはいましたが、実際に端末上で動いているのを見るとちょっとした感動ものです。またエミュではわからなかった機能などもいくつか見られ、興味がある人にとっては必見の内容になっています。

 しかしこのイベントで一番度肝を抜かれた発表は、

 会場参加者の人でアプリ開発の意思を示せば、全員にMangoの検証用実機を無償提供するという大盤振る舞いな発表です。また、参加できなかった人でも抽選で同じものが手に入るそうです。(USTで中継見てた人だけかと思ったけどそうでもないのかな……? この辺は詳細がわかり次第追記します)
 残念ながら実機はまだ準備中で実際の提供はもう少し先になるとのことですが、これは今からかなり楽しみですね。
 尚、イベント当時のTwitterでの呟きがまとめられていますので、よろしければそちらもどうぞ。全部で1600以上の呟きがあり、かなりの注目を集めていたことがわかります。
 今回のイベントを機に興味を持った人もそこそこいるはず。WP7の国内展開に向けて、これからますます盛り上がっていくことでしょう。

(でも正直なところ、予想通りとはいえど日本語UIはちょっと格好悪いんだよなぁ……ミュージックとかアーティストとかの部分だけ英語のままならいいと思うんだけど)


空は裂け、大気は割れてかき乱れた。ドミナリアへのファイレクアの侵略がついに始まったのだ。

ウルザの青写真

 WP7アプリ作ってて悩んだ箇所のメモ程度に。
 将来誰かが同じ問題で悩んだときに、少しでも参考になれば。

・Silverlight for Windows Phone Toolkit のコントロールを配置する
 具体的に言うと「DatePicker」を配置したくて、ツールボックスに並んでなかったのでちょっと悩んでしまったのですが、ググってみたところSilverlight for Windows Phone Toolkitの中に含まれているらしいです。ふむ。
 これを使えるようにするにはまず、Silverlight for Windows Phone Toolkitを開発マシンにインストールします。最新のものを導入したほうがいいと思うので、リンクは張りません。ググればすぐダウンロードページ出てくるのでそこから導入してください。
 で、次にプロジェクトの参照に以下の参照を追加します。(ソリューションエクスプローラーのReferencesを右クリックしてAdd References)
Microsoft.Phone.Controls.Toolkit

 次はコントロールを貼り付けたいPageのXAMLを開いて、「phone:PhoneApplicationPage」のxmlns:~~ ってのが並んでいる箇所に以下の構文を追加します。
xmlns:toolkit=”clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone.Controls.Toolkit”
 最後。以下のような構文でXAMLに直書きします。<>を全角で書いてあるのでコピペの場合は注意。
toolkit:DatePicker Height=”65″ HorizontalAlignment=”Left” Margin=”10,10,0,0″ Name=”testDatePicker” VerticalAlignment=”Top” Width=”169″ FontSize=”12″ />
 (一度、適当なテキストボックスなどを作成し、その頭の部分の「TextBlock」だけを「toolkit:DatePicker」って書き換えてやるのが簡単かと思います)
 この、最後の部分が最初よくわからなくて悩んでしまいました。当初はSilverlight for Windows Phone Toolkitをインストールすればツールボックスに表示されるようになるのだと、思い込んでいたものでして。
 とりあえずこの方法で追加してしまえば、後は普通のコントロールと同様に扱えます。MSさんDatePickerは標準に採用してくださいです……個人的にはMapよりも使用頻度が高いと思うのですがいかがか。

※追記----------------
2011.07.18
 Datepickerを表示したときのアプリケーションバーのアイコン画像は場所とファイル名が決められています。なので、それをこちらから用意してやらないと、表示されません。
 アイコン画像はToolkitをインストールしたところにあります。
(64bit環境でデフォルトの場所なら多分、 C:\Program Files (x86)\Microsoft SDKs\Windows Phone\v7.0\Toolkit\Feb11\Bin  のIconsフォルダ内)
 これを、ソリューションエクスプローラーから新しく「Toolkit.Content」という名前のフォルダを用意してやって、その中にコピーして使用します。次の項目に書いてあるのと同じようにプロパティを設定してやってビルドすれば表示されるようになります。
 多分これはSilverlight Toolkitのほかのコントロールも一緒だと思います。検証してませんけど。
 あとこの情報は、Toolkitのサンプルにしっかり載っていました。わからないことがあったらまずはサンプルを見てみましょう。
kazuakix様、助言ありがとうございました)
※----------------追記ここまで

・アプリケーションバーは、デフォルトではコメントアウトされている!
 タイトルのまんま。
 XAMLの下のほうに、「<!–Sample code showing usage of ApplicationBar–>」ってなってる部分があります。この下に書いてある部分をコメント解除すれば、表示されるようになります。このアプリケーションバーに関しては、基本的にXAMLで弄るしか手はないようです。ちなみに私はXAMLはWP7ではじめて触るので、わからんことも多いですが、大体はフィーリングでどうにかなってます!Σd(・∀・)
 あ、あと注意点としては、ボタンに指定するアイコンはプロジェクトに取り込んでおく必要があります。WP7標準なボタンは「C:\Program Files (x86)\Microsoft SDKs\Windows Phone\v7.0\Icons」に入ってますので、それを取り込めばOK。(上のパスは64bit環境のものです)
 尚、取り込んだ後にそのアイコン画像のプロパティでBuild Actionを「Content」に、Copy to Output Directoryを「Copy if newer」にするの忘れずに。

 今のところはこんなもんです。
 なんかあったらまた追記するかもしれません。

着想から下絵へ、そして実際のものへ。