SlideShare una empresa de Scribd logo
1 de 18
メトロスタイルアプリ開発
          最初の一歩
                      青柳 臣一




MetroStyleDeveloper #02
2012年4月19日(土)
自己紹介

             Twitter: @ShinichiAoyagi
   ブログ: http://shinichiaoyagi.blogspot.com/



      仕事                  職場            自宅
   ソフトウエア開発
 WPF、Silverlight、         淀屋橋           吹田
     C#、VB、
Windows 8
• 正式名
  – Windows 8
  – Windows 8 Pro
  – Windows RT
    発売時期は不明


• Windows 8 Consumer Preview
    リリース中
Windows 8 のエディション




                    ※ITPro より
メトロスタイル Apps とデスクトップ Apps
メトロスタイル Apps

  Windows   WinRT     フル
                    スクリーン
   Store



  サスペンド     タイル      Share
Windows Store

    要登録    有料   審査




    メトロスタイル
      Apps
WinRT
• 新しいランタイム
 – .NET Framework、Silverlight、Windows
   Phone のいずれとも異なる


• 制限された API(セキュアー)

• 非同期を前提とした API
フルスクリーン
• 最低 1024px×768px
• スナップ 320px固定
サスペンド
• いつの間にか終了
• 起動時に復帰
インターネットエクスプローラー
• IE10 相当

• メトロスタイル IE とデスクトップ IE

• メトロスタイル IE から Windows Store
  やアプリへシームレスに連携
 – 例: http://www.buildwindows.com/
デモ
• Visual Studio 11 Beta
XAML (1)
<Grid Background="{StaticResource ApplicationPageBackgroundBrush}">
       <Grid.RowDefinitions>
           <RowDefinition Height="Auto"/>
           <RowDefinition Height="*"/>
       </Grid.RowDefinitions>
       <Grid Grid.Row="0">
           <Grid.ColumnDefinitions>
               <ColumnDefinition Width="Auto"/>
               <ColumnDefinition Width="*"/>
           </Grid.ColumnDefinitions>
           <Button Grid.Column="0" x:Name="OpenButton" FontSize="48“
               Content="開く" Width="300" Margin="16,16,16,16“
               Click="OpenButton_Click"/>
           <Border Grid.Column="1">
               <TextBlock x:Name="FileNameText" FontSize="48“
                   Margin="16,16,16,16" VerticalAlignment="Center"/>
           </Border>
       </Grid>
       <Image x:Name="PictureImage" Grid.Row="1" Margin="16,16,16,16"/>
   </Grid>
XAML (2)
• だいたい WPF、Silverlight、WP7 と同
  じ感じ

• けど、いろいろ違うところもあり
 – そもそも属する名前空間が違ったり
   (Windows.UI.Xaml.Controls)
 – TextBlock には Background が無かったり
 – Border や TextBlock は sealed だったり
画像を選択 (1)
private void OpenButton_Click(object sender, RoutedEventArgs e)
{
    var openPicker = new FileOpenPicker();
    openPicker.ViewMode = PickerViewMode.Thumbnail;
    openPicker.SuggestedStartLocation = PickerLocationId.PicturesLibrary;
    openPicker.FileTypeFilter.Add(".jpg");
    var asyncOpe = openPicker.PickSingleFileAsync();
    asyncOpe.Completed = onCompleted;
}

private void onCompleted(IAsyncOperation<Windows.Storage.StorageFile> asyncInfo,
AsyncStatus asyncStatus)
{
    if (asyncStatus == AsyncStatus.Completed)
    {
        var file = asyncInfo.GetResults();
        var path = file.Path;
        this.Dispatcher.Invoke(Windows.UI.Core.CoreDispatcherPriority.Normal,
            (s, e) =>
            {
                this.FileNameText.Text = path;
            },
            this, null);
    }
}
非同期
• 50ms 以上かかりそうなものはみんな非同
  期
 – 例: ファイルを作成
         StorageFolder.CreateFileAsync()
 – 例: ファイルを列挙
         CreateFileQuery() して
   GetFilesAsync()


