Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

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

1,911 views

Published on

サンプルコードは SkyDrive にあります。 http://t.co/Z9DnR4ho

Published in: Technology
  • Be the first to comment

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

  1. 1. Windows 8 ストア・アプリ / Windows Phone 8 アプリ、 両面撃破作戦 2012/12/1 BluewaterSoft biac わんくま同盟 名古屋勉強会 #25
  2. 2. Windows 8 と Windows Phone 8• 同じアプリを作る! 例: 「クラウディアさんタイマー」 ※ 両方ともストアに公開済み わんくま同盟 名古屋勉強会 #25
  3. 3. Windows 8 と Windows Phone 8• できるだけコピペしたくない!! 「クラウディアさんタイマー」では、画像と音 声のリソースは、リンクして使った。 ・画像と音声は Win8 のプロジェクトに置いた。 ・WP8 のプロジェクトからは、リンクして取り 込んだ。• それじゃ、コードは!? 【本日のテーマ】 ・どちらからも使える DLL を作る (=PCL) ・ソースコードをリンクして使う わんくま同盟 名古屋勉強会 #25
  4. 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. 5. 自己紹介 (続き)• 最近は、こんなアプリを書いてます ・青空文庫リーダー・ライト ・クラウディアさんタイマー ・bwNotepad: 簡易メモ帳 ・bwDevTools: Metro Color Chart Windowsストアで公開中!! わんくま同盟 名古屋勉強会 #25 5
  6. 6. かつて Metro と呼ばれていた何か ⇒ "Windows 8 ストア・アプリ"(?)• Windows 8 • Windows Phone 8• Windows RT わんくま同盟 名古屋勉強会 #25
  7. 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. 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. 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 referencehttp://msdn.microsoft.com/library/windowsphone/develop/ff626516 わんくま同盟 名古屋勉強会 #25
  10. 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 XNAhttp://windowsteamblog.com/windows_phone/b/windowsphone/archive/2012/06/20/announcing-windows-phone-8.aspx わんくま同盟 名古屋勉強会 #25
  11. 11. ところで、Windows Phone って、どーよ!? 世界スマートフォン市場シェア推移予測 (2012年/2016年)出典: IDC Worldwide Quarterly Mobile Phone Trackerhttp://www.itmedia.co.jp/news/articles/1206/07/news077.html ※ 予想した会社によってバラつくが、数年でiPhoneに追いつくだろうという点では一致している。 わんくま同盟 名古屋勉強会 #25
  12. 12. Win8 Metro と WP8 の API• WP8 は Win8 Metro のサブセット …とは、言い難い!• UIコントロール … だいぶ違う WP8のは、WP7から引き継いだ感じ• WinRT / .NET API … だいぶ違う 少ないだけじゃない。WP8独自のも。• WinMD … WP8では使えない (たぶん) わんくま同盟 名古屋勉強会 #25
  13. 13. UIに使うコントロール• ずいぶん違うただし、共通のものはけっこうコピペ出来る (^^) XAML controls comparison between Windows Phone 8 and Windows 8 http://msdn.microsoft.com/library/windowsphone/develop/ff626516 わんくま同盟 名古屋勉強会 #25
  14. 14. WinRT• だいぶ違う 共通部分の一部 を、PCLとして バイナリで共用 可能 残りの共通部分 は、コードレベ ルで共用可能 "Windows Phone API reference" 掲載の図から描き起こし http://msdn.microsoft.com/library/windowsphone/develop/ff626516 わんくま同盟 名古屋勉強会 #25
  15. 15. PCL - Portable Class Library• 複数の.NETプラットフォームで共用できる クラスライブラリ (DLL)ロジックやデータ周りはけっこうイケル♪• とりあえず、このへん読んで!MSDN マガジン 2011年 8月号「ポータブル クラス ライブラリ: 入門」 http://msdn.microsoft.com/ja-jp/magazine/hh335063.aspx わんくま同盟 名古屋勉強会 #25
  16. 16. PCL を作るには Visual Studio の Pro. 版以上• Expressのプロジェクト テンプレートには、無い※ Win8 Metro と WP8 に限定する(右の画像)と、 かなり使える API が増える (^^) わんくま同盟 名古屋勉強会 #25
  17. 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. 18. Win8 / WP8 / PCL / WinMD …ややこしいっ Win8 Metro バックグラウンド タスク WinMD クラスライブラリ Win8 MetroWin8 Metro アプリ ランタイム Win8 Metro 用 クラスライブラリ WP8 アプリ PCL WP8 ランタイム WP8 用 クラスライブラリ わんくま同盟 名古屋勉強会 #25
  19. 19. では、PCLの実例をいくつかご紹介。あ、WinMDも。PCLの例 わんくま同盟 名古屋勉強会 #25
  20. 20. Hello, PCL! (1/3 - from Win8)• ごくシンプルなクラス PCL Win8 XAML Win8コードビハインド わんくま同盟 名古屋勉強会 #25
  21. 21. Hello, PCL! (2/3 - from WP8)• ごくシンプルなクラス WP8 PCL XAML WP8コードビハインド わんくま同盟 名古屋勉強会 #25
  22. 22. Hello, PCL! (3/3 - 実行結果)• ごくシンプルなクラス PCLWin8Metro WP8 わんくま同盟 名古屋勉強会 #25
  23. 23. Hello, PCL! (番外 - WinMDから使う)• ごくシンプルなクラス PCLWinMD Win8 コードビハインド わんくま同盟 名古屋勉強会 #25
  24. 24. INotifyPropertyChangedを実装してバインド• 使える! (WinMDもOK) PCL WinMD わんくま同盟 名古屋勉強会 #25
  25. 25. ObservableCollectionを公開してバインド• PCLならイケる! (WinMDでは使えない) PCL わんくま同盟 名古屋勉強会 #25
  26. 26. Web アクセス• WebClientは無い。HttpWebRequestを使う。• …んが!? WP8でShift-JISがエンコードできん!! orz わんくま同盟 名古屋勉強会 #25
  27. 27. PCL の罠• コンパイルできるからと言って、 Win8 と WP8 で挙動が同じとは限らない! * WP8 では実装されてなかったり、 例外が出たり… orz * ユニットテストの楽な Win8 側で作る。 でも、WP8 でのテストも必須 !! わんくま同盟 名古屋勉強会 #25
  28. 28. UI系はPCLに入っていない• Win8とWP8に共通でも、PCLに入っていな いものがある。 例: Windows.System.Launcher ソースを リンクして 使うっきゃ ない!! わんくま同盟 名古屋勉強会 #25
  29. 29. まとめ• Win8とWP8なら、ロジックはだいたい PCL でイケるよ!! わんくま同盟 名古屋勉強会 #25
  30. 30. ご清聴ありがとうございました わんくま同盟 名古屋勉強会 #25

×