MCTS Windows Applications Development with Microsoft .NET Framework 4 取得
ここのところ仕事が忙しかったり Windows Phone アプリケーショントライアスロン参加でアプリ作りに手一杯だったり DQ X に興じてたりでちっとも blog が書けていませんでしたが、このままだとネタが溜まる一方なので少しずつでも書いていこうと思います。
……で、まずは報告から。
2012 年度上期もネタに困って会社での半期目標に MCP 受験(今回は 70-511 )を掲げていたので、なんとか上期中に受けてきました。
意外と Windows Form 周りの出題もあって危なかった( Visual Studio 2010 で Windows Form プロジェクトを作った記憶がない位にはご無沙汰なので。。。)ですが、無事合格して WinAP/.NET 4 を取得しました。
まぁ、例によってこれで目標半分達成なわけですが。。。
16 進数文字列の処理
ここのところお仕事過多な事もあって blog がちっとも更新出来ていません。。。
「 WebService から情報を取得するアプリケーションの作成」の 3 回目は手元で一生懸命原稿を書いているところです。今しばらくお待ちくださいませ><
WebService から情報を取得するアプリケーションの作成 (2)
それでは実際に Rx を利用した Windows Phone アプリケーションでの Web アクセス処理について見ていきましょう。
続きを読むWebService から情報を取得するアプリケーションの作成 (1)
現時点で 5 つ程 Marketplace にアプリケーションを登録していますが、実のところ通信を伴うアプリケーションがひとつもありません。
折角のスマートフォンなのに通信しないのはもったいないので、 WebService から情報を取得するものを作ってみたいと思います。
今回の題材
この手の題材としてはベタですが、 Twitter のタイムラインを取得するアプリケーションを作ってみます。
どうせなので、ハッシュタグ検索、 OAuth 認証を伴う Home Timeline / User Timeline の取得、つぶやきの投稿、 User Streams を利用したタイムラインの取得までをやってみようと思います。
なお、 Twitter には他にも お気に入り、 Direct Message 、フォロワー情報、リストなどの機能もありますが、基本的なものを抑えておけば、後は接続する API やパラメータが違うだけで同様の手順で対応可能だと思われます。
Windows Phone の通信処理は非同期、 Windows Phone で非同期処理と言えば……
セッションアフターフォロー記事でも書いた通り、非同期処理は記述が煩雑になりやすいので、 Rx を利用して記述します。
また、 Twitter では WSDL も XSD も公開されていません。そのため WebClient や WebRequest / WebResponse を使用して自前でアクセス処理を記述する必要がありますが、これらのクラスをそのまま使うのはまた面倒ですので、 やはりアフターフォロー記事で紹介した ReactiveProperty の AsynchronousExtensions を利用させて頂きましょう。
まずはつなぎ先を知る
対向の WebService が自分で作成したものは別として、接続先の仕様を知らなければつなぎようがありませんので、まずは Twitter WebService の仕様を確認しておきます。
なお、今回は Windows Phone での WebService アクセスがメインなので、個々の Twitter API の詳細については特に説明は行いません。
検索 API
Stream API
個人制作アプリケーション第 5 弾の紹介 - Tap RHYTHM!!
昨年末のハッカソンで 2 本目として作成開始して年末に Marketplace に提出したものの 5.5 に引っかかって審査落ちしたままずるずると修正に手間取っていたものが、ようやく公開されました。
端的に言うとボタンを連打するアプリです。
60 秒間、目標とした速度で画面内のボタンを連打してください。(ただそれだけです :p )
本当は 60 秒間の速度変化とかをグラフ化したかったんですが、技術力が足りず><
いづれバージョンアップしてグラフ表示には対応したいと思います。。。
なお、このアプリを作成するに当たり、 BPM 選択用のコントロールに INFRAGISTICS 様の NetAdvantage for Windoes Phone に収録されているスライダーを使用させていただきました。