同じアプリでWindows 10 UWPとWindows Phone 8.1の両方をターゲットにするにはどうすればよいですか?


18

バックグラウンド

開発者の観点から見ると、Windows 10の主なセールスポイントは、新しいUniversal * Windows Platform(UWP)です。

*「ユニバーサル」は本当に「のWindows 10を実行することをすべてのデバイスへのユニバーサル」、およびない「もないだけのWindows 10を実行するデバイスへのユニバーサルが、Windows 8.1と意味はどこおそらく Windows 7の」。したがって、UWPアプリを構築する場合、実際には「Windows 10アプリ」を構築するだけです。UWPアプリは、Windows 8.1およびWindows Phone 8.1デバイス上でも実行されません。つまり、下位互換性はまったくありません。

2015年第3四半期現在、Windows 10はPCおよびIoTデバイスで使用できます。Windows 10 Mobileが一般公開されるまでには少なくとも数か月かかりますが、おそらく1年以内です。これは、Windows Phone 8.1がまだしばらく存在することを意味します。

質問

Windows Phoneアプリの開発を開始しようとしていますが、かなりシンプルなアプリなので、来月かそこらで公開する予定です。Windows 10 Mobileはすぐに届かないので、世界中のデバイスのアップグレードはもちろんですが、Windows Phone 8.1をターゲットにする必要があります。しかし、それができなくなりますので、という長いアウトのWindows 10モバイル・ロールの前には、Windows 10 UWPへの展開のための私の解決策を用意するのが賢明だろうと、私は思ったんだけどと同様(のWindows Phone 8.1にもに私を許すであろう必要な限り8.1をサポートし続けます)。

同じソリューション内でUWPプロジェクトと8.1プロジェクトをグループ化し、Visual StudioのWindows 8.1 Universalテンプレートと同様に、共有プロジェクトを介してソースファイルとアセットを共有できることがわかりました。私は正しい軌道に乗っていますか?もしそうなら、すべての(XAMLを含む、理想的には両方のプラットフォームで同じまたは少なくとも類似したUIを使用したい)すべての不整合を考慮して両方のプラットフォームで正しく動作することを確認するために従う必要がある追加のガイドラインはありますか?

あるいは、今のところWindows 10 Mobileを心配せずに8.1プロジェクトから開始し、後でUWP移行することはできましたが、8.1を廃止する予定はないので、アプリの両方のバージョンを維持する必要がありますすぐにユーザー。この場合、まだ機能/ XAMLパリティについて心配する必要があります。


3
更新として、共有プロジェクト、UWPプロジェクト、WP8.1プロジェクトで構成されるソリューションを作成しました。私がやっていることを知っていると確信したら、後で回答で詳しく説明します
...-BoltClock

この特定の主題に関する発見について共有したいアップデートはありますか?このアプローチがどのように機能するかを知りたいと思っています。
ネルソンレイ

3
@Nelson Reis:WP8.1用のアプリの出荷に取り組んでいます(これは素晴らしいことです!)ので、まだUWPアプリの仕事を始めていません。しかし、私はすぐに。これまでのところ、物事はWP8.1側でかなりうまく機能しています。
BoltClock

更新に興味があります。WP8.1とUWPの開発はどのように進みましたか?(私は50ポイント未満なので、コメントできません)この理由は、クロスプラットフォームアプリの開発を始めており、現在どのテクノロジーを使用するかを決定しているためです。(programmers.stackexchange.com/questions/314850/...
makons

2
ねえ、これはとても時間がかかってすみません。私のUWPアプリの開発は順調に進んでいるので、数週間以内に共有できるものがあります。
BoltClock

回答:


2

あなたのコメントの1つで言うように、これを行う最善の方法は、共有プロジェクトを使用し、それにいくつかのヘッドを追加することです。あなたの場合、Windows Phone 8.1ヘッドとuwpヘッド。この位置は、Jerry NixonとAndy WigleyによるMVAでも表現されています(これはそうだと思いますが、8.1以降のアプリをuwpに移植することに関するセクションで更新されました)。

共有プロジェクトでは、条件付きコンパイルディレクティブを使用して、uwpとPhone 8.1で実行されるコードを区別する必要があります。(ユニバーサルWindows 8.1 /電話8.1ア​​プリの作成時と同様)


1

アプリの特定のWindows機能に応じて、Xamarinなどのプラットフォームを使用すると、Windowsだけでなく、同じコードベースでiOSとAndroidを記述することができます。


1

私の経験からすると、いくつかのヘルパー/ロジック/などをPCLライブラリに配置する価値があります。次に、PCLを変更せずに使用できる2つのプロジェクト(それぞれUWPとWP8)を作成できます。また、サービスを共有し、モデルとモデルを表示できます(#if条件付きコンパイル行はほとんどありません)。

共有する価値がない唯一のことは、UI関連のスタッフです。あまりにも多くのものを切り替えたり調整したりする必要があるためです(したがって、UWPとWP8が実際に同じでも、個別のレイアウトを準備する方がはるかに簡単です)。

PS UWPとWP8.1 Silverlightでそれをやった

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.