• 同期版の API はそもそも存在しない
画像を選択 (2)
• async/await
private async void OpenButton_Click(object sender,
                                     RoutedEventArgs e)
{
    var openPicker = new FileOpenPicker();
    openPicker.ViewMode = PickerViewMode.Thumbnail;
    openPicker.SuggestedStartLocation =
                PickerLocationId.PicturesLibrary;
    openPicker.FileTypeFilter.Add(".jpg");
    var file = await openPicker.PickSingleFileAsync();
    this.FileNameText.Text = file.Path;
}
ありがとうございました。

Más contenido relacionado

La actualidad más candente

Chrome GPO Availability
Chrome GPO AvailabilityChrome GPO Availability
Chrome GPO Availability
彰 村地
 
Silverlightをあれこれ紹介
Silverlightをあれこれ紹介Silverlightをあれこれ紹介
Silverlightをあれこれ紹介
mizusawa
 

La actualidad más candente (10)

Edge と IE、来年からの Web 制作
Edge と IE、来年からの Web 制作Edge と IE、来年からの Web 制作
Edge と IE、来年からの Web 制作
 
Microsoft Edgeで サポートされる 新しい API について
Microsoft Edgeでサポートされる新しい API についてMicrosoft Edgeでサポートされる新しい API について
Microsoft Edgeで サポートされる 新しい API について
 
Microsoft Edge F12 開発者ツール
Microsoft Edge F12 開発者ツールMicrosoft Edge F12 開発者ツール
Microsoft Edge F12 開発者ツール
 
Windows 10 のあたらしい Web ブラウザーの F12 開発者ツール
Windows 10 のあたらしい Web ブラウザーの F12 開発者ツールWindows 10 のあたらしい Web ブラウザーの F12 開発者ツール
Windows 10 のあたらしい Web ブラウザーの F12 開発者ツール
 
FirefoxとMozillaでのSVGの取り組み
FirefoxとMozillaでのSVGの取り組みFirefoxとMozillaでのSVGの取り組み
FirefoxとMozillaでのSVGの取り組み
 
Chrome GPO Availability
Chrome GPO AvailabilityChrome GPO Availability
Chrome GPO Availability
 
EWD 3トレーニングコース#15 ewd-xpressでjQuery以外のフレームワークを利用する
EWD 3トレーニングコース#15 ewd-xpressでjQuery以外のフレームワークを利用するEWD 3トレーニングコース#15 ewd-xpressでjQuery以外のフレームワークを利用する
EWD 3トレーニングコース#15 ewd-xpressでjQuery以外のフレームワークを利用する
 
酒と泪と Edge と IE
酒と泪と Edge と IE酒と泪と Edge と IE
酒と泪と Edge と IE
 
EWD 3トレーニングコース#15 ewd-xpressでjQuery以外のフレームワークを利用する
EWD 3トレーニングコース#15 ewd-xpressでjQuery以外のフレームワークを利用するEWD 3トレーニングコース#15 ewd-xpressでjQuery以外のフレームワークを利用する
EWD 3トレーニングコース#15 ewd-xpressでjQuery以外のフレームワークを利用する
 
Silverlightをあれこれ紹介
Silverlightをあれこれ紹介Silverlightをあれこれ紹介
Silverlightをあれこれ紹介
 

Similar a メトロスタイルアプリ開発 最初の一歩

Web リソースを活用した簡単アプリケーション開発(Windows Phone)
Web リソースを活用した簡単アプリケーション開発(Windows Phone)Web リソースを活用した簡単アプリケーション開発(Windows Phone)
Web リソースを活用した簡単アプリケーション開発(Windows Phone)
Akira Onishi
 
Windowsストアアプリ開発 オープンセミナー広島
Windowsストアアプリ開発 オープンセミナー広島Windowsストアアプリ開発 オープンセミナー広島
Windowsストアアプリ開発 オープンセミナー広島
Akira Onishi
 
