狠狠撸

狠狠撸Share a Scribd company logo
ここまでできる!
WindowsPhone7!
すまべん関西&Androidの会関西支部 共同開催
2010/09/25
tmyt
こんにちは!
? tmyt/つもゆた っていいます。
? だいたい大学院生をやっています。
? WindowsMobileシリーズに一途です。
 ? 先日iPhone/iPad持ってないのでdisられました。
? Azureaとか作ってます。
? C++担当です。
? ARMのアセンブラは一般教養です!
本日のお題
? ついにRTMされたWindowsPhone7!
? そしてSDKも先週RTWされましたね!

? でも気になるのは結局なにができるの?
 ? Silverlightだからこそできる!を中心に見ていきましょう!
最初からネガティブな話題で申し訳ないので
すが…
WindowsPhone7でできなくなったこと
?   タスクを並列して2個以上同時に実行すること
?   ネイティブコードを実行すること
?   実行中にコードを書き換えること
?   変数に代入した機械語を実行すること
?   他人のプロセスをフックしていろいろすること
?   ファイルシステムへアクセスすること
?   システムDLLをP/Invokeしていろいろすること

? などなど。変態的なことは基本的にできません
現時点でできないこと
? 日本語入力
 ? これ重要。
 ? 日本人からするとただこの一つに尽きます
  ? 解決策を後ほど…
? エミュレータ上でのLiveIDの設定
? エミュレータ上でのメールアカウントの設定
じゃぁできるようになったことは????
できるようになったこと
?   加速度センサへのアクセス
?   DeepZoomの利用
?   4点以上のマルチタッチ
?   Silverlightを使用したアプリケーション開発
?   PushNotificationの利用
?   統合されたロケーション情報へのアクセス
従来のWindowsMobileとの違い
?   外部の情報へのアクセスにTaskを使用
    ?   写真を撮るも開くも、アドレス帳から選択してくるのもみんな同じ
        手順で利用可能に
?   タスクが殺される前にコンテキストの保存をしないといけなく
    なった
?   開発がSilverlightになったのでXAMLをいじらないといけなく
    なった
?   XNAが使えるようになった
    ?   Silverlight+XNAのキメラもできます!
新しくなったユーザインターフェース
? PivotやPanoramaといったMetro UI
 ? もちろんユーザアプリケーションも利用できます
? Hubからはじまるオペレーション
 ? People,Game,Music+Video,Photo,Office…
? シンプルで大きなコントロール
新しくなった開発フロー
? Blendでデザイン
 ? UIの配置
 ? アニメーションの作成
? VisualStudioでコードの実装
? アプリケーションのデバッグ
? マーケットプレイスへの配信
開発する上での注意
?   XAPは400MBまで
?   マーケットプレイスを経由していないアプリケーションは10個まで
?   UIスレッドをブロックするコードは書けません
?   Unlockできる端末は3台まで
?   Etc…
コードで比較してみます

UIの実装が圧倒的に楽になりました
某アプリケーションのこれ
颁++だとこんなかんじ
叠濒别苍诲でかくとこう
文字が読める!!
すばらしいですね!!
Blendすばらしいですね
? あのUIがコードを1行も書かずに実現できます
? Silverlightすごいですね
? では次からは罢补蝉办や笔补苍辞谤补尘补などを実例を交えて绍介します
使用例1

様々なTask
いろいろなものを開くTask
? アプリケーションからデータにアクセスする場合はTaskを経由しなけれ
  ばなりません。
? Taskはこんなのが用意されています
 ?   CameraCaptureTask
 ?   EMailAddressChooserTask
 ?   EmailComposseTask
 ?   MarketplaceDetailTask
 ?   MarketplaceSearchTask
 ?   PhoneCallTask
 ?   PhoneNumberChooserTask
 ?   PhotoChooserTask
 ?   SaveEmailAddressTask
 ?   SavePhoneNumberTask
 ?   SearchTask
 ?   SmsComposeTask
 ?   WebBrowserTask
Taskを使用する際の注意点
? Taskを呼び出すにはShow関数を呼びます
? Taskを呼び出すと自分のアプリケーションは終了されます
? Taskから帰ってくると自分のアプリケーションが再度起動します。
 ? その際にCompletedイベントにハンドラを設定した直後にハンドラ
   が呼び出されます。
 ? Loadedイベントでイベントハンドラを設定するのがおすすめ
? エミュレータで実行するとタスクから戻ってくると30秒程度待ち
  時間があるのでその間にデバッグを再度実行しましょう
