SlideShare uma empresa Scribd logo
1 de 41
Baixar para ler offline
Metroアプリケーション Win8/WP7の
効率的ソース運用を考える
             株式会社セカンドファクトリー 杉下高仁
2nd FACTRY Co., ltd
UXを通じて人々のライフスタイルを
もっと豊かに、ここちよく




2ndFACTORYは、長年のRIA開発経験と独自の構築プロセスに基づき、革新的なイン
ターフェイスを持つアプリケーションを提供します。アプリケーションやWebサイトを
使いやすい「道具」と考え、毎日使うものだからこそ、ユーザビリティや優しさを確保し
た豊かなエクスペリエンスを実現します。RIA開発を通じ、クライアントにはROIの最大
化とビジネスの成功を、そしてエンドユーザーには豊かなエクスペリエンスをお届けしま
す。
                      2ndFACTORY CO.,Ltd.     1
株式会社セカンドファクトリー




        UI/Cloud Professional


     UI /Cloud
                                       UI 設計/開発
    コンサルティング


                 自社製品開発


                 2ndFACTORY CO.,Ltd.              2
2ndFACTORY CO.,Ltd.   3
ExTOUCH
使いなれたOSを、タッチPCでもっと使いやすく




          http://2ndfactory.com/
                 2ndFACTORY CO.,Ltd.   4
スピーカー紹介




杉下 高仁
学生時代にMacromedia社(現Adobe) Flashに出会い、それまでのWebにない表現力に魅
了され、個人でFlashサイト制作に没頭する。その時Webを通じて (株)セカンドファクト
リーの副社長と知り合い、学生期間中は夏休みに訪問してアルバイトをさせてもらうなど
交流が続いた。無事卒業後に入社し、気が付けば10年とちょっと。Flash、WPF、
Silverlight、Microsoft SurfaceそしてWindows Phoneと、ほぼそのキャリアすべてを
ユーザーインターフェースやクライアントアプリケーションに近い部分で携わってきまし
た。

福島県郡山市生まれ。
開成小学校>郡山一中>福島高専>(株)セカンドファクトリー



                       2ndFACTORY CO.,Ltd.                    5
Windows 8 に
注目しがちですが
Windows 8アプリを作ったら
その資産でWindows Phoneアプリも
持っているソース(=資産)を
他のプラットフォームへの
活用を考えます
このセッションは製品出荷前の情報を
取り扱っています。
最終的に変更される可能性があります。
Metro style apps for Windows 8 = Win8アプリ
Silverlight for Windows Phone = WP7アプリ
として表記しています。
本日お話しすること

1. このセッションでの資産とは?
2. Win8アプリ開発での資産活用方法
  •   それぞれの手法と特性

3. Win8アプリからWP7アプリへの移行方法
  •   経験を踏まえた おすすめの手法

4. まとめ



             2ndFACTORY CO.,Ltd.   11
1   このセッションでの資産とは?




          2ndFACTORY CO.,Ltd.   12
はじめに




当セッションでの“資産”とは
自分自身でプログラミングした
プログラムコードと定義してお話します




         2ndFACTORY CO.,Ltd.   13
はじめに
せっかく自分で頑張って作ったのだから
末永く、色々なところに使いたいですよね。




 子供用の椅子に例えると

        2ndFACTORY CO.,Ltd.   14
はじめに
再利用を意識して作ることで、再利用性は高まります




                                 Tripp Trapp® Chair   www.stokke.com


           2ndFACTORY CO.,Ltd.                                         15
はじめに




それでは、プログラミングにおける
工夫とは何でしょうか?




        2ndFACTORY CO.,Ltd.   16
はじめに
プログラミングにおける要因
 OS
 プラットフォーム
 プログラミング言語
 デバイス

 要因がたくさんありますが
 その中のベストを考えてみましょう
         2ndFACTORY CO.,Ltd.   17
