VisualStudio2015のC++でWindowsXP向けにビルド

Visual Studio 2015のC++言語では、ありがたいことにWindowsXP用に動作する実行ファイルをビルドすることが可能です。

C++向けのソリューションファイルを開き、ソリューションの「プロパティ」メニューで「構成プロパティ」→「全般」→「プラットフォームツールセット」で、以下の画像のように「Visual Studio 2015 – WindowsXP (v140_xp)」か「Visual Studio 2012 – WindowsXP (v110_xp)」を選んでビルドするだけです。

vcpp2015

ただし、開発環境であるVisual Studio 2015のIDEはWindows7 SP1以降でないと動作しません。

Adobe Fireworksで2種類のPNG保存方法

Adobe社の2Dペイントツール「Fireworks」には2つのPNG画像ファイルへの保存方法があります。

1つ目は「ファイル」→「(別名で)保存」メニューでのPNG形式を指定しての保存。
これはFireworksで作業した状態のままで、フリーズせずにレイヤーなどを保ったまま保存されます。
この際PNGファイルには完成画像と、レイヤーなどを独自の拡張で書き出しているのでファイルサイズがかなり大きくなります。
普通の2DCGツールは独自形式で保存するのですが、Fireworksの面白いところは、汎用のPNG形式を独自形式として使っている点です。

2つ目は「ファイル」→「画像プレビュー」メニューでPNG形式を指定しての保存。
こちらはレイヤーなどの作業データは含まれず完成画像のみが書き出されます。
ですからファイルのサイズは無駄のない小さなサイズに圧縮されます。

つまり1つ目は作業するときのマスターファイルで、2つ目は実際に使うときのために書き出した完成画像になります。

ちなみに私はAdobe Photoshopも持っていますが、もっぱらFireworks CS6をメインに使っています。
こんなに素晴らしいツールが人気がないなんて。

VisualStudio2015のAndroidデバイス認識

Visual Studio 2015でハイブリッドアプリ(HTML5アプリをスマホアプリに書き出すツール)を開発できる「Visual Studio Tools for Apache Cordova」は「Android4.0」の実機のデバイスでも認識しました。
多分もっと古いデバイスでも認識するかもしれません。
きっと処理能力が遅くてもHTML5アプリはスピードを要求されないためでしょう。

ところが「Visual C++ 2015のクロスプラットフォーム」では「Android4.4」以降でないと実機を認識しません。
これはAndroid NDKをC++で開発するのに最新の機能を使っているためだと思います。
ですから処理能力は非常に高いと思います。

ハイブリッドアプリでスクロールさせないページでソフトキーボードの問題

CordovaなどでiOS向けにハイブリッドアプリを作っていてソフトキーボードの問題がありました。
HTML5アプリをスクロールしないように作っていた場合に、ソフトウェアキーボードが出てくると勝手に下にスクロールして元に戻せなくなります。
そこでエディットボックスなどで編集を不可能にすれば、ソフトキーボードが出現しなくなりました。

例えば以下のように記述します。

<input type=”text” readonly>

「readonly」は「読み出し専用指定」で、他に「disabled」の「選択不能指定」もあるようです。

CordovaでAndroidアプリにした時戻るボタンの不具合

特にVisual Studio 2015の「Visual Studio Tools for Apache Cordova」でハイブリッドAndroidアプリにしたときにバグがあるようです。
Visual Studio 2013版では大丈夫でしたが。

Androidの左下の「戻るボタン(Back Button)」を押してアプリを終了させた後、アプリを再度起動すると動作に不具合が出ることがあるようです。
原因は、「バックボタン」は「ホームボタン」でもなく、完全に終了もしないためのようです。

デバイスの準備ができた時に、例えばindex.jsファイルに以下のようにコーディングして、完全終了させるといいみたいです。

function onDeviceReady() {
document.addEventListener(‘backbutton’, onBackButton.bind(this), false);
};
function onBackButton() {
navigator.app.exitApp();
};

OnsenUIでnavigation-barの文字が見切れる仕様

HTML5ライブラリ「Onsen UI」を使うと、Androidのブラウザで問題がありました。
ナビゲーションの上部のバーの文字が途切れる仕様があります。
原因はナビゲーションバーの子に「center」クラスを作ると「navigation-bar–android__center」クラスが付加されるのですが、その最大幅が「max-width: 50%;」に強制されるからです。
そこでcssで、以下のように「navigation-bar–android__center」クラスを上書きしてやれば、スクリーン幅までテキストを表示できました。

.navigation-bar–android__center {
width: 100%;
max-width: 100%;
}

VisualStudio2015のC++でWin・iOS・AndroidをCrossPlatform

Visual Studio 2015のC++言語で、「Universal Windows Platform (UWP)」「Android」「iOS」の3つのプラットフォームに、OpenGL ES 2でクロスプラットフォームできるプロジェクトテンプレートが公開されています。
http://blogs.msdn.com/b/vcblog/archive/2015/07/30/cross-platform-code-sharing-with-visual-c.aspx

ただし、まだ64bit対応していません。
iOSでは32ビットと64ビットの両方に対応している必要があります。そうしないとappストアに申請できません。

またこの3つのプラットフォームに対応したサウンドライブラリが、OpenSLでいいのか?何がいいのか?わかりません。

jQueryMobileでbodyの背景色

jQuery Mobileではテーマに沿った配色などのデザインが強制的に適用されるようです。

例えばbodyで全体の背景色を指定しても変更できません。
そこで以下のように、bodyに指定されたui-mobile-viewportクラスをcssで設定すれば、背景色が変更できました。
body.ui-mobile-viewport {
background:#ccc;
}

CORDOVAなどiOS8でUIWebViewのバグ

HTML5アプリをスマホアプリに変換するハイブリッドアプリツール「Cordova」などからiOS8に書き出した場合などに、実機で実行する際に落ちるバグがあります。
原因はUIWebViewにあり、iOS8から新たにWKWebViewが出たのでそれを使えば解決します。
ただ現在のところCordovaからはUIWebViewに書き出すので、他の解決方法もあります。
Animationsを使わないのなら、Controllerファイルのinitメソッドで、
[UIView setAnimationsEnabled:NO];
を追加しただけで解決しました。