TypeScript ファースト ステップ (v.0.9 対応版) ~ Any browser. Any host. Any OS. Open Sourc...
TypeScript ファースト ステップ (v.0.9 対応版) ~ Any browser. Any host. Any OS. Open Sourc...TypeScript ファースト ステップ (v.0.9 対応版) ~ Any browser. Any host. Any OS. Open Sourc...
TypeScript ファースト ステップ (v.0.9 対応版) ~ Any browser. Any host. Any OS. Open Sourc...
Akira Inoue
 

Similar a メトロスタイルアプリ開発 最初の一歩 (20)

Internet Explorer 9 の新機能「固定サイト」 (Pinned sites)
Internet Explorer 9 の新機能「固定サイト」 (Pinned sites)Internet Explorer 9 の新機能「固定サイト」 (Pinned sites)
Internet Explorer 9 の新機能「固定サイト」 (Pinned sites)
 
20060419
2006041920060419
20060419
 
Web リソースを活用した簡単アプリケーション開発(Windows Phone)
Web リソースを活用した簡単アプリケーション開発(Windows Phone)Web リソースを活用した簡単アプリケーション開発(Windows Phone)
Web リソースを活用した簡単アプリケーション開発(Windows Phone)
 
20050903
2005090320050903
20050903
 
2012 05-19第44回cocoa勉強会発表資料
2012 05-19第44回cocoa勉強会発表資料2012 05-19第44回cocoa勉強会発表資料
2012 05-19第44回cocoa勉強会発表資料
 
Silverlightの今
Silverlightの今Silverlightの今
Silverlightの今
 
HTML5&API総まくり
HTML5&API総まくりHTML5&API総まくり
HTML5&API総まくり
 
Angular の紹介
Angular の紹介Angular の紹介
Angular の紹介
 
Windows phone & windows 8で見えてくるメトロの世界
Windows phone & windows 8で見えてくるメトロの世界Windows phone & windows 8で見えてくるメトロの世界
Windows phone & windows 8で見えてくるメトロの世界
 
Windowsストアアプリ開発 オープンセミナー広島
Windowsストアアプリ開発 オープンセミナー広島Windowsストアアプリ開発 オープンセミナー広島
Windowsストアアプリ開発 オープンセミナー広島
 
HTML5最新動向
HTML5最新動向HTML5最新動向
HTML5最新動向
 
Windows 8時代のアプリ開発
Windows 8時代のアプリ開発Windows 8時代のアプリ開発
Windows 8時代のアプリ開発
 
Windows Phoneで始める拡張現実の世界
Windows Phoneで始める拡張現実の世界Windows Phoneで始める拡張現実の世界
Windows Phoneで始める拡張現実の世界
 
jQuery/Html5/ASP.NET MVC 対応コンポーネントを用いたデバイス対応業務アプリケーション開発
jQuery/Html5/ASP.NET MVC 対応コンポーネントを用いたデバイス対応業務アプリケーション開発jQuery/Html5/ASP.NET MVC 対応コンポーネントを用いたデバイス対応業務アプリケーション開発
jQuery/Html5/ASP.NET MVC 対応コンポーネントを用いたデバイス対応業務アプリケーション開発
 
jQuery Mobile(開発編)勉強会資料
jQuery Mobile(開発編)勉強会資料jQuery Mobile(開発編)勉強会資料
jQuery Mobile(開発編)勉強会資料
 
TypeScript ファースト ステップ (v.0.9 対応版) ~ Any browser. Any host. Any OS. Open Sourc...
TypeScript ファースト ステップ (v.0.9 対応版) ~ Any browser. Any host. Any OS. Open Sourc...TypeScript ファースト ステップ (v.0.9 対応版) ~ Any browser. Any host. Any OS. Open Sourc...
TypeScript ファースト ステップ (v.0.9 対応版) ~ Any browser. Any host. Any OS. Open Sourc...
 
Mvc conf session_5_isami
Mvc conf session_5_isamiMvc conf session_5_isami
Mvc conf session_5_isami
 
[デブサミ2012]趣味と実益の脆弱性発見
[デブサミ2012]趣味と実益の脆弱性発見[デブサミ2012]趣味と実益の脆弱性発見
[デブサミ2012]趣味と実益の脆弱性発見
 