1a   プログラミングにおける資産




           2ndFACTORY CO.,Ltd.   18
タイプ1 スキルとしての資産
自分自身が既に持つ、知識、技能を活用すること


 プログラム言語の知識を(ほぼ)そのまま使える
 学習コストが少なく済む
 プラットフォーム間で存在するギャップだけ学習
例:
 – .NET Framework
 – Java
 – iOS
 – HTML/JavaScript
                     2ndFACTORY CO.,Ltd.   19
タイプ2 プログラムとしての資産
以前記述したプログラムコードを利用すること


 同じ処理は2度と書かない
 繰り返し利用するので品質が上がる




 フレームワークなどは無償公開
 チャートや帳票など、高性能で
  頻出の機能は販売もされている

          2ndFACTORY CO.,Ltd.   20
資産化しやすい部分
主に内部処理
 ビジネスロジック
 汎用処理
 – XML解析など




             2ndFACTORY CO.,Ltd.   21
資産化が難しい部分
ユーザーインターフェースやデザイン
 – プラットフォームごとにユーザーインターフェー
   スが異なる
 – デザインは差別化のためにアプリごとに異なる




            2ndFACTORY CO.,Ltd.   22
資産化が難しい部分
ユーザーインターフェースやデザイン
 – プラットフォームごとにユーザーインターフェー
   スが異なる
 – デザインは差別化のためにアプリごとに異なる



  そこでフレームワークやパーツ単位の資産化
   – 独自画面遷移フレームワーク
   – セレクタ系(日付、時間、通貨)など

            2ndFACTORY CO.,Ltd.   23
2   Windows アプリ開発での資産活用方法




          2ndFACTORY CO.,Ltd.   24
Windows アプリ開発での資産活用方法


 ソースコードの「リンクとして追加」
 – プラットフォーム分のライブラリファイルが作成される
 – ギャップはプリコンパイラで処理を分けられる


 クラス ライブラリ
 – .dllファイルとして再利用する
 – プラットフォーム内限定(例:WPFとSilverlightで分断)
 – バージョン管理がしやすい




                2ndFACTORY CO.,Ltd.    25
.NET Framework での方法


 ポータブル クラス ライブラリ                    NEW
 – 複数プラットフォームで利用可能
 – ギャップを発生させないための共通ライブラリしか利用できない




               2ndFACTORY CO.,Ltd.         26
ポータブル クラス ライブラリ
 これまで不可能だった、複数のプラットフォームへ対応
  できるライブラリ
 – .NET Framework
 – Silverlight
 – Windows Phone
 – .NET for Metro style apps
 – Xbox 360




     実際に見てみましょう

                       2ndFACTORY CO.,Ltd.   27
ポータブル クラス ライブラリ
 共通部分のため、使用できる機能は全体のごく一部




Via http://blogs.msdn.com/b/bclteam/archive/2012/05/09/announcing-portable-library-tools-2-beta-for-visual-studio-2010.aspx


                                                  2ndFACTORY CO.,Ltd.                                                     28
ポータブル クラス ライブラリ
 Visual Studio 2012 RCでは標準搭載
 Visual Studio 2010 では Portable Library Tools
  Beta のインストールが必要




        http://visualstudiogallery.msdn.microsoft.com/b0e0b5e9-e138-410b-ad10-00cb3caf4981


                               2ndFACTORY CO.,Ltd.                                           29
ポータブル クラス ライブラリを使えば・・・
Q.Webサービスとの通信をすべて共通化できる?
A.△プラットフォームごとに通信呼び出し方法が
  異なるため、受信データを解析など部分利用が
  オススメ


Q.同じMetroだからUI共通化できないの?
A.×あくまでMetroは概念なので、
  プラットフォームごとに最適化が必要



           2ndFACTORY CO.,Ltd.   30
3   Win8アプリからWP7アプリへの移行方法




          2ndFACTORY CO.,Ltd.   31
