43
Microsoft MVP ComCamp – Webcast 1 st round. Universal Appとは? - デバイスに依存しないアプリケーション開発 -

Universal Appとは? -デバイスに依存しないアプリケーション開発-

Embed Size (px)

DESCRIPTION

2014/09/24 Microsoft MVP ComCamp – Webcast 1st round. 発表資料

Citation preview

Page 1: Universal Appとは? -デバイスに依存しないアプリケーション開発-

Microsoft MVP ComCamp – Webcast 1st round.

Universal Appとは?- デバイスに依存しないアプリケーション開発 -

Page 2: Universal Appとは? -デバイスに依存しないアプリケーション開発-
Page 3: Universal Appとは? -デバイスに依存しないアプリケーション開発-

Today’s goal

今後の展望背景 トレンド 開発方法

Page 4: Universal Appとは? -デバイスに依存しないアプリケーション開発-

Name

鈴木 孝明

Twitter Account

@xin9le

Award

Microsoft MVP for Visual C#

Web Site

http://xin9le.net

About Me

Page 5: Universal Appとは? -デバイスに依存しないアプリケーション開発-

デバイス非依存なアプリケーションの必要性

背景

Page 6: Universal Appとは? -デバイスに依存しないアプリケーション開発-

様々なデバイスの登場

多様な画面サイズ

PhoneTabletPC

Page 7: Universal Appとは? -デバイスに依存しないアプリケーション開発-

加速する IoT (Internet of Things)

モノとネットの融合

さらに広がるIT

Page 8: Universal Appとは? -デバイスに依存しないアプリケーション開発-
Page 9: Universal Appとは? -デバイスに依存しないアプリケーション開発-

Apple Watch

Page 10: Universal Appとは? -デバイスに依存しないアプリケーション開発-

Google Glass

Page 11: Universal Appとは? -デバイスに依存しないアプリケーション開発-

別端末でも同一のサービスを提供

モバイルとビジネスの融合

既存サービスの活用

Page 12: Universal Appとは? -デバイスに依存しないアプリケーション開発-

注目されるBYOD (個人端末活用)

個人所有のデバイスはバラバラ

企業側のコスト削減 2台持ち不要

効率的な業務の遂行

Page 13: Universal Appとは? -デバイスに依存しないアプリケーション開発-

モバイル開発のアプローチ

リッチな体験

Cross-platform apps

Universal Windows apps

Browser-based apps

Page 14: Universal Appとは? -デバイスに依存しないアプリケーション開発-

クロスプラットフォームなモバイルアプリケーション開発

Page 15: Universal Appとは? -デバイスに依存しないアプリケーション開発-

対象プラットフォームiOS / Android / Mac

Xamarinの中身ネイティブAPIのC#ラッパー + 基本クラスライブラリ (BCL) 群

上記プラットフォームで動作する.NET環境

Xamarinとは

Page 16: Universal Appとは? -デバイスに依存しないアプリケーション開発-

開発プラットフォーム

Native UIC# + AXML

Native UIC# + XAML

Native UIC# + XIB

コード共有

統合された開発環境

Page 17: Universal Appとは? -デバイスに依存しないアプリケーション開発-

ネイティブ API カバー率 100%Xamarin.iOS Xamarin.Android

Page 18: Universal Appとは? -デバイスに依存しないアプリケーション開発-

Xamarin.AndroidXamarin.iOS

アプリのビルド

Page 19: Universal Appとは? -デバイスに依存しないアプリケーション開発-

Xamarin.Forms

ネイティブ実行

ひとつのC#コード

主要な3つのMobilePlatform

40以上のコントロール

Page 20: Universal Appとは? -デバイスに依存しないアプリケーション開発-

Xamarin.Formsのコード例

http://xamarin.com/forms

Page 21: Universal Appとは? -デバイスに依存しないアプリケーション開発-

製品 グレード 価格 (1ユーザー/年)

Xamarin.AndroidBusiness ¥127,800

Enterprise ¥243,000

Xamarin.iOSBusiness ¥127,800

Enterprise ¥243,000

Xamarin.MacBusiness ¥127,800

Enterprise ¥243,000

価格

http://www.xlsoft.com/jp/products/xamarin/price.html

Page 22: Universal Appとは? -デバイスに依存しないアプリケーション開発-

