読者です 読者をやめる 読者になる 読者になる

Xamarin 日本語情報

Xamarin(ザマリン) の代理店だったエクセルソフト田淵のブログです。主に Xamarin に関するエントリーをアップしていきます。(なるべく正しい有益な情報を掲載していきたいと考えていますが、このブログのエントリーは所属組織の公式見解ではありませんのでご注意ください)

【速報】Xamarin.Forms for UWP Preview 版がリリースされました

こんにちは。エクセルソフトの田淵です。

2016/1/22 追記:
最新の Xamarin.Forms 2.0.1.6495 用のプロジェクトテンプレートを作成しました。Xamarin.Forms の PCL、AndroidiOS、UWP、Windows Store 8.1、Windows Phone 8.1 (WinRT) の 6つのプロジェクトが含まれていて、プロジェクトを作成してビルドするだけで、UWP, Windows Store, Windows Phone 8.1 アプリが作れます。ぜひ試してみてください。

ytabuchi.hatenablog.com












2015/10/16 に Xamarin.Forms for Universal Windows Platform (UWP) がクローズドベータでリリースされました。

2015/10/25 に Xamarin.Forms for UWP Preview Now Available - Xamarin Forums で Xamarin 公式フォーラムで公開が開始されましたので、是非 Xamarin をお持ちの皆様は試してみてください。

今回 ダウンロードしたバージョンは Xamarin.Forms.1.5.1.6466-pre2 です。

ダウンロードと事前準備

早速ダウンロードして Readme を読んでみます。

.nupkg を提供するから Local NuGet 立てて読み込んでね。なるほど。Local NuGet は NuGetでローカルのギャラリーを作って自作ライブラリを管理する - きよくらの備忘録 を参考にして立てましょう。そこに Xamarin.Forms.1.5.1.6466-pre2.nupkgXamarin.Forms.Maps.1.5.1.6466-pre2.nupkg を配置します。

プロジェクト作成と設定

f:id:ytabuchi:20151020151016p:plain:w450
空白のアプリ (ユニバーサル Windows) を作成します。

f:id:ytabuchi:20151020151142p:plain:w450
こんな感じでプロジェクトが追加されます。

f:id:ytabuchi:20151020151238p:plain:w450
ビルド > 構成マネージャー で忘れずにビルド、配置にチェックを入れます。

f:id:ytabuchi:20151020152258p:plain:w450
ソリューションから NuGet パッケージマネージャーを開き、パッケージソース から設定した Local NuGet を選択し、プレリリースを含める にチェックを入れて、すべてのプロジェクトに Xamarin.Forms.1.5.1.6466-pre2 をインストールします。

コードの修正

ここからは作成した UWP プロジェクトを修正していきます。基本的な流れは Xamarin.Forms for Windows を使ってみた - Xamarin 日本語情報 と変わりません。

ところどころに出て来る UWPSample.UWP はプロジェクト名ですので、適宜置き換えてください。

App.xaml.cs の 60行目位の rootFrame.NavigationFailed += OnNavigationFailed; の後に Xamarin.Forms.Forms.Init(e); を追加します。

次のようになります。

rootFrame.NavigationFailed += OnNavigationFailed;

// これをここに追加
Xamarin.Forms.Forms.Init(e);

if (e.PreviousExecutionState == ApplicationExecutionState.Terminated)
{
    //TODO: 以前中断したアプリケーションから状態を読み込みます
}

MainPage.xaml の Content を削除して、xmlns:forms="using:Xamarin.Forms.Platform.UWP" を追加し、root Element の page を forms:WindowsPage に変更

2015/12/21 追記:
Xamarin.Forms 2.0 リリース時に UWP に変わりました(恐らく)

次のようになります。

<forms:WindowsPage
    x:Class="UWPSample.UWP.MainPage"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:forms="using:Xamarin.Forms.Platform.UWP"
    xmlns:local="using:UWPSample.UWP"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    mc:Ignorable="d">

    <Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">

    </Grid>

</forms:WindowsPage>

MainPage.xaml.cs の MainPage クラスの継承 :page を削除し、LoadApplication(new UWPSample.App()); を追加します。PCL プロジェクト名.App() とするか、using しましょう。

次のようになります。

public sealed partial class MainPage
{
    public MainPage()
    {
        this.InitializeComponent();

        LoadApplication(new UWPSample.App());
    }
}

完成

動かしてみましょう。

f:id:ytabuchi:20151020154313p:plain:w300
Windows 10 マシンは開発者モードにしておく必要がありますね。

f:id:ytabuchi:20151020154649p:plain:w450
f:id:ytabuchi:20151020154703p:plain:w450

単純な NavigationPage なら問題なく動きますね。

私の作った IT勉強会検索のアプリもやってみました。

f:id:ytabuchi:20151020154749g:plain:w450

落ちました!ww ただ、これは ObservableCollection.Clear() で発生しているので、Xamarin.Forms とはおそらく無関係だと思います。

ぜひ皆さんの Xamarin アプリを UWP 対応させてみてください!

Xamarin 気になった方は

これで、iOS/Android アプリを既に Xamarin で作っている皆さまは、MS さんの意欲的な Windows Bridge for iOSWindows Bridge for Android は使わなくても UWP アプリをリリースできますね!笑

是非 ダウンロード(直接) / ダウンロード(弊社経由) して触ってみてください。 学習用リソースJXUG リンクページ に参考資料を纏めてますので併せてどうぞ。

Xamarin の情報が欲しい方はこのブログも購読いただいたりすると嬉しいです。

以上です。