(公開用)xamarin & universal windowsアプリで広がるwindowsストア解説

Post on 28-May-2015

813 Views

Category:

Documents

6 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Xamarin & Universal Windows アプリで広がる

Windows ストア解説

第 19 回 OITEC 勉強会スライド

Agenda

•Universal Windows アプリケーションについて

• Xamarin について

•その他

今日伝えたいこと

•Visual Studio でマルチプラットフォーム開発が面白い !!

•Windows ストアアプリ周辺の話で、 Windows ストアアプリに関してはあまり言及しない

今日伝えたいひと

•ストアアプリは作れるようになったけど、

ストアがいまひとつ盛り上がってない どうしよう?

•スマートフォン開発でそれぞれ言語を使い分けるのが面倒

•Visual Studio が好き !!

Universal Windowsアプリケーション

•Windows 8 向けの Windows ストアアプリと Windows Phone 向けのアプリケーションを共通のコードで作成できる。

Universal ~とは?

•ストアアプリと WP の 9 割の API が共通化

•Windows Phone も WinRT ベースになったけど、既存アプリはちょっと大変

Universal ~とは?

•Windows ストアアプリはあまり影響がない

•Windows Phone 側は選択が必要

Universal ~の影響

API に不十分な部分はあるがストアアプリ展開が可能将来性高

使える API は多い8 からの変更点が少ない将来は WinRT にシフト?

•Windows ストアと Windows Phone の共有ファイルを配置する Shared プロジェクトが追加

•コードの共有は従来の PCL or Shared プロジェクト( PCL = Portable Class

Library )

Universal ~で追加されたもの

Shared プロジェクトと PCL の違い

• Shared プロジェクトは #if でプラットフォームの別の case わけが可能。

• PCL は case わけができず、プラットフォーム固有の処理は使えない。 dll として別プロジェクトでも利用可能。

(全体図を説明した後もう一度触れます)

•試してみるWindows ストアプリを Universal

実際どうなん?

Windows Phone プロジェクトを追加

Shared に移してみる

•Shared に思い切ってファイルをガンガン移動(実際はエラーを確認しながら移動していきます)

•今回は View ファイルはほとんど共有できました(今回の場合共有できなかったのは、 Windows

Phone には存在しない手書き機能のページ)

View の共有

セオリー

•今回はゲームなので同じ画面を共有できたが、画面はストアアプリ、WP で別々の設計が必要

•ViewModel 、Model は大部分が共有可能。

コードは公開中

Github の coelacanth77 でコードが DL

できます。

(広告の ID などが消してあるので動かすにはその辺の編集が必要)

https://github.com/coelacanth77/

EscapeOfKinokoForestSample

まとめ

• 既存のアプリを展開する場合は API 次第で作業量が変わる

• Windows Phone は WinRT ベース( Universal )で行くか、 Silverlight ベースで行くか要検討

• 画面サイズが違うので View は別々に作ることが多いが、ゲームのような単純に拡大・縮小で対応できる場合は共通化できる

Xamarin について

Xamarin について

•C#&Visual Studio でiOS 、 Android のアプリケーションの作成が可能

•お値段高め

•高速進化中

C# で iOS 、 Android のアプリ作成が可能

•画面はそれぞれの仕組み

    iOS StoryBoard

    Android XML

    Windows ストア    Windows Phone

XAML

最新の環境だと iOS, Android も XAML で開発可能(後述)

C# で iOS 、 Android のアプリ作成が可能

•API はそれぞれのプラットフォームに合わせた呼び出しが必要

•ラップするだけなのでバージョンアップへの対応は早い !!

Xamarin.iOS

•開発するには Mac が必要

•最新の Xamarin3 では Visual

Studio 上で Story b oard の編集が可能に(デモをお見せしたいが、 Mac に接続してないとできない…)

Xamarin.iOS

•デリゲートや Linq などが使えるので便利。

•ローカルファイルへの処理、カメラ、位置情報などなど良く使う機能はXamarin.Android も合わせて同じ API 呼び出しができるように抽象化されている。(もちろん、 API も使える)