CameraCaptureTask
?   カメラを起動して画像を入力
?   WMでいうところのCameraCaptureDialog
?   C++だとSHCameraCapture
?   撮影した写真は保存されません
EMailAddressChooserTask
? アドレス帳からメールアドレスを選択します
EmailComposseTask
? Emailを新規作成します
? 送信先や、件名、本文などを設定できます
? エミュレータで动作しないので详细をチェックできてません
MarketplaceDetailTask
? マーケットプレイスで指定した製品の詳細情報を呼び出します
? 動作確認する方法が現時点で無いので試していません
MarketplaceSearchTask
? マーケットプレイスを検索します。
? これもLiveIDを設定できないので試せません。
PhoneCallTask
? 指定した番号へ電話をかけます。
? 左図のような確認画面がでます。
PhoneNumberChooserTask
? アドレス帳から電話番号を選択します。
? 選択後PhoneCallTaskを使って電話をかけたりします
PhotoChooserTask
? 保存されている画像ファイルを読み込むために使用します
SaveEmailAddressTask
? Emailアドレスをアドレス帳に保存します
SavePhoneNumberTask
? 電話番号をアドレス帳に保存します
SearchTask
? OS標準のWeb検索を呼び出します
? 検索文字列を任意に設定できます
SmsComposeTask
? SMSを作成します
 ? 补耻でいう颁メール、顿辞肠辞尘辞のショートメールですね
WebBrowserTask
? Webブラウザを起動します
? URLを指定するとそのURLを開いてくれます
使用例2

Pivot/Panorama
Pivot
? WMでいうところのタ
  ブコントロールのような
  もの
? タブページ間に強い
  つながりが無い場合
  に使う
? 左右フリックでページ
  切り替え
? かっこいい
Panorama
? Pivotよりページ間の
  つながりが強い
? ページは1枚の大きい
  横長の一部が表示さ
  れる
? フリックでゆるやかに
  ページ切り替え
? かっこいい
使用例3

ロケーション
WMでのロケーション
? GPSのみ
? Intermidiate Driverが仮想化してくれていた
? 基地局測位は自分でがんばるしかない
 ? PHSだとCOM叩きますよね
 ? 3GだとRILのCE向けAPIを叩きます
    ? 叩いた後GoogleのAPIとかに投げると経度緯度に変換してくれたり
? いろいろ大変でした。
WP7でのロケーション
? とても楽になりました。
? .NET 4のロケーションAPIと互換
    ? つまりWindows7のロケーションAPIと互換
?   GPSを扱えます
?   基地局測位もあつかえます
?   Wifi測位も使えるかもしれません
?   全部まとめて1つのインターフェースで提供されます

? 位置検出デバイスを指定できないのがちょっと残念
コードで書くとこんな感じ
 public partial class Location
  {
     GeoCoordinateWatcher geo;
     public Location()
     {
        geo = new GeoCoordinateWatcher();
        geo.PositionChanged += new
EventHandler<GeoPositionChangedEventArgs<GeoCoordinate>>(g
eo_PositionChanged);
     }

    void geo_PositionChanged(object sender,
GeoPositionChangedEventArgs<GeoCoordinate> e)
    {
      // いろいろ
    }
  }
使用例4

DeepZoom
DeepZoomって?
? Deep Zoom は、高解像度のイメージをインタラクティブに表示
  できる機能です。アプリケーションのパフォーマンスに影響を及
  ぼさずにすばやく、イメージをズームインしたりズームアウトしたり
  できます。Deep Zoom では、複数解像度のイメージを用意し、
  スプリング アニメーションを使用することによって、滑らかな読
  み込みとパンを可能にしています。
 ? http://msdn.microsoft.com/ja-jp/library/cc645050(VS.95).aspx
? つまりGoogleMapのWebみたいなのをやるコントロールです
とりあえず使ってみる
?   Deep Zoom Composerで画像を分割、XMLを生成
?   VSのプロジェクトに追加
?   MultiScaleImageコントロールを配置
?   Sourceにxmlのパスを設定

? とりあえずこれだけ書けば使えます。
動的に画像をダウンロードする…?
? 画像キャッシュを自分で書かなくていい
 ? らくちん!
? 解像度に応じた画像を動的にダウンロードするってどこかで聞
  いたような???
これですね!
MultiScaleTileSource
? MultiScaleImageにXMLを指定した場合、DeepZoom用に生
  成したXMLでないとエラーになりました。
? さっきのアプリはもちろんDeepZoom用にXMLは作られていま
  せん
? このクラスを実装したクラスをImageSourceに指定することで
  画像のダウンロードをカスタマイズできます
使用例5

マルチタッチ
WP7のマルチタッチ
? Silverlightのマルチタッチです。
? つまりWindows7のマルチタッチと互換です。
? Touch.FrameReported イベントにハンドラを書いておくとマル
  チタッチイベントが捕捉できます。
? ピンチイン?ピンチアウトの検出などの気の利いた機能はありませ
  ん
 ? 自分で書きましょう
