SlideShare uma empresa Scribd logo
1 de 30
Baixar para ler offline
Windows 8 ストア・アプリ / Windows Phone 8 アプリ、
             両面撃破作戦


                2012/12/1
              BluewaterSoft
                  biac


            わんくま同盟 名古屋勉強会 #25
Windows 8 と Windows Phone 8

• 同じアプリを作る!




 例: 「クラウディアさんタイマー」
 ※ 両方ともストアに公開済み

          わんくま同盟 名古屋勉強会 #25
Windows 8 と Windows Phone 8

• できるだけコピペしたくない!!

          「クラウディアさんタイマー」では、画像と音
          声のリソースは、リンクして使った。

          ・画像と音声は Win8 のプロジェクトに置いた。
          ・WP8 のプロジェクトからは、リンクして取り
           込んだ。

• それじゃ、コードは!?
  【本日のテーマ】
  ・どちらからも使える DLL を作る (=PCL)
  ・ソースコードをリンクして使う

          わんくま同盟 名古屋勉強会 #25
著書
自己紹介                                著作
                                                「速攻入門 C#」 (2012/3)
                                                技術評論社、共著
                                                「ソフトな彼女とハードな
                                                彼氏。」(2012/3) アジャイ
                                                ルマインドvol.1 掲載
                                            記事
        biac (山本 康彦)                            連載 「C#でTDD入門」
                                                 CodeZine
                                                週刊連載「WinRT/Metro Tips」
          BluewaterSoft
                                                 @IT - .NET開発者中心
    http://www.bluewatersoft.jp/
                                                …etc.

                                            Windows 8 Metro Style App.
•   名古屋大学工学部(修士)
                                            Windows Phone 8
•   HONDA R&Dで自動車設計                ソフトウェア   …Windows系の最新技術
•   1994~ ソフトウェア業界                   開発
•   2012~ BluewaterSoft                     TDD(コーディング技法)の普及




                               わんくま同盟 名古屋勉強会 #25
自己紹介 (続き)

• 最近は、こんなアプリを書いてます




              ・青空文庫リーダー・ライト
              ・クラウディアさんタイマー
              ・bwNotepad: 簡易メモ帳
              ・bwDevTools: Metro Color Chart

              Windowsストアで公開中!!


       わんくま同盟 名古屋勉強会 #25                       5
かつて Metro と呼ばれていた何か
   ⇒ "Windows 8 ストア・アプリ"(?)
• Windows 8         • Windows Phone 8
• Windows RT




               わんくま同盟 名古屋勉強会 #25
ん!?
     「Windows RT」って、ナニ?
• プログラマ的には…            • 商品名としては…
 Windows Runtime の略      ARM用の Windows 8

• Metroスタイル・アプリの開      • ARM CPUで動くWindows 8
  発に使うAPIセット。          • Metroスタイル・アプリと
• 実体はCOM                 Office 2013のみ。ユーザーに
  .NETから使いやすい仕掛けが        は、ネイティブアプリのイン
  付いた。Windows APIの再創     ストールを許さない。
  造だと思ってもいい。           • Windows Phone 8 のOSは、
                         Windows RTベース。




              わんくま同盟 名古屋勉強会 #25
開発環境

•   Windows 8 (必須)              •   お、お金が・・・ orz
•   Visual Studio (必須)
    ・Express (無償) で OK          •   学生なら! (高専、大学等)
    ・Windows Phone 8 は、             ⇒ DreamSparkプログラム
       SDK を別途インストール                http://t.co/fdunBKad
       (Express もアリ)
                                •   設立 3年以内のベンチャーなら!
•   開発者アカウント (必須)                   ⇒ BizSpark プログラム
    年会費
                                    http://t.co/GqDpfCog
    Windows 8     4,900円 (個人)
    Windows Phone 9,800円
                                    どちらも、開発ツールとアカウ
    ※ キャッシュカード必須
                                    ントが無料に!!




                     わんくま同盟 名古屋勉強会 #25