再利用可能な部分
抽象度の高い部分になります
 デザインテイスト
 画面構成
 ページ構成
 ビジネスロジック
 Utilityなど補助関数
 MVVMにおけるViewModelのプロパティ部分




                  2ndFACTORY CO.,Ltd.   32
再利用できない部分
プラットフォームごとの差が大きい部分です
 画面デザインそのもの
 画面デザイン定義コード(パーツ単位は可能)
 ユーザインタフェースやインタラクションに関わる
  プログラム




               2ndFACTORY CO.,Ltd.   33
おすすめのコンバート方法
地道な方法が近道
 ビジネスロジック、Utility関数をポータブル クラス ライ
  ブラリに移行
 ポータブル クラス ライブラリに含められない部分はクラ
  ス化し、リンクとして追加する
 ViewModelを利用している場合はViewModelのプロパテ
  ィを抽出したクラスに変換する




              2ndFACTORY CO.,Ltd.     34
おすすめのコンバート方法の理由
以前、全コピー&ペーストの方法を試してみました
[条件]
 全10ページ
 Webサービスと通信して情報表示するWP7アプリ
 WP7 to Win8に変換




   [MSDN]
   Migrate/port a
   Windows Phone 7 app
   to a Metro style app

                      2ndFACTORY CO.,Ltd.   35
おすすめのコンバート方法の理由
以前、全コピー&ペーストの方法を試してみました
[手順]
 全ファイルコピペ
 Win8存在しないライブラリ(toolkit系など)をカット
 存在しない関数をコメントアウト
 異なる名称の関数をリネーム


これをビルドが通るまで繰り返す




              2ndFACTORY CO.,Ltd.   36
おすすめのコンバート方法の理由
エラーを解消したアプリイメージ




発生エラーの過半数がユーザーインターフェース関連だった気が…
しかも、ここがWin8アプリ開発スタートライン…
            2ndFACTORY CO.,Ltd.   37
4   まとめ




          2ndFACTORY CO.,Ltd.   38
まとめ
 資産化を意識して開発することで、資産化できる
  範囲が広がります
 お持ちのスキルと資産形成できる仕組みを検討し
  ましょう


 1つのプラットフォームに留まらず、Win8アプリ
  の開発スキルをWP7アプリにも活かしましょう
 地道が近道です

      技術力=資産力=競争力
            2ndFACTORY CO.,Ltd.   39
ありがとうございました




          2ndFACTORY CO.,Ltd.   40

Mais conteúdo relacionado

Mais procurados

One ASP.NET ~ 今、ASP.NET に何が起こっているのか? ~
One ASP.NET ~ 今、ASP.NET に何が起こっているのか? ~One ASP.NET ~ 今、ASP.NET に何が起こっているのか? ~
One ASP.NET ~ 今、ASP.NET に何が起こっているのか? ~
Akira Inoue
 
基盤の改善から既存アプリケーションの改善
基盤の改善から既存アプリケーションの改善基盤の改善から既存アプリケーションの改善
基盤の改善から既存アプリケーションの改善
T.R. Nishi
 
第4回.NET中心会議 基調講演「スマートフォン時代の到来と.NET開発」(高橋さま)
第4回.NET中心会議 基調講演「スマートフォン時代の到来と.NET開発」(高橋さま)第4回.NET中心会議 基調講演「スマートフォン時代の到来と.NET開発」(高橋さま)
第4回.NET中心会議 基調講演「スマートフォン時代の到来と.NET開発」(高橋さま)
Masahiko Isshiki
 
はやわかりHTML5ハイブリッドアプリ開発事情
はやわかりHTML5ハイブリッドアプリ開発事情 はやわかりHTML5ハイブリッドアプリ開発事情
はやわかりHTML5ハイブリッドアプリ開発事情
Monaca
 
Windowsストアアプリ開発 オープンセミナー広島
Windowsストアアプリ開発 オープンセミナー広島Windowsストアアプリ開発 オープンセミナー広島
Windowsストアアプリ開発 オープンセミナー広島
Akira Onishi
 

