Windowsストア アプリ 縦書きビューワー おまけ02 ~Windows Phoneへの移植~

マイクロソフトの田中達彦です。Windowsストア アプリとして作成した縦書きビューワーを、Windows Phoneに移植してみました。スクリーンショットはこんな感じです。 WindowsストアからWindows Phoneへの移植は、プログラムの大きさや、ストア アプリ特有の機能をどれだけ使っているかにもよりますが、今回の縦書きビューワーの例だと、ざっと1時間というところです。設定チャームの部分をどうしようか悩みましたが、上記のスクリーンショットのようにほぼXAMLのコピペで移植できちゃいました。 .xapファイルを添付したので、興味がある方はインストールしてみてください。折を見て、プロジェクトを公開する予定です。 マイクロソフト田中達彦 Reader.zip


Windows Phone 7.5 ゲーム プログラミングの本を執筆中

マイクロソフトの田中達彦です。ついに昨日、日本でのWindows Phoneの発売が発表されました。早く欲しいです。 Windows Phone 7.5のゲーム開発の本を執筆しています。9月中の発売を目指しています。内容はこんな感じです。(変わるかもしれません) 現在、第8章を執筆中。こんな感じです。 もう少しいろいろなことが決まったら、また記事を書きます。 マイクロソフト田中達彦 ===================2011/9/1 追記 現時点での発売は、9月下旬を予定しています。予定していた内容の中で、第9章のカードゲームを今回の企画から外しました。 田中達彦===================


Windows Phone 7 セミナー 本日Ustreamで実況中継

マイクロソフトの田中達彦です。今日(2011年7月21日)、Windows Phone “Mango”のセミナーを開催します。セミナーはすでに満席ですが、Ustreamにて配信します。 セミナーの概要は以下のとおりです。13:30-14:40 『WP アプリケーション開発実践 ~画面開発編~』14:50-16:00 『WP アプリケーション開発実践 ~通信編~』16:10-17:20 『WP アプリケーション開発実践 ~XNA 編~』Ustreamでの実況中継は、下記サイトをご覧ください。http://www.facebook.com/reqs.php?type=1#!/mswinux?sk=app_196506863720166 マイクロソフト田中達彦


Windows タッチ&ジェスチャ研究室 Vol.04 ~Windows Phoneのタッチ#2~

2011年4月15日に、Windows Phone 7 アプリケーション開発 Deep Diveというセミナーを開催しました。そのセミナーのタッチ&ジェスチャーのセッションをもとに説明します。今回は、そのセッションをもとにした記事の第2回目です。使用したスライドは、セミナーのWebサイトからダウンロードできます。 前回の記事 : Windows Phoneのタッチ#1Windows Phoneでタッチやジェスチャに対応する場合、大きく4つの方法があります。1つは前回説明したScrollViewerコントロールを使う方法です。今回は難易度1のマウスイベントを使う方法と、難易度2のマニピュレーションを使う方法を紹介します。 マウスイベントを使う方法は、従来のWindows用のアプリケーションを作る時の方法と同じです。タップした時になにかさせたいコントロールのマウスイベントを使うだけです。Windows Phoneにはマウスはありませんが、Windows Phoneに搭載されているSilverlightにはマウス関係のイベントがあり、タップをマウス関連のイベントに変換してくれます。例えば画面をタップした時に何かさせたいときは、MouseLeftButtonUpイベントに対応するイベントハンドラーを作成し、その中にプログラムを記述します。ただ、この方法は2つの指を使うジェスチャーを検知できません。2つの指を使うときは、マニピュレーション(Manipulation)を使います。 マニピュレーションには、2つのふるまいがあります。1つは、1本指でさわっているときのふるまいです。もう1つは、2本指でさわっているときのふるまいです。1本指と2本指で、取得できる情報に差があります。これについては後ほど説明します。 画面をさわったときにManipulationStartedというイベントが発生します。このイベントで、さわった位置を取得できます。さわったまま指を動かすと、ManipulationDeltaというイベントが発生します。指の移動に伴い、画面の描画をおこなうときはこのイベントを使用します。そして指を画面から離すと、ManipurationCompletedというイベントが発生します。 1本指でタッチしているときはパンとみなし、Transrationという情報を取得できます。2本指でタッチしているときはピンチまたはストレッチとみなし、Scaleという情報を取得できます。1本指でタッチしているときはScaleの情報はなく、2本指でタッチしているときにはTranslationの情報はありません。 以下のソースコードは、マニピュレーションのテスト用のプログラムです。画面にテキストブロックを10個貼り付け、PhoneApplicationPageのManipulationStarted、ManipulatiponDelta、ManipulationCompletedイベントに対応したイベントハンドラーにそれぞれ以下のコードを追加します。 private void PhoneApplicationPage_ManipulationStarted(object sender, ManipulationStartedEventArgs e){  textBlock1.Text = “StartX = ” + e.ManipulationOrigin.X;  textBlock2.Text = “SrartY = ” + e.ManipulationOrigin.Y;} private void PhoneApplicationPage_ManipulationDelta(object sender, ManipulationDeltaEventArgs e){  textBlock3.Text = “ScaleX = ” + e.DeltaManipulation.Scale.X.ToString();  textBlock4.Text = “ScaleY =…