Win8 Metro アプリの作り方 (ざっくりw
• .NET プログラマー向き                                         • Web プログラマー向き

    XAML + C# (VB)                                           HTML + JavaScript

•   C++も使える                                             •    ただしクラスライブラリは、C# 等で作る
    DirectX 使うには C++ 必須                                      必要がある
•   サンプルコード等は、
    C# C# C# C# C# C# C# ・・・
                                                        • ごめん、C#er には JavaScript
    VBは不利                                                 でのコーディングはタルすぎ
                                                          て・・・
                                                          JavaScriptの偉い人にお任せ!


※ WP8 もやるなら、
  JavaScript は無い。

Windows Phone API reference
http://msdn.microsoft.com/library/windowsphone/develop/ff626516


                                   わんくま同盟 名古屋勉強会 #25
Windows Phone 8

                                 Windows Phone 7 と 8 の比較

                                                                                             WP 8              WP 7.x

                                                                     OS                 Windows RT
                                                                                                             CE 6.0
                                                                     カーネル               (ARM版Win8)

                                                                                        800 x 480
                                                                     画面解像度              1280 x 720           800 x 480
                                                                                        1280 x 768
                                                                                        512MB                256MB
                                                                     RAM
                                                                                        1GB                  512MB
                                                                                        Metro                Silverlight
                                                                     開発
                                                                                        XNA                  XNA

http://windowsteamblog.com/windows_phone/b/windowsphone/archive/2012/06/20/announcing-windows-phone-8.aspx




                                           わんくま同盟 名古屋勉強会 #25
ところで、Windows Phone って、どーよ!?

     世界スマートフォン市場シェア推移予測 (2012年/2016年)
出典: IDC Worldwide Quarterly Mobile Phone Tracker
http://www.itmedia.co.jp/news/articles/1206/07/news077.html




  ※ 予想した会社によってバラつくが、数年でiPhoneに追いつくだろうという点では一致している。



                                        わんくま同盟 名古屋勉強会 #25
Win8 Metro と WP8 の API

• WP8 は Win8 Metro のサブセット
                            …とは、言い難い!

• UIコントロール … だいぶ違う
  WP8のは、WP7から引き継いだ感じ

• WinRT / .NET API … だいぶ違う
  少ないだけじゃない。WP8独自のも。

• WinMD … WP8では使えない (たぶん)
           わんくま同盟 名古屋勉強会 #25
UIに使うコントロール

• ずいぶん違う

ただし、
共通のものは
けっこうコピペ
出来る (^^)




           XAML controls comparison between Windows Phone 8 and Windows 8
             http://msdn.microsoft.com/library/windowsphone/develop/ff626516


       わんくま同盟 名古屋勉強会 #25
WinRT

• だいぶ違う

 共通部分の一部
 を、PCLとして
 バイナリで共用
 可能

 残りの共通部分
 は、コードレベ
 ルで共用可能

                           "Windows Phone API reference" 掲載の図から描き起こし
               http://msdn.microsoft.com/library/windowsphone/develop/ff626516


            わんくま同盟 名古屋勉強会 #25
PCL - Portable Class Library

• 複数の.NETプラットフォームで共用できる
  クラスライブラリ (DLL)
ロジックやデータ周りは
けっこうイケル♪

• とりあえず、このへん読んで!
MSDN マガジン 2011年 8月号
「ポータブル クラス ライブラリ: 入門」
  http://msdn.microsoft.com/ja-jp/magazine/hh335063.aspx


                      わんくま同盟 名古屋勉強会 #25
PCL を作るには Visual Studio の Pro. 版以上

• Expressのプロジェクト テンプレートには、無い




※ Win8 Metro と WP8 に限定する(右の画像)と、
  かなり使える API が増える (^^)

                 わんくま同盟 名古屋勉強会 #25
WinMD - Windows ランタイム コンポーネント

• バイナリの拡張子が .winmd
 ※ 語源は Windows Meta Data

• 使い道
  ・Win8 Metro のバックグラウンド タスク
    ※ バックグランド タスクには必須
 ・Win8 Metro アプリをJavaScript で作るときに
  使えるクラス ライブラリ
• とりあえず、このへん読んで!
 MSDN マガジン Windows 8 Special Issue 2012
 「Windows Runtime Components in a .NET World」
   http://msdn.microsoft.com/ja-jp/magazine/jj651570.aspx

                    わんくま同盟 名古屋勉強会 #25
Win8 / WP8 / PCL / WinMD …ややこしいっ
        Win8 Metro
       バックグラウンド
          タスク
                       WinMD
                     クラスライブラリ           Win8 Metro
Win8 Metro アプリ                          ランタイム

                         Win8 Metro 用
                        クラスライブラリ



  WP8 アプリ
                     PCL                 WP8
                                        ランタイム

                          WP8 用
                        クラスライブラリ



                 わんくま同盟 名古屋勉強会 #25
では、PCLの実例をいくつかご紹介。あ、WinMDも。

PCLの例


          わんくま同盟 名古屋勉強会 #25
Hello, PCL! (1/3 - from Win8)

• ごくシンプルなクラス




                                              PCL

                                       Win8
                                       XAML


  Win8
コードビハインド



               わんくま同盟 名古屋勉強会 #25
Hello, PCL! (2/3 - from WP8)

• ごくシンプルなクラス




                                      WP8    PCL
                                      XAML




  WP8
コードビハインド



               わんくま同盟 名古屋勉強会 #25
Hello, PCL! (3/3 - 実行結果)

• ごくシンプルなクラス




                                     PCL


Win8
Metro

        WP8


              わんくま同盟 名古屋勉強会 #25
Hello, PCL! (番外 - WinMDから使う)

• ごくシンプルなクラス




                                        PCL


WinMD


          Win8
        コードビハインド



                 わんくま同盟 名古屋勉強会 #25
INotifyPropertyChangedを実装してバインド

• 使える! (WinMDもOK)




  PCL


        WinMD


                わんくま同盟 名古屋勉強会 #25
ObservableCollectionを公開してバインド

• PCLならイケる! (WinMDでは使えない)




       PCL




             わんくま同盟 名古屋勉強会 #25
Web アクセス

• WebClientは無い。HttpWebRequestを使う。




• …んが!? WP8でShift-JISがエンコードできん!! orz

            わんくま同盟 名古屋勉強会 #25
PCL の罠

• コンパイルできるからと言って、
  Win8 と WP8 で挙動が同じとは限らない!

 * WP8 では実装されてなかったり、
   例外が出たり… orz

 * ユニットテストの楽な Win8 側で作る。
   でも、WP8 でのテストも必須 !!



         わんくま同盟 名古屋勉強会 #25
UI系はPCLに入っていない

• Win8とWP8に共通でも、PCLに入っていな
  いものがある。
  例: Windows.System.Launcher

 ソースを
 リンクして
 使うっきゃ
 ない!!




          わんくま同盟 名古屋勉強会 #25
まとめ

• Win8とWP8なら、ロジックはだいたい
  PCL でイケるよ!!




        わんくま同盟 名古屋勉強会 #25
ご清聴ありがとうございました



  わんくま同盟 名古屋勉強会 #25

Mais conteúdo relacionado

Mais procurados

TIZEN OS for smartphone Kickstart application development / はじめて学ぶアプリ開発入門
TIZEN OS for smartphone Kickstart application development / はじめて学ぶアプリ開発入門TIZEN OS for smartphone Kickstart application development / はじめて学ぶアプリ開発入門
TIZEN OS for smartphone Kickstart application development / はじめて学ぶアプリ開発入門
Hiroshi Sakate
 
Metroスタイルで花開くか? XAMLベースのUIフレームワーク
Metroスタイルで花開くか?XAMLベースのUIフレームワークMetroスタイルで花開くか?XAMLベースのUIフレームワーク
Metroスタイルで花開くか? XAMLベースのUIフレームワーク
Yuya Yamaki
 
HTML5@iPhoneゲーム開発
HTML5@iPhoneゲーム開発HTML5@iPhoneゲーム開発
HTML5@iPhoneゲーム開発
h_kishi
 
Windowsストアアプリ勉強してみた
Windowsストアアプリ勉強してみたWindowsストアアプリ勉強してみた
Windowsストアアプリ勉強してみた
Takashi Nishisaki
 

Mais procurados (20)

デスクトップアプリ開発者が押さえておくべきWindows 8 時代の変革
デスクトップアプリ開発者が押さえておくべきWindows 8 時代の変革デスクトップアプリ開発者が押さえておくべきWindows 8 時代の変革
デスクトップアプリ開発者が押さえておくべきWindows 8 時代の変革
 
無償のVisual studioで作るクライアント アプリ
無償のVisual studioで作るクライアント アプリ無償のVisual studioで作るクライアント アプリ
無償のVisual studioで作るクライアント アプリ
 
わんくま名古屋#36 (20150725) Windows 10 ユニバーサル Windows アプリ開発入門
わんくま名古屋#36 (20150725) Windows 10 ユニバーサル Windows アプリ開発入門わんくま名古屋#36 (20150725) Windows 10 ユニバーサル Windows アプリ開発入門
わんくま名古屋#36 (20150725) Windows 10 ユニバーサル Windows アプリ開発入門
 
初心者でも Windows 10 Mobile アプリを作りたい!
初心者でも Windows 10 Mobile アプリを作りたい!初心者でも Windows 10 Mobile アプリを作りたい!
初心者でも Windows 10 Mobile アプリを作りたい!
 
プロ文.com 勉強会 Phase 1
プロ文.com 勉強会 Phase 1プロ文.com 勉強会 Phase 1
プロ文.com 勉強会 Phase 1
 
XAML のこれまでとこれから、今「やる」べき意義
XAML のこれまでとこれから、今「やる」べき意義XAML のこれまでとこれから、今「やる」べき意義
XAML のこれまでとこれから、今「やる」べき意義
 
TIZEN OS for smartphone Kickstart application development / はじめて学ぶアプリ開発入門
TIZEN OS for smartphone Kickstart application development / はじめて学ぶアプリ開発入門TIZEN OS for smartphone Kickstart application development / はじめて学ぶアプリ開発入門
TIZEN OS for smartphone Kickstart application development / はじめて学ぶアプリ開発入門
 
Metroスタイルで花開くか? XAMLベースのUIフレームワーク
Metroスタイルで花開くか?XAMLベースのUIフレームワークMetroスタイルで花開くか?XAMLベースのUIフレームワーク
Metroスタイルで花開くか? XAMLベースのUIフレームワーク
 
Windows ストアアプリのつくりかた (JS + HTML + CSS)
Windows ストアアプリのつくりかた (JS + HTML + CSS)Windows ストアアプリのつくりかた (JS + HTML + CSS)
Windows ストアアプリのつくりかた (JS + HTML + CSS)
 
Uwpアプリケーション開発入門
Uwpアプリケーション開発入門Uwpアプリケーション開発入門
Uwpアプリケーション開発入門
 
わんくま名古屋 #37 (20151114) Windows 10 UWP アプリ開発入門(実践編)
わんくま名古屋 #37 (20151114) Windows 10 UWP アプリ開発入門(実践編)わんくま名古屋 #37 (20151114) Windows 10 UWP アプリ開発入門(実践編)
わんくま名古屋 #37 (20151114) Windows 10 UWP アプリ開発入門(実践編)
 
Silverlightの今
Silverlightの今Silverlightの今
Silverlightの今
 
HTML5@iPhoneゲーム開発
HTML5@iPhoneゲーム開発HTML5@iPhoneゲーム開発
HTML5@iPhoneゲーム開発
 
Windowsストアアプリ勉強してみた
Windowsストアアプリ勉強してみたWindowsストアアプリ勉強してみた
Windowsストアアプリ勉強してみた
 
ソースが書けなくてもAndroidアプリをクリック(GUI)開発したい
ソースが書けなくてもAndroidアプリをクリック(GUI)開発したいソースが書けなくてもAndroidアプリをクリック(GUI)開発したい
ソースが書けなくてもAndroidアプリをクリック(GUI)開発したい
 
Metrostyleappに挑戦してみた
Metrostyleappに挑戦してみたMetrostyleappに挑戦してみた
Metrostyleappに挑戦してみた
 
MVVM入門
MVVM入門MVVM入門
MVVM入門
 
WPF MVVM Review
WPF MVVM ReviewWPF MVVM Review
WPF MVVM Review
 
[Mobile5] 最新動向 2012年5月
[Mobile5] 最新動向 2012年5月[Mobile5] 最新動向 2012年5月
[Mobile5] 最新動向 2012年5月
 
C#/WPFで作るデスクトップマスコット入門
C#/WPFで作るデスクトップマスコット入門C#/WPFで作るデスクトップマスコット入門
C#/WPFで作るデスクトップマスコット入門
 

Destaque

わんくま名古屋#27(20130518) データバインディングを極める
わんくま名古屋#27(20130518) データバインディングを極めるわんくま名古屋#27(20130518) データバインディングを極める
わんくま名古屋#27(20130518) データバインディングを極める
Yasuhiko Yamamoto
 
Windowsストアアプリでウイルスを作るには!? cod2013名古屋
Windowsストアアプリでウイルスを作るには!? cod2013名古屋Windowsストアアプリでウイルスを作るには!? cod2013名古屋
Windowsストアアプリでウイルスを作るには!? cod2013名古屋
Yasuhiko Yamamoto
 

Destaque (13)

Metroアプリの作り方 (COD2012)
Metroアプリの作り方 (COD2012)Metroアプリの作り方 (COD2012)
Metroアプリの作り方 (COD2012)
 
わんくま名古屋#31(20140524) ユニバーサルWindowsアプリ開発の勧め
わんくま名古屋#31(20140524) ユニバーサルWindowsアプリ開発の勧めわんくま名古屋#31(20140524) ユニバーサルWindowsアプリ開発の勧め
わんくま名古屋#31(20140524) ユニバーサルWindowsアプリ開発の勧め
 
Windows 8.1 ストア アプリ first look for 8.0 developers! [ss]
Windows 8.1 ストア アプリ first look for 8.0 developers! [ss]Windows 8.1 ストア アプリ first look for 8.0 developers! [ss]
Windows 8.1 ストア アプリ first look for 8.0 developers! [ss]
 
Windows 8.1 Update 1 の噂をまとめてみた
Windows 8.1 Update 1 の噂をまとめてみたWindows 8.1 Update 1 の噂をまとめてみた
Windows 8.1 Update 1 の噂をまとめてみた
 
わんくま名古屋 #29 (2013/11/23) TDD道場 #17
わんくま名古屋 #29 (2013/11/23) TDD道場 #17わんくま名古屋 #29 (2013/11/23) TDD道場 #17
わんくま名古屋 #29 (2013/11/23) TDD道場 #17
 
わんくま名古屋#27(20130518) データバインディングを極める
わんくま名古屋#27(20130518) データバインディングを極めるわんくま名古屋#27(20130518) データバインディングを極める
わんくま名古屋#27(20130518) データバインディングを極める
 
タダで始めるテストファースト入門 ~ C# Express + NUnit
タダで始めるテストファースト入門 ~ C# Express + NUnitタダで始めるテストファースト入門 ~ C# Express + NUnit
タダで始めるテストファースト入門 ~ C# Express + NUnit
 
Windowsストアアプリでウイルスを作るには!? cod2013名古屋
Windowsストアアプリでウイルスを作るには!? cod2013名古屋Windowsストアアプリでウイルスを作るには!? cod2013名古屋
Windowsストアアプリでウイルスを作るには!? cod2013名古屋
 
プログラマとデザイナで時計を作るVisual studioハッカソン ~ TDDの考え方を開発全体に応用してみよう!
プログラマとデザイナで時計を作るVisual studioハッカソン ~ TDDの考え方を開発全体に応用してみよう!プログラマとデザイナで時計を作るVisual studioハッカソン ~ TDDの考え方を開発全体に応用してみよう!
プログラマとデザイナで時計を作るVisual studioハッカソン ~ TDDの考え方を開発全体に応用してみよう!
 
Windows ストア アプリでスレッド間排他処理
Windows ストア アプリでスレッド間排他処理Windows ストア アプリでスレッド間排他処理
Windows ストア アプリでスレッド間排他処理
 
第8回 業開中心会議 「Windows 10 ユニバーサルアプリの概要」
第8回業開中心会議 「Windows 10 ユニバーサルアプリの概要」第8回業開中心会議 「Windows 10 ユニバーサルアプリの概要」
第8回 業開中心会議 「Windows 10 ユニバーサルアプリの概要」
 
わんくま名古屋 #38 (20160521) Xamarin入門
わんくま名古屋 #38 (20160521) Xamarin入門わんくま名古屋 #38 (20160521) Xamarin入門
わんくま名古屋 #38 (20160521) Xamarin入門
 
開発ツールを買わずに作る♪ ユニバーサルWindowsアプリ!
開発ツールを買わずに作る♪ ユニバーサルWindowsアプリ!開発ツールを買わずに作る♪ ユニバーサルWindowsアプリ!
開発ツールを買わずに作る♪ ユニバーサルWindowsアプリ!
 

Semelhante a わんくま名古屋#25(20121201) 「Win8ストア・アプリ WP8アプリ、両面撃破作戦」

WindowsPhone8 って知ってるかい?
WindowsPhone8 って知ってるかい?WindowsPhone8 って知ってるかい?
WindowsPhone8 って知ってるかい?
Akira Hatsune
 
Windowsストアアプリ開発ハンズオントレーニングに行ってきました 2012-09-22-lt
Windowsストアアプリ開発ハンズオントレーニングに行ってきました 2012-09-22-ltWindowsストアアプリ開発ハンズオントレーニングに行ってきました 2012-09-22-lt
Windowsストアアプリ開発ハンズオントレーニングに行ってきました 2012-09-22-lt
Tomokazu Kizawa
 
スマ研第2回レポート
スマ研第2回レポートスマ研第2回レポート
スマ研第2回レポート
Shinpei Niiyama
 
Dev camp2012jpn day2special
Dev camp2012jpn day2specialDev camp2012jpn day2special
Dev camp2012jpn day2special
Katsuhito Katoh
 
Windowsストア[DB]アプリ入門
Windowsストア[DB]アプリ入門Windowsストア[DB]アプリ入門
Windowsストア[DB]アプリ入門
Akira Hatsune
 
Titanium Mobile ~本当にあったこわい話~
Titanium Mobile ~本当にあったこわい話~Titanium Mobile ~本当にあったこわい話~
Titanium Mobile ~本当にあったこわい話~
Atsushi Harada
 

Semelhante a わんくま名古屋#25(20121201) 「Win8ストア・アプリ WP8アプリ、両面撃破作戦」 (20)

WindowsPhone8 って知ってるかい?
WindowsPhone8 って知ってるかい?WindowsPhone8 って知ってるかい?
WindowsPhone8 って知ってるかい?
 
ストアアプリ →universal Windows Apps =WP8.1アプリ
ストアアプリ→universal Windows Apps=WP8.1アプリストアアプリ→universal Windows Apps=WP8.1アプリ
ストアアプリ →universal Windows Apps =WP8.1アプリ
 
Windowsストアアプリ開発ハンズオントレーニングに行ってきました 2012-09-22-lt
Windowsストアアプリ開発ハンズオントレーニングに行ってきました 2012-09-22-ltWindowsストアアプリ開発ハンズオントレーニングに行ってきました 2012-09-22-lt
Windowsストアアプリ開発ハンズオントレーニングに行ってきました 2012-09-22-lt
 
どうなる?Windows 8時代の業務アプリ開発
どうなる?Windows 8時代の業務アプリ開発どうなる?Windows 8時代の業務アプリ開発
どうなる?Windows 8時代の業務アプリ開発
 
PhoneGapユーザー会@大阪 講演資料
PhoneGapユーザー会@大阪 講演資料PhoneGapユーザー会@大阪 講演資料
PhoneGapユーザー会@大阪 講演資料
 
Bar Vsug04 Masami Suzuki Windows7 UI
Bar Vsug04 Masami Suzuki Windows7 UIBar Vsug04 Masami Suzuki Windows7 UI
Bar Vsug04 Masami Suzuki Windows7 UI
 
ET2016 Smart Japan Alliance Llilum 161118
ET2016 Smart Japan Alliance Llilum 161118ET2016 Smart Japan Alliance Llilum 161118
ET2016 Smart Japan Alliance Llilum 161118
 
スマ研第2回レポート
スマ研第2回レポートスマ研第2回レポート
スマ研第2回レポート
 
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
 
改めて注目される2D アニメーションツール SpriteStudio ~国産2Dツールが(舶来ゲームエンジンの力を借りながら)世界へ~
改めて注目される2D アニメーションツール SpriteStudio ~国産2Dツールが(舶来ゲームエンジンの力を借りながら)世界へ~改めて注目される2D アニメーションツール SpriteStudio ~国産2Dツールが(舶来ゲームエンジンの力を借りながら)世界へ~
改めて注目される2D アニメーションツール SpriteStudio ~国産2Dツールが(舶来ゲームエンジンの力を借りながら)世界へ~
 
DEV-022_これから始める Xamarin ~環境構築から iOS/Android/UWP アプリのビルドまで~
DEV-022_これから始める Xamarin ~環境構築から iOS/Android/UWP アプリのビルドまで~DEV-022_これから始める Xamarin ~環境構築から iOS/Android/UWP アプリのビルドまで~
DEV-022_これから始める Xamarin ~環境構築から iOS/Android/UWP アプリのビルドまで~
 
Dev camp2012jpn day2special
Dev camp2012jpn day2specialDev camp2012jpn day2special
Dev camp2012jpn day2special
 
Developr Camp 2012 Japan Fall Day2 Special Session - Visual Studio 2012 で始める ...
Developr Camp 2012 Japan Fall Day2 Special Session - Visual Studio 2012 で始める ...Developr Camp 2012 Japan Fall Day2 Special Session - Visual Studio 2012 で始める ...
Developr Camp 2012 Japan Fall Day2 Special Session - Visual Studio 2012 で始める ...
 
Visual Studio Code で C# でのアプリ開発
Visual Studio Code で C# でのアプリ開発Visual Studio Code で C# でのアプリ開発
Visual Studio Code で C# でのアプリ開発
 
デスクトップアプリ最新事情201912
デスクトップアプリ最新事情201912デスクトップアプリ最新事情201912
デスクトップアプリ最新事情201912
 
The Twelve-Factor (A|M)pp with C#
The Twelve-Factor (A|M)pp with C#The Twelve-Factor (A|M)pp with C#
The Twelve-Factor (A|M)pp with C#
 
.NET Coreから概観する.NETのOSSへの取り組み
.NET Coreから概観する.NETのOSSへの取り組み.NET Coreから概観する.NETのOSSへの取り組み
.NET Coreから概観する.NETのOSSへの取り組み
 
Win32 APIをてなずけよう
Win32 APIをてなずけようWin32 APIをてなずけよう
Win32 APIをてなずけよう
 
Windowsストア[DB]アプリ入門
Windowsストア[DB]アプリ入門Windowsストア[DB]アプリ入門
Windowsストア[DB]アプリ入門
 
Titanium Mobile ~本当にあったこわい話~
Titanium Mobile ~本当にあったこわい話~Titanium Mobile ~本当にあったこわい話~
Titanium Mobile ~本当にあったこわい話~
 

Mais de Yasuhiko Yamamoto

わんくま名古屋#28(20130824) c#で、ライフゲームを高速化してみるよ
わんくま名古屋#28(20130824) c#で、ライフゲームを高速化してみるよわんくま名古屋#28(20130824) c#で、ライフゲームを高速化してみるよ
わんくま名古屋#28(20130824) c#で、ライフゲームを高速化してみるよ
Yasuhiko Yamamoto
 

Mais de Yasuhiko Yamamoto (12)

わんくま名古屋 #40 (20161217) Xamarinで自動化テストしよう
わんくま名古屋 #40 (20161217) Xamarinで自動化テストしようわんくま名古屋 #40 (20161217) Xamarinで自動化テストしよう
わんくま名古屋 #40 (20161217) Xamarinで自動化テストしよう
 
UWP アプリを JavaScript で作る 3つの方法
UWP アプリを JavaScript で作る 3つの方法UWP アプリを JavaScript で作る 3つの方法
UWP アプリを JavaScript で作る 3つの方法
 
わんくま名古屋 #37 (20151114) TDD道場 #25
わんくま名古屋 #37 (20151114) TDD道場 #25わんくま名古屋 #37 (20151114) TDD道場 #25
わんくま名古屋 #37 (20151114) TDD道場 #25
 
わんくま名古屋#34(20150214) TDD道場#22
わんくま名古屋#34(20150214) TDD道場#22わんくま名古屋#34(20150214) TDD道場#22
わんくま名古屋#34(20150214) TDD道場#22
 
Visual Studio 2015 の新機能: Pex はユニットテストの福音となるか!?
Visual Studio 2015 の新機能: Pex はユニットテストの福音となるか!?Visual Studio 2015 の新機能: Pex はユニットテストの福音となるか!?
Visual Studio 2015 の新機能: Pex はユニットテストの福音となるか!?
 
わんくま名古屋#33(20141115) モノ作り半生
わんくま名古屋#33(20141115) モノ作り半生わんくま名古屋#33(20141115) モノ作り半生
わんくま名古屋#33(20141115) モノ作り半生
 
わんくま名古屋#33(20141115) TDD道場#21
わんくま名古屋#33(20141115) TDD道場#21わんくま名古屋#33(20141115) TDD道場#21
わんくま名古屋#33(20141115) TDD道場#21
 
わんくま名古屋 #32 (20140823) TDD道場 #20
わんくま名古屋 #32 (20140823) TDD道場 #20わんくま名古屋 #32 (20140823) TDD道場 #20
わんくま名古屋 #32 (20140823) TDD道場 #20
 
わんくま名古屋#31(20140524) TDD道場 #19
わんくま名古屋#31(20140524) TDD道場 #19わんくま名古屋#31(20140524) TDD道場 #19
わんくま名古屋#31(20140524) TDD道場 #19
 
わんくま名古屋#28(20130824) c#で、ライフゲームを高速化してみるよ
わんくま名古屋#28(20130824) c#で、ライフゲームを高速化してみるよわんくま名古屋#28(20130824) c#で、ライフゲームを高速化してみるよ
わんくま名古屋#28(20130824) c#で、ライフゲームを高速化してみるよ
 
TDDの原理 ~ スペック・ファースト
TDDの原理 ~ スペック・ファーストTDDの原理 ~ スペック・ファースト
TDDの原理 ~ スペック・ファースト
 
わんくま名古屋#25(20121201) TDD道場#13 ~ Metroアプリをテストファーストするときのポイント
わんくま名古屋#25(20121201) TDD道場#13 ~ Metroアプリをテストファーストするときのポイントわんくま名古屋#25(20121201) TDD道場#13 ~ Metroアプリをテストファーストするときのポイント
わんくま名古屋#25(20121201) TDD道場#13 ~ Metroアプリをテストファーストするときのポイント
 

わんくま名古屋#25(20121201) 「Win8ストア・アプリ WP8アプリ、両面撃破作戦」

  • 1. Windows 8 ストア・アプリ / Windows Phone 8 アプリ、 両面撃破作戦 2012/12/1 BluewaterSoft biac わんくま同盟 名古屋勉強会 #25
  • 2. Windows 8 と Windows Phone 8 • 同じアプリを作る! 例: 「クラウディアさんタイマー」 ※ 両方ともストアに公開済み わんくま同盟 名古屋勉強会 #25
  • 3. Windows 8 と Windows Phone 8 • できるだけコピペしたくない!! 「クラウディアさんタイマー」では、画像と音 声のリソースは、リンクして使った。 ・画像と音声は Win8 のプロジェクトに置いた。 ・WP8 のプロジェクトからは、リンクして取り 込んだ。 • それじゃ、コードは!? 【本日のテーマ】 ・どちらからも使える DLL を作る (=PCL) ・ソースコードをリンクして使う わんくま同盟 名古屋勉強会 #25
  • 4. 著書 自己紹介 著作 「速攻入門 C#」 (2012/3) 技術評論社、共著 「ソフトな彼女とハードな 彼氏。」(2012/3) アジャイ ルマインドvol.1 掲載 記事 biac (山本 康彦) 連載 「C#でTDD入門」 CodeZine 週刊連載「WinRT/Metro Tips」 BluewaterSoft @IT - .NET開発者中心 http://www.bluewatersoft.jp/ …etc. Windows 8 Metro Style App. • 名古屋大学工学部(修士) Windows Phone 8 • HONDA R&Dで自動車設計 ソフトウェア …Windows系の最新技術 • 1994~ ソフトウェア業界 開発 • 2012~ BluewaterSoft TDD(コーディング技法)の普及 わんくま同盟 名古屋勉強会 #25
  • 5. 自己紹介 (続き) • 最近は、こんなアプリを書いてます ・青空文庫リーダー・ライト ・クラウディアさんタイマー ・bwNotepad: 簡易メモ帳 ・bwDevTools: Metro Color Chart Windowsストアで公開中!! わんくま同盟 名古屋勉強会 #25 5
  • 6. かつて Metro と呼ばれていた何か ⇒ "Windows 8 ストア・アプリ"(?) • Windows 8 • Windows Phone 8 • Windows RT わんくま同盟 名古屋勉強会 #25
  • 7. ん!? 「Windows RT」って、ナニ? • プログラマ的には… • 商品名としては… Windows Runtime の略 ARM用の Windows 8 • Metroスタイル・アプリの開 • ARM CPUで動くWindows 8 発に使うAPIセット。 • Metroスタイル・アプリと • 実体はCOM Office 2013のみ。ユーザーに .NETから使いやすい仕掛けが は、ネイティブアプリのイン 付いた。Windows APIの再創 ストールを許さない。 造だと思ってもいい。 • Windows Phone 8 のOSは、 Windows RTベース。 わんくま同盟 名古屋勉強会 #25
  • 8. 開発環境 • Windows 8 (必須) • お、お金が・・・ orz • Visual Studio (必須) ・Express (無償) で OK • 学生なら! (高専、大学等) ・Windows Phone 8 は、 ⇒ DreamSparkプログラム SDK を別途インストール http://t.co/fdunBKad (Express もアリ) • 設立 3年以内のベンチャーなら! • 開発者アカウント (必須) ⇒ BizSpark プログラム 年会費 http://t.co/GqDpfCog Windows 8 4,900円 (個人) Windows Phone 9,800円 どちらも、開発ツールとアカウ ※ キャッシュカード必須 ントが無料に!! わんくま同盟 名古屋勉強会 #25
  • 9. Win8 Metro アプリの作り方 (ざっくりw • .NET プログラマー向き • Web プログラマー向き XAML + C# (VB) HTML + JavaScript • C++も使える • ただしクラスライブラリは、C# 等で作る DirectX 使うには C++ 必須 必要がある • サンプルコード等は、 C# C# C# C# C# C# C# ・・・ • ごめん、C#er には JavaScript VBは不利 でのコーディングはタルすぎ て・・・ JavaScriptの偉い人にお任せ! ※ WP8 もやるなら、 JavaScript は無い。 Windows Phone API reference http://msdn.microsoft.com/library/windowsphone/develop/ff626516 わんくま同盟 名古屋勉強会 #25
  • 10. Windows Phone 8 Windows Phone 7 と 8 の比較 WP 8 WP 7.x OS Windows RT CE 6.0 カーネル (ARM版Win8) 800 x 480 画面解像度 1280 x 720 800 x 480 1280 x 768 512MB 256MB RAM 1GB 512MB Metro Silverlight 開発 XNA XNA http://windowsteamblog.com/windows_phone/b/windowsphone/archive/2012/06/20/announcing-windows-phone-8.aspx わんくま同盟 名古屋勉強会 #25
  • 11. ところで、Windows Phone って、どーよ!? 世界スマートフォン市場シェア推移予測 (2012年/2016年) 出典: IDC Worldwide Quarterly Mobile Phone Tracker http://www.itmedia.co.jp/news/articles/1206/07/news077.html ※ 予想した会社によってバラつくが、数年でiPhoneに追いつくだろうという点では一致している。 わんくま同盟 名古屋勉強会 #25
  • 12. Win8 Metro と WP8 の API • WP8 は Win8 Metro のサブセット …とは、言い難い! • UIコントロール … だいぶ違う WP8のは、WP7から引き継いだ感じ • WinRT / .NET API … だいぶ違う 少ないだけじゃない。WP8独自のも。 • WinMD … WP8では使えない (たぶん) わんくま同盟 名古屋勉強会 #25
  • 13. UIに使うコントロール • ずいぶん違う ただし、 共通のものは けっこうコピペ 出来る (^^) XAML controls comparison between Windows Phone 8 and Windows 8 http://msdn.microsoft.com/library/windowsphone/develop/ff626516 わんくま同盟 名古屋勉強会 #25
  • 14. WinRT • だいぶ違う 共通部分の一部 を、PCLとして バイナリで共用 可能 残りの共通部分 は、コードレベ ルで共用可能 "Windows Phone API reference" 掲載の図から描き起こし http://msdn.microsoft.com/library/windowsphone/develop/ff626516 わんくま同盟 名古屋勉強会 #25
  • 15. PCL - Portable Class Library • 複数の.NETプラットフォームで共用できる クラスライブラリ (DLL) ロジックやデータ周りは けっこうイケル♪ • とりあえず、このへん読んで! MSDN マガジン 2011年 8月号 「ポータブル クラス ライブラリ: 入門」 http://msdn.microsoft.com/ja-jp/magazine/hh335063.aspx わんくま同盟 名古屋勉強会 #25
  • 16. PCL を作るには Visual Studio の Pro. 版以上 • Expressのプロジェクト テンプレートには、無い ※ Win8 Metro と WP8 に限定する(右の画像)と、 かなり使える API が増える (^^) わんくま同盟 名古屋勉強会 #25
  • 17. WinMD - Windows ランタイム コンポーネント • バイナリの拡張子が .winmd ※ 語源は Windows Meta Data • 使い道 ・Win8 Metro のバックグラウンド タスク ※ バックグランド タスクには必須 ・Win8 Metro アプリをJavaScript で作るときに 使えるクラス ライブラリ • とりあえず、このへん読んで! MSDN マガジン Windows 8 Special Issue 2012 「Windows Runtime Components in a .NET World」 http://msdn.microsoft.com/ja-jp/magazine/jj651570.aspx わんくま同盟 名古屋勉強会 #25
  • 18. Win8 / WP8 / PCL / WinMD …ややこしいっ Win8 Metro バックグラウンド タスク WinMD クラスライブラリ Win8 Metro Win8 Metro アプリ ランタイム Win8 Metro 用 クラスライブラリ WP8 アプリ PCL WP8 ランタイム WP8 用 クラスライブラリ わんくま同盟 名古屋勉強会 #25
  • 20. Hello, PCL! (1/3 - from Win8) • ごくシンプルなクラス PCL Win8 XAML Win8 コードビハインド わんくま同盟 名古屋勉強会 #25
  • 21. Hello, PCL! (2/3 - from WP8) • ごくシンプルなクラス WP8 PCL XAML WP8 コードビハインド わんくま同盟 名古屋勉強会 #25
  • 22. Hello, PCL! (3/3 - 実行結果) • ごくシンプルなクラス PCL Win8 Metro WP8 わんくま同盟 名古屋勉強会 #25
  • 23. Hello, PCL! (番外 - WinMDから使う) • ごくシンプルなクラス PCL WinMD Win8 コードビハインド わんくま同盟 名古屋勉強会 #25
  • 24. INotifyPropertyChangedを実装してバインド • 使える! (WinMDもOK) PCL WinMD わんくま同盟 名古屋勉強会 #25
  • 26. Web アクセス • WebClientは無い。HttpWebRequestを使う。 • …んが!? WP8でShift-JISがエンコードできん!! orz わんくま同盟 名古屋勉強会 #25
  • 27. PCL の罠 • コンパイルできるからと言って、 Win8 と WP8 で挙動が同じとは限らない! * WP8 では実装されてなかったり、 例外が出たり… orz * ユニットテストの楽な Win8 側で作る。 でも、WP8 でのテストも必須 !! わんくま同盟 名古屋勉強会 #25
  • 28. UI系はPCLに入っていない • Win8とWP8に共通でも、PCLに入っていな いものがある。 例: Windows.System.Launcher ソースを リンクして 使うっきゃ ない!! わんくま同盟 名古屋勉強会 #25
  • 29. まとめ • Win8とWP8なら、ロジックはだいたい PCL でイケるよ!! わんくま同盟 名古屋勉強会 #25