VSUG DAY 2013 Summer
初めての
Windows ストア アプリ開発	
株式会社 創風システム
石野 光仁
VSUG DAY 2013 Summer
自己紹介	
•  名前	
– 本名:石野 光仁
– ハンドル名:アイライト	
– Twitter:@AILight
•  所属	
– Microsoft MVP for C#
– 2003/10 ~ 現在	
•  コミュニティ	
– アイライト主催:http://www.ailight.jp
VSUG DAY 2013 Summer
ストアアプリの紹介	
Demo
VSUG DAY 2013 Summer
開発の流れ:デザイン	
デザイン	
 ロジック	
ブラッシュ
アップ
VSUG DAY 2013 Summer
プロジェクトの準備	
•  新しいアプリケーション(XAML)から始める
– 「MainPage.xaml」を消す
– 基本ページで「MainPage.xaml」を再作成
– 「MainPage.xaml」のリソースを「App.xaml」に移動
•  StandardStyles.xaml
– IMEパッドで調べる
•  Segoe UI Symbol
VSUG DAY 2013 Summer
デザインの基本	
•  Grid
– 表の作り方
•  RowDefinitions
•  ColumnDefinitions
– 入れ子
•  Grid.Row=“0”
•  Grid.Column=“0”
– *を有効活用
•  Width="*"
•  Height="*"
VSUG DAY 2013 Summer
画面遷移の基本	
•  ページを追加
– 「GamePage.xaml」
•  画面遷移
– this.Frame.Navigate(typeof(GamePage))
– イベント
•  OnNavigatedTo
•  OnNavigatedFrom
VSUG DAY 2013 Summer
ユーザーコントロールの活用	
•  リソースの管理
– 画像等はAssetsに入れておく
– Imageコントロールを追加
•  プロパティ:Sourceにリソースを追加
– Windows アプリ アート ギャラリーの活用
•  http://msdn.microsoft.com/ja-jp/windowsphone/hh544699
•  画面デザイン反映
– ツールボックスから選ぶ
– Gridを活用してデザイン (3x3)
VSUG DAY 2013 Summer
これで、
デザインは完璧?	
クリックは?
イメージの入れ替えは?
画面に貼り付けたコントロールの制御の仕方は?
VSUG DAY 2013 Summer
これが最初の“壁”	
クリックは?
イメージの入れ替えは?
画面に貼り付けたコントロールの制御の仕方は?
VSUG DAY 2013 Summer
最初の“壁”を突破しよう	
•  ユーザーコントロール側を改造
– OnTapped
– BitmapImage
– Uri
•  ms-appx:///Assets/
•  コントロールとグリッドの関係
–  griGrid.Children.Add
–  Grid.SetRow
–  Grid.SetColumn
VSUG DAY 2013 Summer
開発の流れ:ロジック	
デザイン	
 ロジック	
ブラッシュ
アップ
VSUG DAY 2013 Summer
外部ライブラリの利用	
•  Windowsランタイムコンポーネント	
– 言語間で利用するための、コンポーネント	
•  クラスライブラリ(Windows ストアアプリ)
– いわゆるクラスライブラリ
•  小さな壁
– “クラスライブラリ”を追加しない!!
VSUG DAY 2013 Summer
データ保存について	
•  ApplicationDataContainer
–  using Windows.Storage;
–  ApplicationData.Current.LocalSettings
•  ローカルに保存される
•  ApplicationData.Current.LocalFolder.Path (実際の保存先)
–  ApplicationData.Current.RoamingSettings
•  ローミング(クラウド経由で同期)される
•  ApplicationData.Current.RoamingStorageQuota ⇒ 100
–  100KBの制限
VSUG DAY 2013 Summer
データ保存について	
ローカル
ストレージ	
ローミング
ストレージ	
ローミング
ストレージ	
ローカル
ストレージ	
クラウド ストレージ	
同期	
 同期