マルチタッチできるなら!
? やるしかないですよね!
 ? すこし时代遅れ感がありますが???
使用例6

Silverlght+XNA
XNAのクラスをSilverlightから
? XNAのクラスをSilverlightから呼べます!
? 深く叩いたわけではないのでどこまで呼べるかちょっとわかりま
  せんが…
そんなのいつ使うんだ!
? Silverlightで動的にWaveを生成して再生したいときですよ
? たとえばこんなとき。
実はあのアプリ
? RIFFヘッダとか動的に生成してます
? Sinウェーブも動的生成です。
? つまりWaveファイルを動的にメモリ上に構築してXNAで再生し
  ています

?あほです
使用例7

日本語入力を実現してみる
日本人の最大の悩み
? そう、それは、日本語入力
 ? WMではATOKとかインストールしてましたね
? Windows Phone 7では日本での発売が未定なのもあるのか
  IMEは実装されていません
 ? 今後実装されるでしょう!
? でもいま日本語入力が使いたい!とおもうのはしかたないこと。
? 悲しくも僕たちはデベロッパなのでIMEを作るかという発想にい
  たるわけです…
id:iseebiがやらかした
? 22:29:08 <iseebi> つもりん、AjaxIME実装した?
? 02:24:55 <iseebi> できたあああ

? たった4時間でid:iseebiがやってくれました。
これがそれ
せっかくなので
? コントロールにしました。
? 組み込むだけで日本語入力が使えます!
こんなかんじ
実装
? 裏でSocialIMEを叩いてます
? 文節の調整はサポートしてません
 ? だれかやって!
? エディットコントロールが2枚重なってます
? ローマ字変換は自前のテーブルです!
? http://d.hatena.ne.jp/tmyt/
 ? ここで配布してます!
かけあしで見てきましたが
? WindowsPhone7はSilverlightでできることがほとんどすべてで
  きます
? 表現力もiOSやAndroidに負けないぐらい高まりました
? 国内の発売が楽しみですね!
ご清聴ありがとうございました

More Related Content

Viewers also liked (6)

PPT
奥尘勉强会@関西#1
Yutaka Tsumori
?
PPT
Independent Myth Project
Ashley F
?
PPTX
础苍诲谤辞颈诲のおはなし++
Yutaka Tsumori
?
PPTX
#CollegeCash linkedin for students Chat Session
Steve Cassady
?
PPT
21 Tactics for Specialty Retailers
John Saywell
?
PPTX
Collegecashlinkedinforstudents october 11 2012
Steve Cassady
?
奥尘勉强会@関西#1
Yutaka Tsumori
?
Independent Myth Project
Ashley F
?
础苍诲谤辞颈诲のおはなし++
Yutaka Tsumori
?
#CollegeCash linkedin for students Chat Session
Steve Cassady
?
21 Tactics for Specialty Retailers
John Saywell
?
Collegecashlinkedinforstudents october 11 2012
Steve Cassady
?

Similar to Sumaben#11 (20)

PDF
TIZEN OS for smartphone Kickstart application development / はじめて学ぶアプリ開発入門
Hiroshi Sakate
?
PDF
HTML5 ~よくわからないけと?言葉た?けはよく聞きます~
Yusuke Hirano
?
PDF
HTML5 ~よくわからないけと?言葉た?けはよく聞きます~
Yusuke Hirano
?
PDF
技術者なら Kindle でしょ
Yoshitaka Seo
?
PPTX
ソフトウェア开発が好きだ
Koichi Ota
?
PDF
惭别迟谤辞厂迟测濒别础辫辫蝉さわってみた わんくま
c-mitsuba
?
PDF
短期间+大规模ゲーム开発でも破绽しない贬罢惭尝?厂颁厂厂
Shogo Iwano
?
PDF
サイドバー用アプリを XPages で開発してみよう!
Takeshi Yoshida
?
PDF
Gorilla.vim#6
MasatakaHigashijima
?
PDF
application Next Generation presented by android女子部
Yuki Anzai
?
PDF
Titanium Mobile ~本当にあったこわい話~
Atsushi Harada
?
PDF
Serverless on GCP
Hayato Yoshikawa
?
PPTX
顿测苍补尘辞顿叠だけでソシャゲを作ってみた
伊藤 祐策
?
PDF
鲍苍颈迟测のオンラインゲームを丑迟尘濒に移植してわかったこと
Kouji Hosoda
?
PDF
ネットワークについて
なおき きしだ
?
PDF
Apple信者だったボクは気づくとiPhone嫌いになっていたんだが ?iPhone 6 Plusへの苦悩の日々
Yu Uno
?
PDF
Yapc2012ltthon
Junya Murabe
?
PDF
Windows phoneファーストインプレッション
高見 知英
?
PDF
?箩蚕耻别谤测をおぼえよう!その1
Nishida Kansuke
?
TIZEN OS for smartphone Kickstart application development / はじめて学ぶアプリ開発入門
Hiroshi Sakate
?
HTML5 ~よくわからないけと?言葉た?けはよく聞きます~
Yusuke Hirano
?
HTML5 ~よくわからないけと?言葉た?けはよく聞きます~
Yusuke Hirano
?
技術者なら Kindle でしょ
Yoshitaka Seo
?
ソフトウェア开発が好きだ
Koichi Ota
?
惭别迟谤辞厂迟测濒别础辫辫蝉さわってみた わんくま
c-mitsuba
?
短期间+大规模ゲーム开発でも破绽しない贬罢惭尝?厂颁厂厂
Shogo Iwano
?
サイドバー用アプリを XPages で開発してみよう!
Takeshi Yoshida
?
Gorilla.vim#6
MasatakaHigashijima
?
application Next Generation presented by android女子部
Yuki Anzai
?
Titanium Mobile ~本当にあったこわい話~
Atsushi Harada
?
Serverless on GCP
Hayato Yoshikawa
?
顿测苍补尘辞顿叠だけでソシャゲを作ってみた
伊藤 祐策
?
鲍苍颈迟测のオンラインゲームを丑迟尘濒に移植してわかったこと
Kouji Hosoda
?
ネットワークについて
なおき きしだ
?
Apple信者だったボクは気づくとiPhone嫌いになっていたんだが ?iPhone 6 Plusへの苦悩の日々
Yu Uno
?
Yapc2012ltthon
Junya Murabe
?
Windows phoneファーストインプレッション
高見 知英
?
?箩蚕耻别谤测をおぼえよう!その1
Nishida Kansuke
?
Ad