• iOS 開発に C# の便利なところを取り入れられる感じ

Xamarin.iOS

•MVVM では書き辛い ( 個人的感想 )

→Native に近い書き方を選択

•Android や WinRT との共通化は思ったよりできる(プラットフォーム依存のコードなどはinterface などを使って手続きだけ共通化)

Xamarin.iOS

// PCL 側は interface定義を記述

public interface IFileManager

{

void saveData(string str, string key);

string getData(string key);

}

Xamarin.iOS

// プラットフォーム依存部分はそれぞれのプロジェクトで実装

/// <summary>

/// iOS版FileManager

/// </summary>

class FileManager : IFileManager

{

string path =

System.Environment.GetFolderPath(System.Environment.SpecialFolder.Personal);

public void saveData(string data, string key)

{

string filePath = path + "/" + key + ".txt";

File.WriteAllText(filePath, data);

}

それじゃ Portable じゃないよね? というのが気になるなら Shared プロジェクト

Xamarin.iOS

•開発するのに Mac が必要なのがやはり不便。

メイン OS を Mac にして仮想でWindows+ VisualStudio

という構成が安定

Xamarin.Android

•MVVMCross で MVVM 開発が便利 !!

•実機がないとストレス( Xamarin に限らず)

•Android 開発の知識はやっぱり必要

Xamarin+Universal

• iOS, Android, Windows ストア ,

Windows Phone の開発が 1 つのソリューションで‼

PCL or Shared

•共通処理は PCL か Shared プロジェクト選択

• PCL はライブラリ化できるが「 Android

の場合」といったケースわけができない

• Shared プロジェクトはケースわけが可能ただしライブラリ化はできない

Shared プロジェクト内で分岐

#if WINDOWS_APP

var setup = new Setup(rootFrame);

  … Windows ストアアプリ固有の処理…

#endif

Xamarin.Form

• Xamarin3 で追加された iOS とAndroid 、 WP の UI を共通の XAML で記述できる機能

•追加されたばかりなので色々不便もあるが、今後完成度を高めれば非常に素晴らしい機能になりそう

• Xamarin.Forms Control Galleryhttp://developer.xamarin.com/guides/cross-platform/xamarin-forms/controls/

Xamarin.Form

•各プラットフォームで共通して使えるという仕組みのため機能が最大公約数になる

•もし、それぞれのプラットフォーム固有の機能を利用する場合は固有のView ( XAML とか Storyboard )を使う

コンポーネントストア

•Xamarin版 Nuget

コンポーネントストア

•Xamarin.Mobile

Xamarin まとめ

• iOS,Android,Windows ストア ,WP

のすべてを C# で書ける魅力的なツール

•ただし高い、ただし進化の途中で変更も多い

その他

ツール

•Appmethod 

• Delphi の機能をモバイル開発に絞ったもの

• C++

•Cordova• =PhoneGap ?

• JavaScript

•Adobe AIR

• ActionScript

ツール

•Unity (ゲーム特化)

•Qt

•WebView (ツールじゃない

資料

•de:codehttp://channel9.msdn.com/Events/de-code/2014

Xamarin については MS渡辺さんの

iOS/Android アプリを C#/.NET で開発 - Xamarin で実現するクロスプラットフォーム対応 –

がおすすめ(それ以外も一見の価値あり)

資料

•Xamarin Japan ( facebook )

  Xamarin の日本代理店のエクセルソフトの方も

 日本語での技術的な質問はここが良さそう(英語だと公式のフォーラム)

TypeScript 、 JavaScript

•Windows ストアアプリでも TypeScript

を利用可能に( Express は NG )

Store Apps Templates with TypeScript

http://visualstudiogallery.msdn.microsoft.com/bd97e47d-ed3a-4f5e-

ace2-37bbcb545c9e

•Windows Phone でも JavaScript が使えるように

お値段

ご静聴ありがとうございました

top related