SlideShare uma empresa Scribd logo
1 de 31
Baixar para ler offline
iOSアプリの
VoiceOver対応開発   Rev.2




              伊藤  伸裕
    第44回Cocoa勉強会関⻄西
⾃自⼰己紹介
•  伊勢  シン(伊藤  伸裕) といいます!
•  ⼤大阪で主にスマートフォンのアプリ作っています
   –  主にiOS (しあわせ)
   –  たまにAndroid (かなしい)
   –  Windows Phone (やりたいけど仕事がない)
   –  Windows 8 (やりたいけど(ry)

•  スマートフォン勉強会の関⻄西代表やってます。
•  Microsoft MVP for Device Application Development
  (Oct 2011 - Sep 2012)
   –  簡単に⾔言うとMS製品よく広めてくれてるで賞
   –  MSの⽝犬と⾔言われてある意味不不名誉
⾃自⼰己紹介
•  趣味でもスマートフォンアプリ作ってます。
•  趣味で作った主なプロダクト
 –  ZEROProxy (Windows Mobile)
 –  EbIRC (Windows Mobile)
 –  Giraffe (Windows Mobile)
 –  SongTweeter (Windows Phone 7)

 –  PlaceHeart (iPhone)
おしながき
•  開発者にとってアクセシブルにするメリットとは
 –  普通に作ったらVoiceOverで悲しい事態に!

•  アクセシビリティサポート  実際のところ
 –  VoiceOverアクセシビリティ要素の基本
 –  アクセシビリティ簡単対応
 –  独⾃自描画コントロールのアクセシビリティ対応

•  アクセシビリティ属性の指定の仕⽅方

•  アクセシビリティのデバッグ
アクセシビリティサポートをするメリット
なぜアクセシビリティサポートが重要か
•  ユーザー層の拡⼤大
 –  今まで使うことができなかった⼈人たちへリーチ
 –  より多くの⼈人にアプリを使ってもらう機会ができる


•  アクセシビリティガイドラインへの対応
 –  政府機関によって発⾏行行されている
    アクセシビリティガイドラインへ対応することができる。


•  “正しいことである”
VoiceOverつかったことありますか?
•    タップで選択
•    ダブルタップで確定
•    ⼆二本指でスクロールすると読み上げ
•    三本指トリプルクリックでスクリーンカーテン
•    ローター
     –  読み上げ速度度などを変更更
•  ただし⼊入⼒力力系の機能が弱い
     –  変換するときに漢字の意味がわからない。

•  See also
     –  http://www.ustream.tv/recorded/15304719
     –  去年年同様のお話をした際VoiceOverを実際に使っている⽅方に
        どのように使⽤用しているか説明して頂きました。
あなたのアプリはVoiceOverで使えますか?
•  VoiceOverでテストしてますか?
 –  設定>⼀一般>アクセシビリティ>VoiceOver
 –  ホームトリプルクリックでVoiceOver切切り替えにできる


•  変な英語が読み上げられていたりしませんか?
•  使えない機能が存在してたりしていませんか?

•  ⾃自分のアプリに「みっともない」側⾯面を残さないた
   めにも、アクセシビリティサポートしておきたい
みっともない事例例 1
•  画像ボタンにアクセシビリティ属性指定しないと、
   画像ファイル名を読み上げてしまう!
 –  伊勢的VoiceOverみっともない事例例遭遇率率率第1位
•  例例:btn_hoge.png という画像をボタンにすると
   「びー  てぃー  えぬ  ほーじ  ボタン」と読み上げられる。




  何も指定されていないから
  画像ファイル名が採⽤用されている
みっともない事例例 2
•  VoiceOver使ってる状況下
   ではスクロール系の機能が
   弱いことに注意
 –  Pull to Refresh系の
    スクロール⾃自体に機能がある
    場合はかなり使いづらくなる
Interface Builderで簡単にできるので
•  恥ずかしい思いをする前に対応しましょう。
アクセシビリティサポート実装
実際のところ
UIAccessibility、5つの基本要素

                  Label


     Value                            Traits
                UIAccessibility




         Hint                     Frame
5つの特性
種類       内容
Label    ボタンの名前とか。⽂文字列列。
(ラベル)    「追加」「削除」
Traits   コントロールの種類や、選択状態とか。定数から指定。
(特性)     「ボタン」「リンク」「テキストフィールド」「選択中」
Frame その項⽬目のスクリーン上の絶対位置。CGRectで指定。
(フレーム) コントロールの場合はframeプロパティそのもの。
Hint     そのコントロールを使うと何が起こるのかを説明。⽂文字列列。
(ヒント)    特段必要でなければ設定されていないようです。
Value    そのコントロールがどの値を⽰示しているか。スライダーなどで利利⽤用。
(値)      ⽂文字列列。「50%」
Demo
•  簡単に設定できる⽅方法でオブジェクトに
   アクセシビリティ属性を追加してみます

•  カスタムドロークラスの内包しているオブジェクトに
   アクセシビリティ属性を指定してみます
Interface Builderで簡単に設定するには
•  Interface Builderでプロパティをちゃんと指定する
  –  普通はこれだけで事⾜足りる




                        画像ボタンにもTitleを指定する、等
Interface Builderで簡単に設定するには
•  詳細に指定するならIdentity inspectorで設定

                            属性ごとに
                            ⼊入⼒力力があります
カスタムドロークラスでの使⽤用
•  drawRectで中⾝身を全部描画してる時などは、
   カスタムドローUIViewで
   UIAccessibilityContainer を実装する
 –  accessibilityElementCount,
    accessibilityElementAtIndex,
    indexOfAccessibilityElement を実装
 –  NSArrayをつくっておき、
    上記3つのメソッドに委譲すると楽ですね
カスタムドロークラスでの使⽤用
•  すべてのオブジェクトがすでにUIAccessibilityを
   実装しているのでオーバーライドする
•  accessibilityFrameはスクリーン上の座標なの
   で変換が必要
UITableViewCell で気をつけること
•  セルの中に複数のViewが含まれている場合、
   ⼦子の要素はアクセシビリティ無効にしておく。
  –  その要素にフォーカスが当たって残念念なことに
•  UITableViewCellのaccessibilityLabelメソッドをオー
   バーライドして、そのセル全体を読み上げるようにする

                    内部のビューは
               アクセシビリティ属性無効にしておく


            伊勢的新常識識           10


          伊勢的新常識識  お気に⼊入り 10件の未読項⽬目
アクセシビリティ属性の指定の仕⽅方
正しい情報を提供しましょう
•  ここまででアクセシビリティ属性の指定が
   できるようになりました。
•  どのような属性情報を指定すれば良良いのでしょう
   か。

•  属性指定の基本は「短く」「正しく」「役に⽴立立つ」
 –  特にLabelとHintの指定は気をつけたい
Labelの指定
•  短く、わかりやすく。
 –  なるべく1つの単語ですむように指定する
 –  ただし、同じ画⾯面に2つ以上の同じ機能がある場合
    は「〜~を追加」みたいにする
•  コントロールの種類を含めないこと
 –  「追加ボタン」とLabelを指定すると、Traitsとあわせて
    「追加ボタンボタン」と読み上げられてしまう
•  英語の場合先頭は⼤大⽂文字にする
 –  抑揚の制御に使われる
•  Labelの末尾にピリオドは付けない。
Hintの指定
•  必要なときに指定する
•  そのコントロールを使⽤用したときに何が起こるかを
   「⾮非常に簡潔に」説明
 –  「曲を再⽣生します」「コメントを送信します」など
 –  名前をつけないこと
    (「戻る  ボタン  戻るを押すと〜~」と冗⻑⾧長になってしまう)
 –  「タップすると〜~」といった操作⽅方法の説明は付けないこと
    (混乱のもとになる)
•  英語の時は以下の点にも注意
 –  複数形で始める (命令令っぽさをなくす)
 –  先頭⼤大⽂文字と末尾のピリオドは省省略略するのは
    Labelと同じ
Traitsの指定
•  以下の属性から複数指定できる
 –  「Not Enabled」な「Button」なども表せる


■ Button         ■ Plays Sound
■ Link           ■ Selected
■ Search Field   ■ Summary Element
■ Keyboard Key   ■ Updates Frequently
■ Static Text    ■ Not Enabled
■ Image          ■ None
アクセシビリティのデバッグ
シミュレータを使ったデバッグ
•  iOSシミュレータで設定されている
   アクセシビリティ属性を⾒見見ることが
   できます。

•  iOSシミュレータで以下の場所に。
   設定
   >⼀一般
   >アクセシビリティ
   >アクセシビリティインスペクタ
シミュレータを使ったデバッグ
•  クリックすると指定してある
   アクセシビリティ属性が
   表⽰示される

•  ただし読み上げされないので、
   最終的に実機デバッグが
   必要なのは他の機能と同じ
まとめ
•  新たなユーザーへリーチするため、⾃自分のアプリの
   死⾓角をなくすため、アクセシビリティ対応をしましょ
   う。

•  ツール系アプリならInterface Builderで簡単にで
   きます。

•  属性設定は「短く」「正しく」「役に⽴立立つ」ようにする
参考資料料
•  iOSアクセシビリティプログラミングガイド
 –  http://developer.apple.com/jp/devcenter/ios/
    library/documentation/iPhoneAccessibility.pdf
おまけ
•  ところでVoiceOverが有効かどうかが知りたい
  –  UIAccessibilityIsVoiceOverRunning 使えばいい
   よ
  BOOL	
  UIAccessibilityIsVoiceOverRunning();


•  ステータスの変化はNSNotificationCenterで
 UIAccessibilityVoiceOverStatusChanged
 を監視すればOK。

Mais conteúdo relacionado

Semelhante a iOSのVoiceOver対応開発 Rev2

Android Design ざっくりレビュー
Android Design ざっくりレビューAndroid Design ざっくりレビュー
Android Design ざっくりレビューNaoki Hashimoto
 
iOSやAndroidアプリ開発のGoodPractice
iOSやAndroidアプリ開発のGoodPracticeiOSやAndroidアプリ開発のGoodPractice
iOSやAndroidアプリ開発のGoodPracticeKen Morishita
 
eZ Publish 2012年4月勉強会 - eZ Publish設計ベストプラクティス
eZ Publish 2012年4月勉強会 - eZ Publish設計ベストプラクティスeZ Publish 2012年4月勉強会 - eZ Publish設計ベストプラクティス
eZ Publish 2012年4月勉強会 - eZ Publish設計ベストプラクティスericsagnes
 
Css nite(2010.09.23)
Css nite(2010.09.23)Css nite(2010.09.23)
Css nite(2010.09.23)Yoshiki Ushida
 
RaySheet_製品資料_231101.pdf
RaySheet_製品資料_231101.pdfRaySheet_製品資料_231101.pdf
RaySheet_製品資料_231101.pdfGrapeCity, inc.
 
空のテンプレートから始めるWindows 8 ストアアプリ
空のテンプレートから始めるWindows 8 ストアアプリ空のテンプレートから始めるWindows 8 ストアアプリ
空のテンプレートから始めるWindows 8 ストアアプリAkira Hatsune
 
第1回windows phoneアプリ開発のハンズオンセミナー
第1回windows phoneアプリ開発のハンズオンセミナー第1回windows phoneアプリ開発のハンズオンセミナー
第1回windows phoneアプリ開発のハンズオンセミナーhyoromo
 
2012 05-19第44回cocoa勉強会発表資料
2012 05-19第44回cocoa勉強会発表資料2012 05-19第44回cocoa勉強会発表資料
2012 05-19第44回cocoa勉強会発表資料OCHI Shuji
 
2018/01/17 第3回 HoloLens 参考書読み会発表資料
2018/01/17 第3回 HoloLens 参考書読み会発表資料2018/01/17 第3回 HoloLens 参考書読み会発表資料
2018/01/17 第3回 HoloLens 参考書読み会発表資料Yusuke Furuta
 
jQuery Mobile(開発編)勉強会資料
jQuery Mobile(開発編)勉強会資料jQuery Mobile(開発編)勉強会資料
jQuery Mobile(開発編)勉強会資料Nobumasa Ura
 
LightSwitch で遊んでみた Rev. 2
LightSwitch で遊んでみた Rev. 2LightSwitch で遊んでみた Rev. 2
LightSwitch で遊んでみた Rev. 2Yoshitaka Seo
 
AWS Dev Day Tokyo 2018 | Amazon DynamoDB Backed な テレコムコアシステムを構築・運用してる話
AWS Dev Day Tokyo 2018 | Amazon DynamoDB Backed なテレコムコアシステムを構築・運用してる話AWS Dev Day Tokyo 2018 | Amazon DynamoDB Backed なテレコムコアシステムを構築・運用してる話
AWS Dev Day Tokyo 2018 | Amazon DynamoDB Backed な テレコムコアシステムを構築・運用してる話SORACOM,INC
 
Einsteinvision - object detection を試してみよう
Einsteinvision - object detection を試してみようEinsteinvision - object detection を試してみよう
Einsteinvision - object detection を試してみようSalesforce Developers Japan
 
スマートフォンアプリケーション開発の最新動向
スマートフォンアプリケーション開発の最新動向スマートフォンアプリケーション開発の最新動向
スマートフォンアプリケーション開発の最新動向Tsutomu Ogasawara
 
UI&UX / 重要なのは、毎日さわって嬉しい UI UX!
UI&UX / 重要なのは、毎日さわって嬉しい UI UX! UI&UX / 重要なのは、毎日さわって嬉しい UI UX!
UI&UX / 重要なのは、毎日さわって嬉しい UI UX! Akiko Ohtsuka
 
5分程度で分かる? Appceleratorの方のAlloy
5分程度で分かる? Appceleratorの方のAlloy5分程度で分かる? Appceleratorの方のAlloy
5分程度で分かる? Appceleratorの方のAlloyMasato Kitao
 

Semelhante a iOSのVoiceOver対応開発 Rev2 (20)

Android Design ざっくりレビュー
Android Design ざっくりレビューAndroid Design ざっくりレビュー
Android Design ざっくりレビュー
 
iOSやAndroidアプリ開発のGoodPractice
iOSやAndroidアプリ開発のGoodPracticeiOSやAndroidアプリ開発のGoodPractice
iOSやAndroidアプリ開発のGoodPractice
 
eZ Publish 2012年4月勉強会 - eZ Publish設計ベストプラクティス
eZ Publish 2012年4月勉強会 - eZ Publish設計ベストプラクティスeZ Publish 2012年4月勉強会 - eZ Publish設計ベストプラクティス
eZ Publish 2012年4月勉強会 - eZ Publish設計ベストプラクティス
 
Css nite(2010.09.23)
Css nite(2010.09.23)Css nite(2010.09.23)
Css nite(2010.09.23)
 
RaySheet_製品資料_231101.pdf
RaySheet_製品資料_231101.pdfRaySheet_製品資料_231101.pdf
RaySheet_製品資料_231101.pdf
 
空のテンプレートから始めるWindows 8 ストアアプリ
空のテンプレートから始めるWindows 8 ストアアプリ空のテンプレートから始めるWindows 8 ストアアプリ
空のテンプレートから始めるWindows 8 ストアアプリ
 
Wankuma0402
Wankuma0402Wankuma0402
Wankuma0402
 
第1回windows phoneアプリ開発のハンズオンセミナー
第1回windows phoneアプリ開発のハンズオンセミナー第1回windows phoneアプリ開発のハンズオンセミナー
第1回windows phoneアプリ開発のハンズオンセミナー
 
2012 05-19第44回cocoa勉強会発表資料
2012 05-19第44回cocoa勉強会発表資料2012 05-19第44回cocoa勉強会発表資料
2012 05-19第44回cocoa勉強会発表資料
 
2018/01/17 第3回 HoloLens 参考書読み会発表資料
2018/01/17 第3回 HoloLens 参考書読み会発表資料2018/01/17 第3回 HoloLens 参考書読み会発表資料
2018/01/17 第3回 HoloLens 参考書読み会発表資料
 
jQuery Mobile(開発編)勉強会資料
jQuery Mobile(開発編)勉強会資料jQuery Mobile(開発編)勉強会資料
jQuery Mobile(開発編)勉強会資料
 
LightSwitch で遊んでみた Rev. 2
LightSwitch で遊んでみた Rev. 2LightSwitch で遊んでみた Rev. 2
LightSwitch で遊んでみた Rev. 2
 
AWS Dev Day Tokyo 2018 | Amazon DynamoDB Backed な テレコムコアシステムを構築・運用してる話
AWS Dev Day Tokyo 2018 | Amazon DynamoDB Backed なテレコムコアシステムを構築・運用してる話AWS Dev Day Tokyo 2018 | Amazon DynamoDB Backed なテレコムコアシステムを構築・運用してる話
AWS Dev Day Tokyo 2018 | Amazon DynamoDB Backed な テレコムコアシステムを構築・運用してる話
 
0621 ndk game
0621 ndk game0621 ndk game
0621 ndk game
 
Einsteinvision - object detection を試してみよう
Einsteinvision - object detection を試してみようEinsteinvision - object detection を試してみよう
Einsteinvision - object detection を試してみよう
 
スマートフォンアプリケーション開発の最新動向
スマートフォンアプリケーション開発の最新動向スマートフォンアプリケーション開発の最新動向
スマートフォンアプリケーション開発の最新動向
 
jQuery Mobileの基礎
jQuery Mobileの基礎jQuery Mobileの基礎
jQuery Mobileの基礎
 
UI&UX / 重要なのは、毎日さわって嬉しい UI UX!
UI&UX / 重要なのは、毎日さわって嬉しい UI UX! UI&UX / 重要なのは、毎日さわって嬉しい UI UX!
UI&UX / 重要なのは、毎日さわって嬉しい UI UX!
 
5分程度で分かる? Appceleratorの方のAlloy
5分程度で分かる? Appceleratorの方のAlloy5分程度で分かる? Appceleratorの方のAlloy
5分程度で分かる? Appceleratorの方のAlloy
 
Indigo Studio で作るプロトタイプ
Indigo Studio で作るプロトタイプIndigo Studio で作るプロトタイプ
Indigo Studio で作るプロトタイプ
 

Mais de Shin Ise

いまどきのiOSプログラミング with Xcode5
いまどきのiOSプログラミング with Xcode5いまどきのiOSプログラミング with Xcode5
いまどきのiOSプログラミング with Xcode5Shin Ise
 
すまべんLite@関西#4
すまべんLite@関西#4すまべんLite@関西#4
すまべんLite@関西#4Shin Ise
 
すまべんLite@関西#3
すまべんLite@関西#3すまべんLite@関西#3
すまべんLite@関西#3Shin Ise
 
すまべんLite@関西#2
すまべんLite@関西#2すまべんLite@関西#2
すまべんLite@関西#2Shin Ise
 
すごいHaskell読書会#10
すごいHaskell読書会#10すごいHaskell読書会#10
すごいHaskell読書会#10Shin Ise
 
音声APIを使ってみる
音声APIを使ってみる音声APIを使ってみる
音声APIを使ってみるShin Ise
 
すまべんLite@関西#1
すまべんLite@関西#1すまべんLite@関西#1
すまべんLite@関西#1Shin Ise
 
Xamarin2.0であそぼう
Xamarin2.0であそぼうXamarin2.0であそぼう
Xamarin2.0であそぼうShin Ise
 
CoreBluetoothでつくるBluetooth Low Energyデバイス
CoreBluetoothでつくるBluetooth Low EnergyデバイスCoreBluetoothでつくるBluetooth Low Energyデバイス
CoreBluetoothでつくるBluetooth Low EnergyデバイスShin Ise
 
すごいHaskell読書会 in 大阪 #4 「第6章 モジュール」
すごいHaskell読書会 in 大阪 #4 「第6章 モジュール」すごいHaskell読書会 in 大阪 #4 「第6章 モジュール」
すごいHaskell読書会 in 大阪 #4 「第6章 モジュール」Shin Ise
 
MediaLibrary で あそぼう
MediaLibrary で あそぼうMediaLibrary で あそぼう
MediaLibrary で あそぼうShin Ise
 
実践 Reactive Extensions
実践 Reactive Extensions実践 Reactive Extensions
実践 Reactive ExtensionsShin Ise
 
Socketプログラム Silverlight for Windows Phoneへの移植のポイント
Socketプログラム Silverlight for Windows Phoneへの移植のポイントSocketプログラム Silverlight for Windows Phoneへの移植のポイント
Socketプログラム Silverlight for Windows Phoneへの移植のポイントShin Ise
 
Macで使うWindows Phone 7
Macで使うWindows Phone 7Macで使うWindows Phone 7
Macで使うWindows Phone 7Shin Ise
 
Galaxy tab で持ち歩くモバイルサーバー
Galaxy tab で持ち歩くモバイルサーバーGalaxy tab で持ち歩くモバイルサーバー
Galaxy tab で持ち歩くモバイルサーバーShin Ise
 
ハブインテグレーションでWindows Phone 7の世界に溶け込むアプリを作る
ハブインテグレーションでWindows Phone 7の世界に溶け込むアプリを作るハブインテグレーションでWindows Phone 7の世界に溶け込むアプリを作る
ハブインテグレーションでWindows Phone 7の世界に溶け込むアプリを作るShin Ise
 
Windows Phone 7 に向けてクラウドを準備
Windows Phone 7 に向けてクラウドを準備Windows Phone 7 に向けてクラウドを準備
Windows Phone 7 に向けてクラウドを準備Shin Ise
 
Windows Phone 7 + iTunes
Windows Phone 7 + iTunesWindows Phone 7 + iTunes
Windows Phone 7 + iTunesShin Ise
 
C#でiPhone開発とか
C#でiPhone開発とかC#でiPhone開発とか
C#でiPhone開発とかShin Ise
 
C#でiPhoneアプリ開発 with MonoTouch
C#でiPhoneアプリ開発 with MonoTouchC#でiPhoneアプリ開発 with MonoTouch
C#でiPhoneアプリ開発 with MonoTouchShin Ise
 

Mais de Shin Ise (20)

いまどきのiOSプログラミング with Xcode5
いまどきのiOSプログラミング with Xcode5いまどきのiOSプログラミング with Xcode5
いまどきのiOSプログラミング with Xcode5
 
すまべんLite@関西#4
すまべんLite@関西#4すまべんLite@関西#4
すまべんLite@関西#4
 
すまべんLite@関西#3
すまべんLite@関西#3すまべんLite@関西#3
すまべんLite@関西#3
 
すまべんLite@関西#2
すまべんLite@関西#2すまべんLite@関西#2
すまべんLite@関西#2
 
すごいHaskell読書会#10
すごいHaskell読書会#10すごいHaskell読書会#10
すごいHaskell読書会#10
 
音声APIを使ってみる
音声APIを使ってみる音声APIを使ってみる
音声APIを使ってみる
 
すまべんLite@関西#1
すまべんLite@関西#1すまべんLite@関西#1
すまべんLite@関西#1
 
Xamarin2.0であそぼう
Xamarin2.0であそぼうXamarin2.0であそぼう
Xamarin2.0であそぼう
 
CoreBluetoothでつくるBluetooth Low Energyデバイス
CoreBluetoothでつくるBluetooth Low EnergyデバイスCoreBluetoothでつくるBluetooth Low Energyデバイス
CoreBluetoothでつくるBluetooth Low Energyデバイス
 
すごいHaskell読書会 in 大阪 #4 「第6章 モジュール」
すごいHaskell読書会 in 大阪 #4 「第6章 モジュール」すごいHaskell読書会 in 大阪 #4 「第6章 モジュール」
すごいHaskell読書会 in 大阪 #4 「第6章 モジュール」
 
MediaLibrary で あそぼう
MediaLibrary で あそぼうMediaLibrary で あそぼう
MediaLibrary で あそぼう
 
実践 Reactive Extensions
実践 Reactive Extensions実践 Reactive Extensions
実践 Reactive Extensions
 
Socketプログラム Silverlight for Windows Phoneへの移植のポイント
Socketプログラム Silverlight for Windows Phoneへの移植のポイントSocketプログラム Silverlight for Windows Phoneへの移植のポイント
Socketプログラム Silverlight for Windows Phoneへの移植のポイント
 
Macで使うWindows Phone 7
Macで使うWindows Phone 7Macで使うWindows Phone 7
Macで使うWindows Phone 7
 
Galaxy tab で持ち歩くモバイルサーバー
Galaxy tab で持ち歩くモバイルサーバーGalaxy tab で持ち歩くモバイルサーバー
Galaxy tab で持ち歩くモバイルサーバー
 
ハブインテグレーションでWindows Phone 7の世界に溶け込むアプリを作る
ハブインテグレーションでWindows Phone 7の世界に溶け込むアプリを作るハブインテグレーションでWindows Phone 7の世界に溶け込むアプリを作る
ハブインテグレーションでWindows Phone 7の世界に溶け込むアプリを作る
 
Windows Phone 7 に向けてクラウドを準備
Windows Phone 7 に向けてクラウドを準備Windows Phone 7 に向けてクラウドを準備
Windows Phone 7 に向けてクラウドを準備
 
Windows Phone 7 + iTunes
Windows Phone 7 + iTunesWindows Phone 7 + iTunes
Windows Phone 7 + iTunes
 
C#でiPhone開発とか
C#でiPhone開発とかC#でiPhone開発とか
C#でiPhone開発とか
 
C#でiPhoneアプリ開発 with MonoTouch
C#でiPhoneアプリ開発 with MonoTouchC#でiPhoneアプリ開発 with MonoTouch
C#でiPhoneアプリ開発 with MonoTouch
 

iOSのVoiceOver対応開発 Rev2