Windopws Phone SilverLight 8.1 アプリをuniversal Appとして申請する場合のメモ

Windows8.1ストアアプリ側でInkManagerなどを使用したアプリを作成していた場合、WindopwsPhone SilverLight 8.1(以下WPSL8.1)で、アプリを作成しなければならなくなります。

このWPSL8.1アプリをユニバーサルアプリとして連携させる場合、ひと手間かかります。

sys000

上記のように同じソリューション内にWPSL8.1用のプロジェクトを作成するのが一般的だと思います。

作成はそのまま進めることで問題ないですが、そのままではアプリ登録時の検証でエラーが発生します。

sys001

WPSL8.1用の「Package.appxmanifest」をダブルクリックすると上記のように表示されるので、「パッケージ名」を登録済みWindowsストアアプリの「Package.appxmanifest」からコピーします。

次にWPSL8.1用「Package.appxmanifest」を右クリックし、「ファイルを開くアプリケーションを選択」>「ソースコード(テキスト)エディター」を選択して、XMLをテキストとして開きます。

sys002

「Identity」にある「Publisher=”CN=~”」をWindowsストアアプリの「Package.appxmanifest」、発行者に書かれている「CN=~」をコピーしてペーストします。

これらの書き換えはWindowsストアアプリが登録済みでなければできないので、WPSL8.1アプリを先行させている場合は、更新時に連携設定と書き換えを行う形になります。

WinRTベースのユニバーサルアプリを作成する場合は共有となり「Publisher=”CN=~”」の書き換えなどは必要ないので迷わず行えます。

今回はWPSL8.1アプリで説明しましたが、universal連携そのものはWP7.5/8アプリでも可能なようです。
おそらく同じような方法で連携設定を行うことになるのではないかと思いますが、自分は環境をWP8.1に移行していますので、検証できていないことをご了承ください。

Action<in T>のメモ

Action<in T>はdelegateで単一パラメーターの戻り値を持たないカプセルメソッド

public class Hoge : IDisposable
{
        Action<string> _hogehoge;

        public Hoge(Action<string> HOGEHOGE= null)
        {
                _hogehoge = HOGEHOGE;
        }

        void HogeHoge(string message)
        {
            if (_hogehoge != null)
            {
                _hogehoge(message);
            }
        }
}

上記のように宣言しておく

public class Main
{
        Hoge HOGE;

        protected override void OnNavigatedTo(NavigationEventArgs e)
        {
            base.OnNavigatedTo(e);

            HOGE= new Hoge(async (m) => await Dispatcher.RunIdleAsync((o) => Statustext.Text = m));
        }
}

こんな感じで宣言しておけば、class HogeでHogeHogeにテキストを投げて表示Pageに表示することができます。

Dispatcher.RunIdleAsyncなので、コントロールに限らず定義可能なので使い道は多いと思う。

今回はクラス内のStatusを追いかけるのにstringを宣言してますけど、<T>なので他も可能です。

WindowsPhone8.1 Developer Preview 開始

WindowsPhone8.1 Developer Previewが開始され、Developer登録をしている端末のアップデートが開始されたようです。

Developer Previewとなっているように、開発者向けのベータプログラムというべきもので、完全自己責任、文鎮化しても文句言わない、バグや機能の制限がまだあるかもというあくまでも現在開発している人に向けたものです。

・「Cortana」は所謂A社が搭載してるあれのMS的なAI機能も搭載版ですが、米国限定でのプレビュー版です。
・「タイルが透過」するようになって、メイン画面で配置した写真が透過(タイルによる)して見えるようになりました。
・「タイル数が増加」は高解像度機だけで可能だった6タイル配置がWVGAでも可能になったものです。
設定 6タイル
・「通知センター(Action Center)」は、画面上部からスライドすると設定などがここで行えます。
・「Wordflow」はUSキーボードで有効になる新しい入力方法です。
  ちょっと慣れは必要になりそうな気はしますが、慣れると高速入力が可能になりそうです。
・「VPN対応」読んで字のごとくですね、企業でも活用しやすくなるでしょう。
・「ブラウザがIE11」WindowsPhone8.1向けにはなっているもののIE11エンジンになり、操作方法が少々変更になっています。
 FlashやUnityWebPlayerは動きません。
・「Windows Runtime との互換性向上」はWindowsストアアプリとの互換性が向上し、universal Appsという仕組みが導入され、相互作用させやすくなりました。
・「言語設定の拡張」で必要な言語はDLしてインストールする方向になり、Windowsのコントロールパネルにある「言語設定」と同じような操作方法も含んで同じ感じです。

とりあえずこんなところで

Visual Studio 2013 Update 2 RCが公開

現在開催中のBuild 2014 に合わせて「Visual Studio 2013 Update 2 RC」が公開され、新たに「ユニバーサル アプリ」「WindowsPhone 8.1 アプリ」の開発が行えるようになりました。

newuniversalapps

ユニバーサルアプリはWindows8.1ストアアプリとWindowsPhone8.1アプリを同一コードで開発できるようになったテンプレートです。
今後は「XBox」も同一で行えるようにしていければというもののようです。

WindowsPhone8.1向けは、今後WP8.1を搭載した端末が4月末から5月にかけて出るようなのと、Lumia向けには夏にはWindowsPhone8から更新の形で、配布されるようです。
Lumia以外の端末に関してはいまのところ告知されていないようです。

