スマートフォン勉強会
   @関西#16




  楽しいアプリ制作の会
    代表 TWorks
あ…ありのまま今起こった事を話すぜ!

  おれは伊勢さんと飲んでいたと思ったら
  いつのまにか登壇していた!




すまべん@関西#16             1
 HN: TWorks
 本名: 大場知悟(Tomonori OHBA)
 TwitterID: @tworks
 (株)PFUでアプリ開発やってます
   iOS/Android/WPF/Silverilghtなど
 コミュニティー
    楽しいアプリ制作の会
    Silverlight Square(新大阪)
    WP Arch(関西スタッフ)
すまべん@関西#16                          2
画面に画像を貼り付けるだけ
マルチタッチジェスチャーで画像の拡大/
 縮小




すまべん@関西#16         3
Appleがマルチタッチ関連特許
 を取得
タッチスクリーン・ディスプレ
 イを備えるポータブル多機能デ
 バイスと連動して使用するため
 の、フレーム・コンテンツを含
 むページ・コンテンツの表示技
 術に関するコンピュータ実装方
 法
すまべん@関西#16          4
Apple以外のデバイス、終了のお知らせ。
    本当にありがとうございました。




すまべん@関西#16              5
冗談はさておき、


    開発者に影響ないよね!?
    デバイスメーカーさんガンガレ!
              ってことで。

すまべん@関西#16              6
本題。


すまべん@関西#16         7
以下の順番でやってみる
1. iOS
    ↓
2. Android
    ↓
3. WindowsPhone 7

すまべん@関西#16          8
UIScrollViewの中に対象UIを配置。




すまべん@関西#16                 9
UIScrollViewDelegateプロトコルを実装
デリゲート関数
 viewForZoomingInScrollViewで拡大縮小
 対象のViewインスタンスを返戻
 ScrollViewインスタンスのdelegateを設
  定




すまべん@関西#16                      10
DEMO


すまべん@関西#16          11
実は手抜きでした、ごめんなさい
 GestureRecognizer
  http://developer.apple.com/jp/devcenter/ios/library/documentation/EventHandlingiPhoneOS.pdf


         ジェスチャ                                                UIKitのクラス

 タップ                                    UITapGestureRecognizer

 ピンチイン/アウト                              UIPinchGestureRecognizer

 パン(ドラッグ)                               UIPanGestureRecognizer

 スワイプ                                   UISwipeGestureRecognizer

 回転                                     UIRotationGestureRecognizer

 長押し                                    UILongPressGestureRecognizer
すまべん@関西#16                                                                                      12
LinearLayoutの中に対象UIを配置。




すまべん@関西#16                 13
 ScaleGestureDetector(OS 2.2以降)
   ScaleGestureDetector.OnScaleGestureListener
  3つのインタフェースを実装
    onScaleBegin
    onScale
    onScaleEnd
 拡大縮小するオブジェクトのOnTouchListenerインタ
 フェースを実装
  ScaleGestureDetector#onTouchEvent
   ←ScaleGestureDetectorと拡大縮小オブジェクトが
     紐付く

すまべん@関西#16                                        14
対象オブジェクト#
 onTouchリスナ             onScaleBegin
   MotionEvent event   (2点タッチ開始)
ScaleGestureDetect        onScale
 or#onTouchEvent       (ピンチイン/アウト)

MotionEventの状態を解析し       onScaleEnd
て適切なジェスチャリスナ
を呼び出す
                       (2点タッチ終了)

すまべん@関西#16                             15
ScaleGestureDetector.OnScaleGestureL
 istener
            onScaleBegin
           (2点タッチ開始)
              onScale
           (ピンチイン/アウト)

             onScaleEnd
           (2点タッチ終了)
すまべん@関西#16                          16
DEMO


すまべん@関西#16          17
Gridの中に対象UIを配置。




すまべん@関西#16         18
WP7ToolKit:GestureListenerを配置
  拡大縮小の対象オブジェクトに
12個のジェスチャーイベント
 GestureBegin, GestureCompleted
 Tap
 DoubleTap
 Hold
 DragStarted, DragDelta, DragCompleted
 Flick
 PinchStarted, PinchDelta, PinchCompleted
すまべん@関西#16                                  19
void ImageOnPinchStarted (
    object, PinchStartedGestureEventArgs)
             (2点タッチ開始)


          void ImageOnPinchDelta(
       object, PinchGestureEventArgs)
      (ピンチイン/アウト)


すまべん@関西#16                                  20
各プラットフォーム毎に実装方法あるけど、
 考え方は似てる
WindowsPhone 7が一番実装簡単!
まんごーまだー?(定期ポスト)




すまべん@関西#16                21
 iPhoneアプリレビュー
 http://iiphoneapp.blog51.fc2.com/
 TechBooster
 http://techbooster.jpn.org/
 tmytのらくがき
 http://d.hatena.ne.jp/tmyt/
 MSDNマガジン
 http://msdn.microsoft.com/ja-
 jp/magazine/gg650664.aspx

すまべん@関西#16                           22
スマートフォン勉強会関西#16(iOS,Android,WP7マルチタッチ)

スマートフォン勉強会関西#16(iOS,Android,WP7マルチタッチ)