Mais procurados (20)

新しい Visual Studio & .NET と新時代のアーキテクチャ
新しい Visual Studio & .NET と新時代のアーキテクチャ新しい Visual Studio & .NET と新時代のアーキテクチャ
新しい Visual Studio & .NET と新時代のアーキテクチャ
 
サービス開発における工程
サービス開発における工程サービス開発における工程
サービス開発における工程
 
Flex開発を加速するFlash Builder 4新機能紹介
Flex開発を加速するFlash Builder 4新機能紹介Flex開発を加速するFlash Builder 4新機能紹介
Flex開発を加速するFlash Builder 4新機能紹介
 
NSA NB委員会セミナー「モバイルアプリ開発業務におけるmonacaの活用」
NSA NB委員会セミナー「モバイルアプリ開発業務におけるmonacaの活用」NSA NB委員会セミナー「モバイルアプリ開発業務におけるmonacaの活用」
NSA NB委員会セミナー「モバイルアプリ開発業務におけるmonacaの活用」
 
【デブサミ2010】アジリティを向上させる開発ツールの進化
【デブサミ2010】アジリティを向上させる開発ツールの進化【デブサミ2010】アジリティを向上させる開発ツールの進化
【デブサミ2010】アジリティを向上させる開発ツールの進化
 
Windows 10 Developer Readiness [Japan]
Windows 10 Developer Readiness [Japan]Windows 10 Developer Readiness [Japan]
Windows 10 Developer Readiness [Japan]
 
.NET技術でこれからも食べていくための技術戦略
.NET技術でこれからも食べていくための技術戦略.NET技術でこれからも食べていくための技術戦略
.NET技術でこれからも食べていくための技術戦略
 
Cordova×業務システム:失敗しないモバイル開発の秘訣
Cordova×業務システム:失敗しないモバイル開発の秘訣Cordova×業務システム:失敗しないモバイル開発の秘訣
Cordova×業務システム:失敗しないモバイル開発の秘訣
 
HTML5ハイブリッドアプリ の活用ポイント
HTML5ハイブリッドアプリの活用ポイント HTML5ハイブリッドアプリの活用ポイント
HTML5ハイブリッドアプリ の活用ポイント
 
WPF/Silverlight視点で視る MetroスタイルのXAML
WPF/Silverlight視点で視るMetroスタイルのXAMLWPF/Silverlight視点で視るMetroスタイルのXAML
WPF/Silverlight視点で視る MetroスタイルのXAML
 
One ASP.NET ~ 今、ASP.NET に何が起こっているのか? ~
One ASP.NET ~ 今、ASP.NET に何が起こっているのか? ~One ASP.NET ~ 今、ASP.NET に何が起こっているのか? ~
One ASP.NET ~ 今、ASP.NET に何が起こっているのか? ~
 
基盤の改善から既存アプリケーションの改善
基盤の改善から既存アプリケーションの改善基盤の改善から既存アプリケーションの改善
基盤の改善から既存アプリケーションの改善
 
第4回.NET中心会議 基調講演「スマートフォン時代の到来と.NET開発」(高橋さま)
第4回.NET中心会議 基調講演「スマートフォン時代の到来と.NET開発」(高橋さま)第4回.NET中心会議 基調講演「スマートフォン時代の到来と.NET開発」(高橋さま)
第4回.NET中心会議 基調講演「スマートフォン時代の到来と.NET開発」(高橋さま)
 
Developers Summit 2013 Summer C3 なぜデバイス向けアプリ開発が失敗するのか
Developers Summit 2013 Summer C3 なぜデバイス向けアプリ開発が失敗するのかDevelopers Summit 2013 Summer C3 なぜデバイス向けアプリ開発が失敗するのか
Developers Summit 2013 Summer C3 なぜデバイス向けアプリ開発が失敗するのか
 