「html5 boilerplate」から考える、これからのマークアップ
「html5 boilerplate」から考える、これからのマークアップ「html5 boilerplate」から考える、これからのマークアップ
「html5 boilerplate」から考える、これからのマークアップ
 
Windows アプリケーション開発 はじめに ~ Windows アプリケーション開発初学者の方向け Visual Studio を使ったアプリケーショ...
Windows アプリケーション開発はじめに ~ Windows アプリケーション開発初学者の方向けVisual Studio を使ったアプリケーショ...Windows アプリケーション開発はじめに ~ Windows アプリケーション開発初学者の方向けVisual Studio を使ったアプリケーショ...
Windows アプリケーション開発 はじめに ~ Windows アプリケーション開発初学者の方向け Visual Studio を使ったアプリケーショ...
 

Más de ShinichiAoyagi

Más de ShinichiAoyagi (15)

WPF & Windows Forms on .NET Core 3.0
WPF & Windows Forms on .NET Core 3.0WPF & Windows Forms on .NET Core 3.0
WPF & Windows Forms on .NET Core 3.0
 
【18-C-5】C# で iOS/Androidアプリ開発 - Visual Studio 2015 + Xamarin + MVVMCross -
【18-C-5】C# で iOS/Androidアプリ開発 - Visual Studio 2015 + Xamarin + MVVMCross -【18-C-5】C# で iOS/Androidアプリ開発 - Visual Studio 2015 + Xamarin + MVVMCross -
【18-C-5】C# で iOS/Androidアプリ開発 - Visual Studio 2015 + Xamarin + MVVMCross -
 
Visual Studio 2015 + Xamarin
Visual Studio 2015 + XamarinVisual Studio 2015 + Xamarin
Visual Studio 2015 + Xamarin
 
Xamarin+MVVMCross のあれこれ
Xamarin+MVVMCross のあれこれXamarin+MVVMCross のあれこれ
Xamarin+MVVMCross のあれこれ
 
うるう秒とタイムゾーン
うるう秒とタイムゾーンうるう秒とタイムゾーン
うるう秒とタイムゾーン
 
XAML 入門
XAML 入門XAML 入門
XAML 入門
 
LINQ 概要 + 結構便利な LINQ to XML
LINQ 概要 + 結構便利な LINQ to XMLLINQ 概要 + 結構便利な LINQ to XML
LINQ 概要 + 結構便利な LINQ to XML
 
C# と .NET と ・・・
C# と .NET と ・・・C# と .NET と ・・・
C# と .NET と ・・・
 
LINQ概要
LINQ概要LINQ概要
LINQ概要
 
LINQ の概要とかもろもろ
LINQ の概要とかもろもろLINQ の概要とかもろもろ
LINQ の概要とかもろもろ
 
Windows ストアーアプリで SQLite を使ってみよう
Windows ストアーアプリで SQLite を使ってみようWindows ストアーアプリで SQLite を使ってみよう
Windows ストアーアプリで SQLite を使ってみよう
 
WindowsストアーアプリでSharpDXを動かしてみる
WindowsストアーアプリでSharpDXを動かしてみるWindowsストアーアプリでSharpDXを動かしてみる
WindowsストアーアプリでSharpDXを動かしてみる
 
“なめらか”なメトロスタイルアプリを作るために ~WinRT の非同期性を活用したアプリ開発~
“なめらか”なメトロスタイルアプリを作るために ~WinRT の非同期性を活用したアプリ開発~“なめらか”なメトロスタイルアプリを作るために ~WinRT の非同期性を活用したアプリ開発~
“なめらか”なメトロスタイルアプリを作るために ~WinRT の非同期性を活用したアプリ開発~
 
メトロスタイルってなに?
メトロスタイルってなに?メトロスタイルってなに?
メトロスタイルってなに?
 
ついに日本上陸!Windows Phone 7.5 アプリケーション開発
ついに日本上陸!Windows Phone 7.5 アプリケーション開発ついに日本上陸!Windows Phone 7.5 アプリケーション開発
ついに日本上陸!Windows Phone 7.5 アプリケーション開発
 

Último