More from Yutaka Tsumori (20)

PDF
Buri2019
Yutaka Tsumori
?
PDF
厂别迟蝉な话
Yutaka Tsumori
?
PPTX
齿础惭尝で条件分岐
Yutaka Tsumori
?
PDF
BuriKaigi2018
Yutaka Tsumori
?
PDF
未来(あす)齿补尘濒の1尘蝉に泣かないために
Yutaka Tsumori
?
PDF
Blync light for HACK
Yutaka Tsumori
?
PDF
础谤颈蝉迟别补のこと
Yutaka Tsumori
?
PDF
础谤颈蝉迟别补のコード补完
Yutaka Tsumori
?
PDF
せっけーのおはなし
Yutaka Tsumori
?
PDF
Community Open Day 沖縄
Yutaka Tsumori
?
PPTX
Twitter Client for ZSH (2)
Yutaka Tsumori
?
PPTX
贰肠濒颈辫蝉别も齿肠辞诲别も窓から投げ捨てろ!
Yutaka Tsumori
?
PDF
笔丑辞苍别から笔颁へ。
Yutaka Tsumori
?
PPTX
厂补尘产补4で础顿しよう!
Yutaka Tsumori
?
PPTX
Twitter Client for ZSH
Yutaka Tsumori
?
PPTX
础苍诲谤辞颈诲ではじめる闯补惫补
Yutaka Tsumori
?
PPTX
20120922 wdc with_ms_like
Yutaka Tsumori
?
PPTX
某Music unなんとか
Yutaka Tsumori
?
PPTX
たのアプ尝迟
Yutaka Tsumori
?
PPTX
よくわかる惭笔狈厂
Yutaka Tsumori
?
厂别迟蝉な话
Yutaka Tsumori
?
齿础惭尝で条件分岐
Yutaka Tsumori
?
BuriKaigi2018
Yutaka Tsumori
?
未来(あす)齿补尘濒の1尘蝉に泣かないために
Yutaka Tsumori
?
Blync light for HACK
Yutaka Tsumori
?
础谤颈蝉迟别补のこと
Yutaka Tsumori
?
础谤颈蝉迟别补のコード补完
Yutaka Tsumori
?
せっけーのおはなし
Yutaka Tsumori
?
Community Open Day 沖縄
Yutaka Tsumori
?
Twitter Client for ZSH (2)
Yutaka Tsumori
?
贰肠濒颈辫蝉别も齿肠辞诲别も窓から投げ捨てろ!
Yutaka Tsumori
?
笔丑辞苍别から笔颁へ。
Yutaka Tsumori
?
厂补尘产补4で础顿しよう!
Yutaka Tsumori
?
Twitter Client for ZSH
Yutaka Tsumori
?
础苍诲谤辞颈诲ではじめる闯补惫补
Yutaka Tsumori
?
20120922 wdc with_ms_like
Yutaka Tsumori
?
某Music unなんとか
Yutaka Tsumori
?
たのアプ尝迟
Yutaka Tsumori
?
よくわかる惭笔狈厂
Yutaka Tsumori
?
Ad

Sumaben#11