Html5で加速するモバイルアプリ開発
Html5で加速するモバイルアプリ開発Html5で加速するモバイルアプリ開発
Html5で加速するモバイルアプリ開発
 
HTML5によるモバイルアプリ開発 が拓拓くビジネスチャンス
HTML5によるモバイルアプリ開発 が拓拓くビジネスチャンスHTML5によるモバイルアプリ開発 が拓拓くビジネスチャンス
HTML5によるモバイルアプリ開発 が拓拓くビジネスチャンス
 
HTML5ハイブリッドアプリ開発 で拓くビジネスチャンス
HTML5ハイブリッドアプリ開発で拓くビジネスチャンスHTML5ハイブリッドアプリ開発で拓くビジネスチャンス
HTML5ハイブリッドアプリ開発 で拓くビジネスチャンス
 
はやわかりHTML5ハイブリッドアプリ開発事情
はやわかりHTML5ハイブリッドアプリ開発事情 はやわかりHTML5ハイブリッドアプリ開発事情
はやわかりHTML5ハイブリッドアプリ開発事情
 
Windowsストアアプリ開発 オープンセミナー広島
Windowsストアアプリ開発 オープンセミナー広島Windowsストアアプリ開発 オープンセミナー広島
Windowsストアアプリ開発 オープンセミナー広島
 
Visual Studio 2019 GA ! ~ 最新情報 & これからの開発スタイル
Visual Studio 2019 GA ! ~ 最新情報 & これからの開発スタイルVisual Studio 2019 GA ! ~ 最新情報 & これからの開発スタイル
Visual Studio 2019 GA ! ~ 最新情報 & これからの開発スタイル
 

Semelhante a Efsta cod2012 master_for_slideshare

X dev 20121106
X dev 20121106X dev 20121106
X dev 20121106
Ken Azuma
 
成長できるエンタープライズシステムを目指して-OSGiによるモジュール型アーキテクチャの実現-
成長できるエンタープライズシステムを目指して-OSGiによるモジュール型アーキテクチャの実現-成長できるエンタープライズシステムを目指して-OSGiによるモジュール型アーキテクチャの実現-
成長できるエンタープライズシステムを目指して-OSGiによるモジュール型アーキテクチャの実現-
Hiroki Kondo
 
RICOH THETA x IoT デベロッパーズ コンテスト クラウドAPIセミナー
RICOH THETA x IoT  デベロッパーズ  コンテスト クラウドAPIセミナーRICOH THETA x IoT  デベロッパーズ  コンテスト クラウドAPIセミナー
RICOH THETA x IoT デベロッパーズ コンテスト クラウドAPIセミナー
contest-theta360
 
【17-D-6】.NETアセンブリの宿命
【17-D-6】.NETアセンブリの宿命【17-D-6】.NETアセンブリの宿命
【17-D-6】.NETアセンブリの宿命
Developers Summit
 

Semelhante a Efsta cod2012 master_for_slideshare (20)

X dev 20121106
X dev 20121106X dev 20121106
X dev 20121106
 
IoT Application Development by XPages on Bluemix
IoT Application Development by XPages on BluemixIoT Application Development by XPages on Bluemix
IoT Application Development by XPages on Bluemix
 
AppPot製品概要
AppPot製品概要AppPot製品概要
AppPot製品概要
 
市場動向並びに弊社製品の今後の展望について
市場動向並びに弊社製品の今後の展望について市場動向並びに弊社製品の今後の展望について
市場動向並びに弊社製品の今後の展望について
 
市場動向並びに弊社製品の今後の展望について
市場動向並びに弊社製品の今後の展望について市場動向並びに弊社製品の今後の展望について
市場動向並びに弊社製品の今後の展望について
 
MAF2013 Enterprise Windows 8 – Architecture for rapid development of WinRT apps
MAF2013 Enterprise Windows 8 – Architecture for rapid development of WinRT appsMAF2013 Enterprise Windows 8 – Architecture for rapid development of WinRT apps
MAF2013 Enterprise Windows 8 – Architecture for rapid development of WinRT apps
 