Último (11)

論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 

メトロスタイルアプリ開発 最初の一歩

  • 1. メトロスタイルアプリ開発 最初の一歩 青柳 臣一 MetroStyleDeveloper #02 2012年4月19日(土)
  • 2. 自己紹介 Twitter: @ShinichiAoyagi ブログ: http://shinichiaoyagi.blogspot.com/ 仕事 職場 自宅 ソフトウエア開発 WPF、Silverlight、 淀屋橋 吹田 C#、VB、
  • 3. Windows 8 • 正式名 – Windows 8 – Windows 8 Pro – Windows RT 発売時期は不明 • Windows 8 Consumer Preview リリース中
  • 6. メトロスタイル Apps Windows WinRT フル スクリーン Store サスペンド タイル Share
  • 7. Windows Store 要登録 有料 審査 メトロスタイル Apps
  • 8. WinRT • 新しいランタイム – .NET Framework、Silverlight、Windows Phone のいずれとも異なる • 制限された API(セキュアー) • 非同期を前提とした API
  • 11. インターネットエクスプローラー • IE10 相当 • メトロスタイル IE とデスクトップ IE • メトロスタイル IE から Windows Store やアプリへシームレスに連携 – 例: http://www.buildwindows.com/
  • 13. XAML (1) <Grid Background="{StaticResource ApplicationPageBackgroundBrush}"> <Grid.RowDefinitions> <RowDefinition Height="Auto"/> <RowDefinition Height="*"/> </Grid.RowDefinitions> <Grid Grid.Row="0"> <Grid.ColumnDefinitions> <ColumnDefinition Width="Auto"/> <ColumnDefinition Width="*"/> </Grid.ColumnDefinitions> <Button Grid.Column="0" x:Name="OpenButton" FontSize="48“ Content="開く" Width="300" Margin="16,16,16,16“ Click="OpenButton_Click"/> <Border Grid.Column="1"> <TextBlock x:Name="FileNameText" FontSize="48“ Margin="16,16,16,16" VerticalAlignment="Center"/> </Border> </Grid> <Image x:Name="PictureImage" Grid.Row="1" Margin="16,16,16,16"/> </Grid>
  • 14. XAML (2) • だいたい WPF、Silverlight、WP7 と同 じ感じ • けど、いろいろ違うところもあり – そもそも属する名前空間が違ったり (Windows.UI.Xaml.Controls) – TextBlock には Background が無かったり – Border や TextBlock は sealed だったり
  • 15. 画像を選択 (1) private void OpenButton_Click(object sender, RoutedEventArgs e) { var openPicker = new FileOpenPicker(); openPicker.ViewMode = PickerViewMode.Thumbnail; openPicker.SuggestedStartLocation = PickerLocationId.PicturesLibrary; openPicker.FileTypeFilter.Add(".jpg"); var asyncOpe = openPicker.PickSingleFileAsync(); asyncOpe.Completed = onCompleted; } private void onCompleted(IAsyncOperation<Windows.Storage.StorageFile> asyncInfo, AsyncStatus asyncStatus) { if (asyncStatus == AsyncStatus.Completed) { var file = asyncInfo.GetResults(); var path = file.Path; this.Dispatcher.Invoke(Windows.UI.Core.CoreDispatcherPriority.Normal, (s, e) => { this.FileNameText.Text = path; }, this, null); } }
  • 16. 非同期 • 50ms 以上かかりそうなものはみんな非同 期 – 例: ファイルを作成 StorageFolder.CreateFileAsync() – 例: ファイルを列挙 CreateFileQuery() して GetFilesAsync() • 同期版の API はそもそも存在しない
  • 17. 画像を選択 (2) • async/await private async void OpenButton_Click(object sender, RoutedEventArgs e) { var openPicker = new FileOpenPicker(); openPicker.ViewMode = PickerViewMode.Thumbnail; openPicker.SuggestedStartLocation = PickerLocationId.PicturesLibrary; openPicker.FileTypeFilter.Add(".jpg"); var file = await openPicker.PickSingleFileAsync(); this.FileNameText.Text = file.Path; }