Windows タッチ&ジェスチャ研究室 Vol.03 ~Windows Phoneのタッチ#1~

今回から数回にわたり、Windows Phoneでのタッチとジェスチャーの話をします。Windows Phoneだから何か特別ということはあまりなく、基本はSilverlightプラスアルファと考えれば良いので、SilverlightやWPFのアプリケーションに応用できるものもあります。本文中でも、Windows向けのSilverlightやWPFを意識した説明を入れています。 2011年4月15日に、Windows Phone 7 アプリケーション開発 Deep Diveというセミナーを開催しました。そのセミナーのタッチ&ジェスチャーのセッションをもとに説明します。使用したスライドは、セミナーのWebサイトからダウンロードできます。 Windows PhoneでSilverlightを使用したアプリケーションを作成する場合、どのようにしてタッチやジェスチャーに対応させるかは、大きく上記の4つの方法があります。まずScrollviewerを使用する方法で、これがいちばん簡単です。次にマウスイベントを使用する方法があります。この方法は、Windows用のアプリを開発されたことがある方であれば、すぐに実装できます。そして、マニピュレーションを使う方法があります。マニピュレーションとは、指がどれくらい動いたのかという情報を簡単に取得できる方法です。マニピュレーションは、Windows版のSilverlightにはない機能で、Windows Phone用のSilverlightではサポートされます。WPFにもあります。最後に、Touchクラスを使う方法があります。Touchクラスを使うと、指の動きを生のデータとして取得できます。 今回はこの中で、難易度0のScrollviewerコントロールを使用する方法を説明します。 上の図は、複数のボタンを縦に並べて貼り付けたアプリケーションです。ボタンの数が少ないときは画面に全てのボタンが表示されますが、ボタンの数が増えてくると画面からはみ出してしまいます。この例では、いちばん外側にGridがあり、その中にさらにGridが入っていて、その中にStackパネルが入っています。そのStackパネルの中に、ボタンが並んでいます。このようなアプリケーションを作成して実行しても、画面からはみ出した部分にあるボタンを表示させることはできません。画面からはみ出していても、スクロールできないからです。 このような場合には、スクロールさせたいパネルをScrollviewerコントロールで囲みます。以下の図は、StackパネルをScrollviewerで囲った例です。Scrollviewerコントロールで囲うと、その部分をパン(指で画面上をなぞる)またはフリック(指で触り、はじくようにして移動させながら離す)でスクロールできるようになります。Windows Phone用のアプリケーションを作る場合、表示させたいものが画面より大きくなる可能性があれば、それをScrollviewerで囲えばよいのです。なお、Scrollviewerコントロールのすぐ内側には1つのコントロールしか含むことができないため、GridやStackなどのパネルをScrollviewerの中に用意し、そのパネルの中にコントロールを貼り付けることで複数のコントロールに対応させられます。 Windows用のSilverlightまたはWPFにもScrollviewerコントロールがあります。Windows Phone用のScrollviewerは画面からはみ出しているときに、ジェスチャによって表示位置を変えることができます。Windows Phone用Silverlightが、そのような機能を持っているからです。しかし、Windows用のSilverlightまたはWPFのScrollviewerコントロールを使用しても、ジェスチャには対応していません。Windows用SilverlightまたはWPFのScrollviewerを使用してスクロールさせるには、指で動いた距離を計測し、その距離をもとにScrollviewerコントロールの表示位置を変えます。以下のサンプルコードは、WPFでScrollviewerを使用し、その中の表示位置を変えるサンプルです。 void ScrollIconImage(double value){    IconPanelOffset += value;     if (IconPanelOffset < 0)  // 左端を超えた場合        IconPanelOffset = 0;    else if (IconPanel.ActualWidth – iconPanelScroll.ActualWidth < IconPanelOffset)  // 右端を超えた場合        IconPanelOffset = IconPanel.ActualWidth – iconPanelScroll.ActualWidth;     iconPanelScroll.ScrollToHorizontalOffset(IconPanelOffset);} Scrollviewerコントロールには、ScrollToHorizontalOffsetとScrollToVerticalOffsetというメソッドがあり、表示位置を引数として指定してメソッドを呼び出すことにより、表示位置を変えることができます。サンプルでは、IconPanelOffsetフィールドという、Scrollviewerの表示位置を示すフィールドがあり、そこにどれだけ移動するかの情報を足す/引くことにより、表示位置を変えています。 マイクロソフト田中達彦


Windows Phone Developer Day の中継

マイクロソフトの田中達彦です。今日、Windows Phone Developer Dayというイベントを開催します。Windows Phoneは、欧米ではすでに発売され、日本でも発売が待たれるスマートフォンです。そのWindows Phone用のアプリケーション開発に関するイベントが、今日開催されるWindows Phone Developer Dayです。イベントの状況は、Ustで配信されます。http://www.ustream.tv/channel/wpdevday セッションのスケジュールは以下の通りです。13:30-14:00 人と人とをつなげる新しいアプリケーション開発の世界へ Windows Phone14:10-15:20 Windows Phone “Mango” アプリケーション開発 – ツールとUI編15:40-16:50 Windows Phone “Mango” アプリケーション開発 – データと通信編17:00-17:50 開発者が語るWindows Phone Windows Phone “Mango” とは、日本語版として提供されるWindows Phoneのコードネームです。時間の許す方は、ぜひご覧ください。 マイクロソフト田中達彦


Windows Phone 7 Deep Dive で使用した PPT

マイクロソフトの田中達彦です。2011年4月15日に開催した、「Windows Phone 7 アプリケーション開発 Deep Dive」で使用した、担当セッションのスライドを公開します。今回公開するスライドは、 – Windows Phone 7 基礎の基礎 Deep Dive – Windows Phone 7 タッチとゼスチャー Deep Diveです。 マイクロソフト田中達彦 WP7DeepDive_ttanaka110415.zip


Windows Phone 7 アプリケーション開発 Deep Dive

マイクロソフトの田中達彦です。「Windows Phone 7 アプリケーション開発Deep Dive」というセミナーを、2011年4月15日(金)に開催します。 詳細は以下のサイトをご参照ください。このサイトより、セミナーの受講登録もできます。https://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032480679&Culture=ja-JP [概要]場所:日本マイクロソフト 品川本社日時:2011年4月15日(金) 13:30-19:00セッション:- アプリケーション開発基礎の基礎 Deep Dive- Push サービス活用 Deep Dive- センサー活用 Deep Dive- タッチ&ジェスチャー活用 Deep Dive- soap エンドポイント活用 Deep Dive 興味のある方は、ぜひご参加ください。 マイクロソフト田中達彦


PDC10 日本版でWindows Phone 7についてしゃべります

マイクロソフトの田中達彦です。2010年10月29日、30日に米国にて開催して好評をいただいていたPDC10の日本版を開催することになりました。11月25日、26日に東京で開催されるThe Microsoft Conference Japan (通称MSC) に併設という形で開催されます。 ところがPDCの人気が高く、今日MSDN Flashで告知をしたところ、ブログに書く間もなくあっという間に定員に達してしまいました…  ごめんなさい。 僕自身は、「ついに公開! Windows Phone 7 知っておくべき開発の心得」というセッションを担当しています。Windows 7についても、このブログで情報を出していきますので、PDC10に参加できなかったという方も楽しみに待っていてください。 [参考資料]米国で開催されたPDC10についてhttp://blogs.msdn.com/b/ttanaka/archive/2010/10/27/pdc-2010-10-29.aspxhttp://blogs.msdn.com/b/ttanaka/archive/2010/10/28/pdc-2010-10-30.aspxマイクロソフト田中達彦


Windows Phone 7

マイクロソフトの田中達彦です。Windows Phone 7のラウンチイベントが今朝未明に米国にて開催されました。http://www.microsoft.com/presspass/presskits/windowsphone/詳しくは、高橋忍さんのブログで紹介されています。 僕自身も、この三連休にいろいろとWindows Phone 7を試してみました。といっても実機はないので、エミュレーターを使っています。エミュレーターを含む開発環境一式は、下記サイトよりダウンロードできます。http://www.microsoft.com/downloads/en/details.aspx?FamilyID=04704acf-a63a-4f97-952c-8b51b34b00ce&displaylang=en サンプルもいろいろ揃っているので、サンプルをいじっているだけでもかなり面白いです。ちなみに、開発画面はこんな感じ。 使い慣れているVisual Studioなので、違和感なく開発できます。今のうちに、アプリをいろいろ作っておく予定です。 マイクロソフト田中達彦