ユニバーサルアプリですが、本当の意味で同一コードというわけではなく、同一ソリューションでプロジェクトが混在可能であり、PCL等による共通化をtemplateにしたという感じです。

hubuniapps

既存のコードを変換というのは手間になりそうな気配ですが、新規で作成したプロジェクトに移植という形であれば統一しやすいのではないかなーという感じです。

見かけた面白そうなコントロール

Silverlight Cover Flow
某プレイヤーぽいあれな表示用コントロールですね
ベータではあるもののライセンスが「Ms-PL」でソースコードが公開されているので勉強にもなると思います。

WinRT XAML Toolkit – Composition

WinRT XAML Toolkit – CompositionWinRT XAML ToolkitにWriteableBitmapやChart等が含まれています。
NuGetのパッケージマネージャーコンソール経由で現在「1.5.4」が導入可能です。

CompositionにはSharpDXも含まれているので、少し容量が大きくなるのでWriteableBitmapやChart(グラフ)が必要なくWinRT XAML Toolkitに含まれているコンポーネントが必要な場合はComposition無しのWinRT XAML Toolkitを入れましょう。

Chart(グラフ)を使用する場合はツールボックスに表示されないので。
XAMLに下記を追加

xmlns:Charting="using:WinRTXamlToolkit.Controls.DataVisualization.Charting"

XAMLでの実態(線グラフ)

						<Charting:Chart x:Uid="LineChart" x:Name="LineChart" Title="グラフ" BorderBrush="#FF191B30" Foreground="#FF191B30">
							<Charting:LineSeries x:Name="LineSeries"
								Title="線タイトル"        
								IndependentValueBinding="{Binding Name}"
								DependentValueBinding="{Binding Value}"
								IsSelectionEnabled="True">
								<Charting:LineSeries.DataContext>
									<Style TargetType="Charting:LineDataPoint">
										<Setter Property="Background" Value="DarkBlue"/>
									</Style>
								</Charting:LineSeries.DataContext>
							</Charting:LineSeries>
						</Charting:Chart>

コード側の実装例

            ChartItems = new ObservableCollection(GraphList);
            ((LineSeries)Chart.Series[0]).ItemsSource = ChartItems ;

線グラフ以外にも、円グラフ、棒グラフなどが可能です

TABLET PC – Enhanced Tablet Driver 7.1.2

WACOMのタブレットPC向けドライバが7.1.2になりWindows8.1に対応しているようです。
Surface Pro / Pro2で「Wintab対応(Photoshopなどでの筆圧検知)」をする場合には必要です。
自己責任でどうぞ。

ダウンロード先(英語):Wacom Feel Driver | Wacom Americas

SQLite for Windows Runtime to Windows 8.1

以前の環境を引き継いでの開発の場合「SQLite for Windows Runtime」が利用している「Microsoft Visual C++ Runtime Package」がVer11.0なためWindows8.1用には使用できません。

SQLite Download Page
に「sqlite-winrt81-3080002.vsix」があるので、これをDLしてインストールすることで、Windows8.1用ストアアプリでも使用できるようになります。

インストールすると参照からWindows拡張に「SQLite for Windows Runtime (Windows 8.1)」があるのでこれを有効化して使用することができます。

新規で開発環境を作った場合なら「拡張機能と更新プログラム」でSQLiteを検索することで「SQLite for Windows Runtime (Windows 8.1)」が表示されるかもしれませんが、出てこない場合は同じくDLしてインストールしましょう。

ループスライドパズルを公開しました

ループしながらスライドする画像を移動させて正解画像をそろえるパズル、「ループスライドパズル」を公開しました。

パズルは「3×3」「4×4」「5×5」があり、「5×5」はアイテム課金による有料となっていることをご了承ください。

ループスライドパズル
ループスライドパズル、ステージ選択画面

WindowsStoreLinkImage
*対応言語:日本語; English; 簡体字中国語; español; português
*É um quebra-cabeça para alinhar a imagem correta para mover a imagem para deslizar enquanto loop.
*这是一个益智对准正确的图像,移动图像滑动while循环。
*Es un rompecabezas para alinear la imagen correcta para mover la imagen a resbalarse al bucle.
*It is a puzzle to align the correct image to move the image to slide while loop.

Surface2/Pro2日本で10月25日から発売開始

日本マイクロソフト Surface 新製品発表会でSurface2/Pro2が日本では10月25日から発売開始だそうです
法人向けは11月1日とのこと

価格はPro2のメイン4GB/SSD128GBで99,800円とのことでofficeも含んでこの価格はかなり頑張った価格ではないでしょうか?

・アクセサリー
 カー チャージャー:5,480円
 ドッキング ステーション (Surface Pro):19,980円
 USB 充電ポート付き 48W 電源アダプター:7,980円
 タッチ カバー 2:11,980円
 タイプ カバー 2:12,980円
 アーク タッチ マウス Surface エディション:6,980円
 パワー カバー:価格未定

カー チャージャー、ドッキング ステーション、パワー カバーは後日販売予定とのことです。
 
発表会でSurface以外の物(WindowsPhone8等)については、surfaceの発表会なので発言できないとのことで質疑応答では解答は出ない状態でした。

公式ページがSurface2/Pro2仕様に代わりました。
ただ販売は明日(25日)からのためか購入はできない状態です。