Developers Summit 2013【15-B-6】開発者の "資産形成" につながる Action とは?
Developers Summit 2013【15-B-6】開発者の "資産形成" につながる Action とは?Developers Summit 2013【15-B-6】開発者の "資産形成" につながる Action とは?
Developers Summit 2013【15-B-6】開発者の "資産形成" につながる Action とは?
 
Indigo Studio で作るプロトタイプ
Indigo Studio で作るプロトタイプIndigo Studio で作るプロトタイプ
Indigo Studio で作るプロトタイプ
 
Microsoft Developer Forum 2011 KeyNote by Akihiro Ooba
Microsoft Developer Forum 2011 KeyNote by Akihiro OobaMicrosoft Developer Forum 2011 KeyNote by Akihiro Ooba
Microsoft Developer Forum 2011 KeyNote by Akihiro Ooba
 
成長できるエンタープライズシステムを目指して-OSGiによるモジュール型アーキテクチャの実現-
成長できるエンタープライズシステムを目指して-OSGiによるモジュール型アーキテクチャの実現-成長できるエンタープライズシステムを目指して-OSGiによるモジュール型アーキテクチャの実現-
成長できるエンタープライズシステムを目指して-OSGiによるモジュール型アーキテクチャの実現-
 
クロスプラットフォーム開発入門
クロスプラットフォーム開発入門クロスプラットフォーム開発入門
クロスプラットフォーム開発入門
 
OSSを利用したプロジェクト管理
OSSを利用したプロジェクト管理OSSを利用したプロジェクト管理
OSSを利用したプロジェクト管理
 
NET MAUI for .NET 7 for iOS, Android app development
 NET MAUI for .NET 7 for iOS, Android app development  NET MAUI for .NET 7 for iOS, Android app development
NET MAUI for .NET 7 for iOS, Android app development
 
リコーUCSの開発をリーンスタートアップ的視点でふりかえる
リコーUCSの開発をリーンスタートアップ的視点でふりかえるリコーUCSの開発をリーンスタートアップ的視点でふりかえる
リコーUCSの開発をリーンスタートアップ的視点でふりかえる
 
スマートフォンアプリケーション開発の最新動向
スマートフォンアプリケーション開発の最新動向スマートフォンアプリケーション開発の最新動向
スマートフォンアプリケーション開発の最新動向
 
RICOH THETA x IoT デベロッパーズ コンテスト クラウドAPIセミナー
RICOH THETA x IoT  デベロッパーズ  コンテスト クラウドAPIセミナーRICOH THETA x IoT  デベロッパーズ  コンテスト クラウドAPIセミナー
RICOH THETA x IoT デベロッパーズ コンテスト クラウドAPIセミナー
 
New Integration "X" 新インテグレーションソリューション
New Integration "X" 新インテグレーションソリューションNew Integration "X" 新インテグレーションソリューション
New Integration "X" 新インテグレーションソリューション
 
【17-D-6】.NETアセンブリの宿命
【17-D-6】.NETアセンブリの宿命【17-D-6】.NETアセンブリの宿命
【17-D-6】.NETアセンブリの宿命
 
Cordova を使って本気で商用ハイブリッドアプリ開発をやってみた
Cordova を使って本気で商用ハイブリッドアプリ開発をやってみたCordova を使って本気で商用ハイブリッドアプリ開発をやってみた
Cordova を使って本気で商用ハイブリッドアプリ開発をやってみた
 
3Dリッチコンテンツビジネス活用のご提案ver3.1
3Dリッチコンテンツビジネス活用のご提案ver3.13Dリッチコンテンツビジネス活用のご提案ver3.1
3Dリッチコンテンツビジネス活用のご提案ver3.1
 

Efsta cod2012 master_for_slideshare