VSUG DAY 2013 Summer
これで、
ロジックは完璧?	
進行状況の保存は?
イベントは?画面の表示タイミングは?
ローカル?ローミング?使いどころは?
VSUG DAY 2013 Summer
これが2つめの“壁”	
機能は理解できるが、
最適な組み合わせが見えてこない!!
VSUG DAY 2013 Summer
MainPage
(メニュー)	
GamePage
(ゲーム)	
Ban
(ライブラリ)	
ApplicationData.Current.LocalSettings
(ローカルストレージ)	
Ban
(ライブラリ)	
Initialize();
GetInitializeString();	
InitializeString	
 InitializeString	
操作	
 結果	
デザインとロジックの関係
VSUG DAY 2013 Summer
開発の流れ:ブラッシュアップ	
デザイン	
 ロジック	
ブラッシュ
アップ
VSUG DAY 2013 Summer
国際化対応 ≪ 環境編 ≫	
•  インストール
– Multilingual App Toolkit for Visual Studio 2012
– http://msdn.microsoft.com/ja-JP/windows/apps/hh848309.aspx
•  「アプリケーション配布パッケージ」の設定を変更
– 「package.appxmanifest」
•  規定の言語:ja-JP ⇒ en-US
•  多言語アプリ ツールキットの有効化
– 「ツール」⇒「多言語アプリ ツールキットの有効化」
– 「プロジェクトで右クリック」⇒「翻訳言語の追加」
– プロジェクトに「Stringsen-USResources.resw」を追加
VSUG DAY 2013 Summer
国際化対応 ≪ XAML編 + プログラム編≫	
•  XAML修正
– XAML側:「x:Uid」で値を指定
– リソース側:x:Uidで指定した値に、プロパティを付けて設定
•  例: btnPlay.Content
•  XAMLのContentはそのままでOK
•  プログラム修正
–  var resourceLoader = new ResourceLoader();
–  var commetString = resourceLoader.GetString(“Comment");
VSUG DAY 2013 Summer
課金アイテムの実装	
•  アイテム購入
CurrentApp.RequestProductPurchaseAsync(“課金アイテム名”, false);
•  購入済確認
var licenseInformation = CurrentApp.LicenseInformation;
licenseInformation.ProductLicenses[“課金アイテム名”].IsActive
•  価格確認
var listingInformation = CurrentApp.LoadListingInformationAsync();
listingInformation.ProductListings[“課金アイテム名”].FormattedPrice
VSUG DAY 2013 Summer
課金アイテムの実装 テストは?	
•  シミュレータ用意されています
•  CurrentApp ⇒ CurrentAppSimulator
#if DEBUG
_LicenseInformation = CurrentAppSimulator.LicenseInformation;
#else
_LicenseInformation = CurrentApp.LicenseInformation;
#endif
•  シミュレータのデータが保存される場所
C:Users<ユーザー名>AppDataLocalPackages<パッケージファミリ名>
LocalStateMicrosoftWindows StoreApiData
VSUG DAY 2013 Summer
ストアアプリ ⇔ ストアアプリ	
•  ストアアプリを検索したい
var uri = new Uri("ms-windows-store:Search?query=AILight");
Windows.System.Launcher.LaunchUriAsync(uri);
•  直接アプリを開く
var uri = new Uri("ms-windows-store:PDP?
PFN=58514.AILightReversi_m7tms3jn3zbkr");
Windows.System.Launcher.LaunchUriAsync(uri);
PFNには、パッケージ・ファミリーネーム:「Package.appxmanifest」
•  http://www.ailight.jp/Content/Read/WSA_MsWindowsStoreSearch
VSUG DAY 2013 Summer
Azure Mobile Service:準備	
•  ユーザー全体での共有ストレージを利用
– Azureポータル:モバイルサービスを作成
– Azureポータル:データ・タブで、テーブルを作成
– Visual Studio:テーブル名と同名のクラスを作成
– Visual Studio:クラスにメンバーを定義
•  環境構築
– NuGet:WindowsAzure.MobileServices
VSUG DAY 2013 Summer
Azure Mobile Service:操作	
•  参照
–  App.MobileService.GetTable<HiScore>().Where(row => row.GameMode
== (int) gameMode && row.ScreenNumber ==
screenNumber).OrderByDescending(row =>
row.Score).Take(1).ToListAsync();
•  挿入
–  App.MobileService.GetTable<HiScore>().InsertAsync(hiScore);
•  削除
–  App.MobileService.GetTable<HiScore>().DeleteAsync(hiScore);
VSUG DAY 2013 Summer
MainPage
(メニュー)	
GamePage
(ゲーム)	
Ban
(ライブラリ)	
ApplicationData.Current.LocalSettings
(ローカルストレージ)	
Ban
(ライブラリ)	
ApplicationData.Current
.
RoamingSettings
(ローミングストレージ)	
HighScoreManager	
Initialize();
GetInitializeString();	
InitializeString	
 InitializeString	
操作	
 結果	
Azure Mobile Service
(クラウド ストレージ)	
Azure Mobile Service導入後
VSUG DAY 2013 Summer
デバッグ	
•  デバッグ・ターゲット
– ローカルコンピュータ
– シミュレータ
– リモートコンピュータ
•  リモートデバッグセットアップ
– Remote Tools for Visual Studio 2012
•  http://www.microsoft.com/visualstudio/jpn/downloads#d-remote-tools
– 設定方法
•  http://www.ailight.jp/Content/Read/WSA_RemoteDebug
VSUG DAY 2013 Summer
ストアアプリの公開	
•  紹介文の作成
•  スナップショットの作成
•  アイコンの作成
•  デバッグ、デバッグ、デバッグ
•  Windows App Certification Kit
VSUG DAY 2013 Summer
最後に	
AILight Reversi	
 AILight Bubble Breaker
VSUG DAY 2013 Summer
ご清聴ありがとうございました

More Related Content

PPT
Women In Blogging
PPTX
Ireland
PPT
Web 1
PDF
「Windows 8 ストア アプリ開発 tips」 vsug day 2012 winter (2012年12月15日)
PPTX
Metroスタイルアプリに向けたxamlデザイナーの変更点
PPT
Portuguese Dictionary
PPTX
Design in MOSS 2007
PPT
Vsugday2012 summer tokyo_aoyagi
Women In Blogging
Ireland
Web 1
「Windows 8 ストア アプリ開発 tips」 vsug day 2012 winter (2012年12月15日)
Metroスタイルアプリに向けたxamlデザイナーの変更点
Portuguese Dictionary
Design in MOSS 2007
Vsugday2012 summer tokyo_aoyagi

Viewers also liked (10)

PPT
La Historia En Cifras
PPT
2008 Vsug Leaders Summit Lightning Talks Kataoka
PPTX
Writing for a Web 2.0 World
PDF
20121215 ono
PDF
Easy Virtue: a Reconstruction of Plautus' Cistellaria
PDF
Daisukei vsug ef
PDF
Latvian recipes
PDF
2008 Vsug Leaders Summit Lightning Talks Numaguchi
PDF
O Kit de Sobrevivência para Inovação em Gestão de Conteúdo.
PDF
Startups e empreendedorismo revolucionando o turismo e os negócios
La Historia En Cifras
2008 Vsug Leaders Summit Lightning Talks Kataoka
Writing for a Web 2.0 World
20121215 ono
Easy Virtue: a Reconstruction of Plautus' Cistellaria
Daisukei vsug ef
Latvian recipes
2008 Vsug Leaders Summit Lightning Talks Numaguchi
O Kit de Sobrevivência para Inovação em Gestão de Conteúdo.
Startups e empreendedorismo revolucionando o turismo e os negócios
Ad

Similar to 初めての Windows ストア アプリ開発for vsug summer2013_up (20)

PPTX
Androidのアプリ内課金
PPTX
Windows 8 ストア アプリ 開発 Tips
PDF
早稲田大学授業 - モバイルプログラミング
PDF
[Cloud OnAir] アプリケーションにフォーカス!ビジネスに直結する開発の極意をご紹介します。(e-Learning) 2018年3月15日 放送
PPTX
Visual Studio App Centerを公式サンプルアプリから学ぼうiOS(swift),Android(java)
PPTX
UnicastWS vol.2
PDF
Social Business Application Development
PDF
JAWSDAYS2016 Technical Deep DIVE
PDF
進化する Web ~ Progressive Web Apps の実装と応用 ~
KEY
スマートフォンアプリケーション開発の最新動向
PDF
20180221 AWS Black Belt Online Seminar AWS Lambda@Edge
PDF
1_各Atlassian製品の紹介
PDF
Tech Fielders 2009/9/18 LT
PDF
Xamarin 20141212 モバイルカフェスペシャル 「C#で作るiOS/Androidのクロスプラットフォームスマホアプリ開発」
PDF
夏サミ2013 Hadoopを使わない独自の分散処理環境の構築とその運用
PPTX
Visual studio 2013 Overview
PDF
データマイニング+WEB勉強会資料第6回
PPS
專訪李光耀
PDF
Force.com開発基礎
PDF
「Android アプリのガチ開 発者が Mobile Backend Starter を使ってみた」
Androidのアプリ内課金
Windows 8 ストア アプリ 開発 Tips
早稲田大学授業 - モバイルプログラミング
[Cloud OnAir] アプリケーションにフォーカス!ビジネスに直結する開発の極意をご紹介します。(e-Learning) 2018年3月15日 放送
Visual Studio App Centerを公式サンプルアプリから学ぼうiOS(swift),Android(java)
UnicastWS vol.2
Social Business Application Development
JAWSDAYS2016 Technical Deep DIVE
進化する Web ~ Progressive Web Apps の実装と応用 ~
スマートフォンアプリケーション開発の最新動向
20180221 AWS Black Belt Online Seminar AWS Lambda@Edge
1_各Atlassian製品の紹介
Tech Fielders 2009/9/18 LT
Xamarin 20141212 モバイルカフェスペシャル 「C#で作るiOS/Androidのクロスプラットフォームスマホアプリ開発」
夏サミ2013 Hadoopを使わない独自の分散処理環境の構築とその運用
Visual studio 2013 Overview
データマイニング+WEB勉強会資料第6回
專訪李光耀
Force.com開発基礎
「Android アプリのガチ開 発者が Mobile Backend Starter を使ってみた」
Ad

初めての Windows ストア アプリ開発for vsug summer2013_up

  • 1. VSUG DAY 2013 Summer 初めての Windows ストア アプリ開発 株式会社 創風システム 石野 光仁
  • 2. VSUG DAY 2013 Summer 自己紹介 •  名前 – 本名:石野 光仁 – ハンドル名:アイライト – Twitter:@AILight •  所属 – Microsoft MVP for C# – 2003/10 ~ 現在 •  コミュニティ – アイライト主催:http://www.ailight.jp
  • 3. VSUG DAY 2013 Summer ストアアプリの紹介 Demo
  • 4. VSUG DAY 2013 Summer 開発の流れ:デザイン デザイン ロジック ブラッシュ アップ
  • 5. VSUG DAY 2013 Summer プロジェクトの準備 •  新しいアプリケーション(XAML)から始める – 「MainPage.xaml」を消す – 基本ページで「MainPage.xaml」を再作成 – 「MainPage.xaml」のリソースを「App.xaml」に移動 •  StandardStyles.xaml – IMEパッドで調べる •  Segoe UI Symbol
  • 6. VSUG DAY 2013 Summer デザインの基本 •  Grid – 表の作り方 •  RowDefinitions •  ColumnDefinitions – 入れ子 •  Grid.Row=“0” •  Grid.Column=“0” – *を有効活用 •  Width="*" •  Height="*"
  • 7. VSUG DAY 2013 Summer 画面遷移の基本 •  ページを追加 – 「GamePage.xaml」 •  画面遷移 – this.Frame.Navigate(typeof(GamePage)) – イベント •  OnNavigatedTo •  OnNavigatedFrom
  • 8. VSUG DAY 2013 Summer ユーザーコントロールの活用 •  リソースの管理 – 画像等はAssetsに入れておく – Imageコントロールを追加 •  プロパティ:Sourceにリソースを追加 – Windows アプリ アート ギャラリーの活用 •  http://msdn.microsoft.com/ja-jp/windowsphone/hh544699 •  画面デザイン反映 – ツールボックスから選ぶ – Gridを活用してデザイン (3x3)
  • 9. VSUG DAY 2013 Summer これで、 デザインは完璧? クリックは? イメージの入れ替えは? 画面に貼り付けたコントロールの制御の仕方は?
  • 10. VSUG DAY 2013 Summer これが最初の“壁” クリックは? イメージの入れ替えは? 画面に貼り付けたコントロールの制御の仕方は?
  • 11. VSUG DAY 2013 Summer 最初の“壁”を突破しよう •  ユーザーコントロール側を改造 – OnTapped – BitmapImage – Uri •  ms-appx:///Assets/ •  コントロールとグリッドの関係 –  griGrid.Children.Add –  Grid.SetRow –  Grid.SetColumn
  • 12. VSUG DAY 2013 Summer 開発の流れ:ロジック デザイン ロジック ブラッシュ アップ
  • 13. VSUG DAY 2013 Summer 外部ライブラリの利用 •  Windowsランタイムコンポーネント – 言語間で利用するための、コンポーネント •  クラスライブラリ(Windows ストアアプリ) – いわゆるクラスライブラリ •  小さな壁 – “クラスライブラリ”を追加しない!!
  • 14. VSUG DAY 2013 Summer データ保存について •  ApplicationDataContainer –  using Windows.Storage; –  ApplicationData.Current.LocalSettings •  ローカルに保存される •  ApplicationData.Current.LocalFolder.Path (実際の保存先) –  ApplicationData.Current.RoamingSettings •  ローミング(クラウド経由で同期)される •  ApplicationData.Current.RoamingStorageQuota ⇒ 100 –  100KBの制限
  • 15. VSUG DAY 2013 Summer データ保存について ローカル ストレージ ローミング ストレージ ローミング ストレージ ローカル ストレージ クラウド ストレージ 同期 同期
  • 16. VSUG DAY 2013 Summer これで、 ロジックは完璧? 進行状況の保存は? イベントは?画面の表示タイミングは? ローカル?ローミング?使いどころは?
  • 17. VSUG DAY 2013 Summer これが2つめの“壁” 機能は理解できるが、 最適な組み合わせが見えてこない!!
  • 18. VSUG DAY 2013 Summer MainPage (メニュー) GamePage (ゲーム) Ban (ライブラリ) ApplicationData.Current.LocalSettings (ローカルストレージ) Ban (ライブラリ) Initialize(); GetInitializeString(); InitializeString InitializeString 操作 結果 デザインとロジックの関係
  • 19. VSUG DAY 2013 Summer 開発の流れ:ブラッシュアップ デザイン ロジック ブラッシュ アップ
  • 20. VSUG DAY 2013 Summer 国際化対応 ≪ 環境編 ≫ •  インストール – Multilingual App Toolkit for Visual Studio 2012 – http://msdn.microsoft.com/ja-JP/windows/apps/hh848309.aspx •  「アプリケーション配布パッケージ」の設定を変更 – 「package.appxmanifest」 •  規定の言語:ja-JP ⇒ en-US •  多言語アプリ ツールキットの有効化 – 「ツール」⇒「多言語アプリ ツールキットの有効化」 – 「プロジェクトで右クリック」⇒「翻訳言語の追加」 – プロジェクトに「Stringsen-USResources.resw」を追加
  • 21. VSUG DAY 2013 Summer 国際化対応 ≪ XAML編 + プログラム編≫ •  XAML修正 – XAML側:「x:Uid」で値を指定 – リソース側:x:Uidで指定した値に、プロパティを付けて設定 •  例: btnPlay.Content •  XAMLのContentはそのままでOK •  プログラム修正 –  var resourceLoader = new ResourceLoader(); –  var commetString = resourceLoader.GetString(“Comment");
  • 22. VSUG DAY 2013 Summer 課金アイテムの実装 •  アイテム購入 CurrentApp.RequestProductPurchaseAsync(“課金アイテム名”, false); •  購入済確認 var licenseInformation = CurrentApp.LicenseInformation; licenseInformation.ProductLicenses[“課金アイテム名”].IsActive •  価格確認 var listingInformation = CurrentApp.LoadListingInformationAsync(); listingInformation.ProductListings[“課金アイテム名”].FormattedPrice
  • 23. VSUG DAY 2013 Summer 課金アイテムの実装 テストは? •  シミュレータ用意されています •  CurrentApp ⇒ CurrentAppSimulator #if DEBUG _LicenseInformation = CurrentAppSimulator.LicenseInformation; #else _LicenseInformation = CurrentApp.LicenseInformation; #endif •  シミュレータのデータが保存される場所 C:Users<ユーザー名>AppDataLocalPackages<パッケージファミリ名> LocalStateMicrosoftWindows StoreApiData
  • 24. VSUG DAY 2013 Summer ストアアプリ ⇔ ストアアプリ •  ストアアプリを検索したい var uri = new Uri("ms-windows-store:Search?query=AILight"); Windows.System.Launcher.LaunchUriAsync(uri); •  直接アプリを開く var uri = new Uri("ms-windows-store:PDP? PFN=58514.AILightReversi_m7tms3jn3zbkr"); Windows.System.Launcher.LaunchUriAsync(uri); PFNには、パッケージ・ファミリーネーム:「Package.appxmanifest」 •  http://www.ailight.jp/Content/Read/WSA_MsWindowsStoreSearch
  • 25. VSUG DAY 2013 Summer Azure Mobile Service:準備 •  ユーザー全体での共有ストレージを利用 – Azureポータル:モバイルサービスを作成 – Azureポータル:データ・タブで、テーブルを作成 – Visual Studio:テーブル名と同名のクラスを作成 – Visual Studio:クラスにメンバーを定義 •  環境構築 – NuGet:WindowsAzure.MobileServices
  • 26. VSUG DAY 2013 Summer Azure Mobile Service:操作 •  参照 –  App.MobileService.GetTable<HiScore>().Where(row => row.GameMode == (int) gameMode && row.ScreenNumber == screenNumber).OrderByDescending(row => row.Score).Take(1).ToListAsync(); •  挿入 –  App.MobileService.GetTable<HiScore>().InsertAsync(hiScore); •  削除 –  App.MobileService.GetTable<HiScore>().DeleteAsync(hiScore);
  • 27. VSUG DAY 2013 Summer MainPage (メニュー) GamePage (ゲーム) Ban (ライブラリ) ApplicationData.Current.LocalSettings (ローカルストレージ) Ban (ライブラリ) ApplicationData.Current . RoamingSettings (ローミングストレージ) HighScoreManager Initialize(); GetInitializeString(); InitializeString InitializeString 操作 結果 Azure Mobile Service (クラウド ストレージ) Azure Mobile Service導入後
  • 28. VSUG DAY 2013 Summer デバッグ •  デバッグ・ターゲット – ローカルコンピュータ – シミュレータ – リモートコンピュータ •  リモートデバッグセットアップ – Remote Tools for Visual Studio 2012 •  http://www.microsoft.com/visualstudio/jpn/downloads#d-remote-tools – 設定方法 •  http://www.ailight.jp/Content/Read/WSA_RemoteDebug
  • 29. VSUG DAY 2013 Summer ストアアプリの公開 •  紹介文の作成 •  スナップショットの作成 •  アイコンの作成 •  デバッグ、デバッグ、デバッグ •  Windows App Certification Kit
  • 30. VSUG DAY 2013 Summer 最後に AILight Reversi AILight Bubble Breaker
  • 31. VSUG DAY 2013 Summer ご清聴ありがとうございました