オンライン講座

http://xamarin.com/university

製品ダウンロード

http://xamarin.com/download

さあ、Xamariましょう

Page 23: Universal Appとは? -デバイスに依存しないアプリケーション開発-

Windowsデバイスにおけるプラットフォームを超えたアプリケーション構築

Univarsal Windows App

Page 24: Universal Appとは? -デバイスに依存しないアプリケーション開発-

各社のモバイル展開アプローチ

Page 25: Universal Appとは? -デバイスに依存しないアプリケーション開発-

対象プラットフォームWindowsストアアプリ / Windows Phone / Xbox One※

コード共有による開発生産性を提供ロジックやコントロール、アセット等を共有

デバイスごとに発生していた開発/保守コストを削減

Universal Windows Appとは

※ 将来的にできるようになる予定だが、対応時期などは未発表

Page 26: Universal Appとは? -デバイスに依存しないアプリケーション開発-

Shared Project

3つのプロジェクト構成

デバイス用からSharedを参照

Xamarinでも利用可能

Page 27: Universal Appとは? -デバイスに依存しないアプリケーション開発-

プログラミングモデル

Page 28: Universal Appとは? -デバイスに依存しないアプリケーション開発-

Windows 9でRT / Phoneが統合される予定

Page 29: Universal Appとは? -デバイスに依存しないアプリケーション開発-

Web技術をベースにしたハイブリッド型のモバイルアプリ開発

Page 30: Universal Appとは? -デバイスに依存しないアプリケーション開発-

対象プラットフォームiOS / Android / Windows Phone

Web技術を利用各デバイスのブラウザで描画

ネイティブAPIのJavaScriptラッパー

Apache Cordovaとは

HTML | CSS

JavaScript | TypeScript

Page 31: Universal Appとは? -デバイスに依存しないアプリケーション開発-

プログラミングモデル

Page 32: Universal Appとは? -デバイスに依存しないアプリケーション開発-

プラットフォームを超えたコードの再利用

再利用性の追求

Page 33: Universal Appとは? -デバイスに依存しないアプリケーション開発-

Portable Class Library

Windows Phone Windows Store Apps

.NET Framework

複数環境でコード共有

XamarinSilverlightXboxなども可

Page 34: Universal Appとは? -デバイスに依存しないアプリケーション開発-

MVVM (Model - View - ViewModel)

View ViewModel Model

Data Binding

Commands

Notifications

UI / UI LogicPresentaionLogic

BusinessLogic

デバイス固有 再利用可能なコード(PCL or Shared Project)

Page 35: Universal Appとは? -デバイスに依存しないアプリケーション開発-

多様化する画面解像度への柔軟な対応

画面レイアウト

Page 36: Universal Appとは? -デバイスに依存しないアプリケーション開発-

様々な画面解像度

4096 × 2160

2560 × 1600

1920 × 1080

1024 × 768

Page 37: Universal Appとは? -デバイスに依存しないアプリケーション開発-

画面の向き

PortraitLandscape

レイアウト変更によるUI最適化

Page 38: Universal Appとは? -デバイスに依存しないアプリケーション開発-

絶対配置位置や大きさが要素に直接指定されて決まる

リサイズはイベントをフックして自前で位置と大きさを再計算

相対配置周りの要素とそれらの関係で位置や大きさが決まる

リサイズはフレームワークによる自動制御

絶対配置と相対配置

Page 39: Universal Appとは? -デバイスに依存しないアプリケーション開発-

モダンUIは相対配置が基本

WebWindows iOS Android

XAML Auto Layout Layout CSS 3

Page 40: Universal Appとは? -デバイスに依存しないアプリケーション開発-

Mobile First / Cloud First 時代のトレンドをおさらい

まとめ

Page 41: Universal Appとは? -デバイスに依存しないアプリケーション開発-

これだけは押さえよう

相対配置Xamarin

UniversalWindowsApp

ApacheCordova

開発生産性を追求MVVM

多様なデバイスを受け入れる

PortableClass Library

Page 42: Universal Appとは? -デバイスに依存しないアプリケーション開発-

Enjoy Universal App!!

Thank you

Page 43: Universal Appとは? -デバイスに依存しないアプリケーション開発-

For your happy developer life.

Microsoft MVP ComCamp