Xamarin.Android開発をVisualStudio2013で行う際のメモ

MS MVP向けにXamarin.AndroidとXamarin.iOSのライセンスがあるということで、申し込みをしたところ、無事ライセンスが発行されました。

このライセンスはBusinessレベルのライセンスになっているので、自身が使い慣れた「VisualStudio2013」と連携させて使用できるようになりました。

無償のライセンスもあるのですが、「VisualStudio」との連携がなく「XamarinStudio」での開発になり、アプリケーションの容量に制限があります。
まずC#で開発を試したいという場合には無償版でも問題ないと思いますが、「VisualStudio」を利用できるメリットは非常に大きいので、ライセンスの購入を検討されてはいかがでしょうか?

Xamarinのインストールに関しては、Xamarin の代理店であるエクセルソフトの田淵さんがBlogに詳しく書かれています。
これから Xamarin を始めたい方向けの凄く丁寧なインストールガイド (Windows/Android 編)

・個人的な追記
・環境変数は「コントロールパネル」>「システム」>「システムの詳細設定」>「環境変数」
・システム環境変数に新規追加で変数に書く際は「%」は記述不要(のはず、「値」には必要)
・「%JAVA_HOME%」はJAVA SDKインストールフォルダ
・SDK Manager で「Google USB driver」は実機デバッグに必須

さて、実機シミュレーターですが、「VirtualBox」ベースのため「Hyper-V」が有効の環境では使用できません。
自分はWindowsPhone8.1開発も行っているため、これが地味に困る状況だったりします。
今後「Hyper-V」に展開される実機シミュレーターが出るともっと便利かなとは思います。

なので、「Nexus 7(2013)」を購入して、実機デバッグを行うことにしました。

Nexus 7は(2012)と(2013)がありますが、知人から(2013)でないとBLE(Bluetooth Low Energy)が使用できないという情報がもたらされたので、今後も考えて(2013)にしました。((2012)でも向け道はあるようですが、面倒なので)
また、Nexusじゃなくてもいいんじゃないかというのもあったのですが、キャリア端末の場合デバッグが動かない可能性をやはり知人からもたらされたので、Googleの公式端末であるNexusを手に入れました。

さすがにXamarin初心者ですので、参考にするために「C#によるiOS、Android、Windowsアプリケーション開発入門」を丁度参加していたMicrosoft Conference 2014会場で先行販売していたので、購入してきました。

Kindle版も出ています。

現在XamarinはXamarin.FormsというView部分の共通作業を行えるように発展しています。
上記の本ではこれが出る前の方法となっているので、少々古い部分はありますが、手探りでやるという状態よりは良いでしょう。

実機デバッグの準備
インストールは上記の方法でしているものとして、まずNexus7の「開発者向けオプション」を有効にします。

・「設定」>「タブレット情報」>「ビルド番号」を7回タップ
タップしていると「デベロッパーになるまであと~ステップです」と表示されてステップが減ります。
・成功すると「設定」に「開発者向けオプション」が表示されます。
・「開発者向けオプション」>「USBデバッグ」をタップして有効にします。
・PCにデータ通信可能なケーブルでUSB接続します。
・「コントロールパネル」>「システム」>「デバイスマネージャー」>「Nexus7」に「?」がついています。
・「Nexus7」を右「クリック」>「プロパティ」>「ドライバー」>「ドライバーの更新」>「コンピュータを参照してドライバーソフトウェアを検索します」>「参照」>「C:\dev\Android-Studio\sdk\extras\google\usb_driver」
・インストールを行うと「Android ADB Interface」がインストールされます
Android ADB Interface

android01

・インストール後、実機側で「USBデバッグを有効にします」と出るのでタップすれば、VisualStudio2013上で認識されます。
android02

android03

これで取りあえず、VisualStudio2013上での開発と実機デバッグが行えるはずです。

AndroidはバージョンごとにAPIレベルが設定されているので、使用するコンパイラレベルと最少バージョンを指定しなければいけません。
プロジェクトのプロパティで「Compile using Android version」と「Minimum Android to target」を変更します。

ProjectProperty

既存のVisualStudio2013ソリューションにXamarinプロジェクトを追加する場合、追加が終わらず応答なしになる時があります。
この場合、VisualStudio2013を強制終了して、ソリューションを起動、既存プロジェクトの追加で、追加はされていないもののプロジェクトファイルは作成されているので、それを参照して追加することで、作業を開始できます。

さて、なんでVisualStudio2013ベースをお勧めしているかといえば、楽だからです。
もちろんXamarinStudioも性能が上がってきていますが、VisualStudioはそれ以上に便利でパワフルです。
また、Windows/WindowsPhone8.1の開発を先に開始していることもあり、既存ソリューションの移植、TFSとの連携からVisualStudio上での開発を行っています。

まずはこんなところから開発事始め的なメモ記事を書いてみました。

Windows 10 Technical PreviewをThinkPad T400にアップグレードインストールしてみた

 Lenovo ThinkPad T400 は、ほぼ6年ほど前のノートPCでWindowsXP(Vistaダウングレード)搭載機でした。
 購入後、HDD交換などで延命して、現在もWindows8.1をインストールして使用しています。

スペックとしては下記のようなものです。
・Intel Core2 Duo P8600
・メモリ 8GB
・VGA Intel GM45 / AMD Mobility Radeon HD 3400 Switchable Graphics
・インストールに使用したHDDには「Windows7 SP1 Ultimate」がインストールされています。
という感じです。

 使用した「Windows7 SP1 Ultimate」環境は、一年以上前の物だったので、WindowsUpdate等を行い最新の更新状況にしたうえで、アップグレードインストールを行いました。

 アップグレードインストールはローカルファイルは基本的には保持されますが、インストールしたアプリケーションはすべてアンインストールされた状態になり、再インストールが必要になります。
 ローカルファイルも、「ProgramFile」フォルダーなどの、退避されるフォルダーにある場合は、一緒に退避させられます。

 さて、Windows8.1でもですが、この機体での「Switchable Graphics」は特殊な方法で実現している物で、現在いくつかの機体に搭載されている新しい「Switchable Graphics」ではないので、標準ドライバでは対応していません。
 また、公式ドライバにも存在しないため、「Switchable Graphics」を有効にしている場合「Radeon」に注意マークがつき、Intel側が有効なVGAとして表示され、Radeonは使用できない形になります。
Switchable Graphics
 もちろん、BIOSでどちらか片方に設定を変更すれば、そちらが優先で使用可能なので、Radeonも使用できます。

 また、いくつかのハードにドライバが標準では存在しないため同じく注意が出ています。
 ハード注意

 少し動かしてみた感じでは、もたつく感じもほぼないので、各種アプリケーションを入れてみるところも確認できればと思いますが、開発用となると時間がかかるので、どうしようかとは思っています。

 手持ちの環境としては前回の記事と今回の記事の機体、後は普段使用しているデスクトップがあるのですが、さすがにこれに入れるのは別なHDD(SSD)を用意して行いたい、インストールテストはとりあえずここまでとします。

Windows 10 Technical Preview をインストールしてみた

Windows 9やWindows THという名前が浮かんでいた次期WindowsはWindows 10となりました。

Windows 10 technical Preview(以下Win10TP)」は開発者やIT Proに向けた最初期のテストプログラムです。
現在使用している環境や、重要な環境への適用は行わないようにアナウンスされています。

Win10TPは日本語イメージは現在ありません。
また、いくつかの機能はまだ実装されていません。

Win10TPの「システム要件」は現状では
・CPU: 1 GHz 以上
・メモリ: 1 GB (32 ビット) または 2 GB (64 ビット)
・ハード ディスクの空き容量: 16 GB
・グラフィックス カード: Microsoft DirectX 9 グラフィックス デバイス (WDDM ドライバー付き)
・Microsoft アカウントとインターネット アクセス
 MSアカウントは後でも設定可能なので、インストール時に必要というわけではありません。
 また、解像度としては1024*768以上の解像度が必要になります。

・Hyper-Vへのインストール
Windows8.1 Pro 64bit でHyper-Vを有効にして、Win10TP x64のインストールテスト行いました
Hyper-Vマネージャーを起動
001
仮想マシンの新規作成で「世代の割り当て」を「第二世代」に設定しました
002
「メモリの割り当て」はx86なら1024MB以上、x64なら2048MB以上に設定します。
余裕を持たせるためには+1024MBを割り当てたほうがいいと思います。
003
「インストールオプション」はブートイメージからOSをインストールするを選択して、ISOイメージを参照しておきます。
004
インストールに成功して、ログインするとこうなります。
win10tp001
・設定解像度は1366*768にしました。

・ストアの表示
標準ではフルスクリーンで表示されないため、スクロールが非常に分かりにくくなっています。

win10tp000

win10tp002

もちろん、開始解像度が広ければ起こらないかもしれませんが、少々改善の余地がありそうな気はします。

・東芝 dynabook Tab VT484/22Kへのアップグレードインストール
最初行った際に、UpDateCheckで無限ループを繰り返すという現象が起きました。
「CCleaner」「Auslogics Registry Cleaner」で、余分なファイルの削除、レジストリーの掃除を行い、Windows8.1のWindowsUpDateが来ていたので、インストールしたところUpDateCheckから先に進みました。
さて、これでアップグレードインストールがと進めたのですが、エラーが表示され、現在進んでいません。
WP_20141003_004
「何かが起きたので失敗しました、再度セットアップを行ってください」ということでしょうが、何度行っても、ここから先に進みません。

さて、さすがに Technical Preview 色々と癖があるようです。
わからない方は絶対に手を出さないでください。

de:code Special Edition に参加してきました

開発者向け講演イベント「de:code Special Edition ~マイクロソフト本社のエグゼクティブが語るエンジニアの未来~」が昨日開催され、参加してきました。
本社エグゼクティブですが、Microsoftサティア新CEOが初来日され、最初の一時間ほど、講演されました。
サティア・ナデラCEOと伊藤かつら氏

Windows10の発表直後ということで、Windows10に関する意気込み、Officeに関するコミット等
WindowsPhoneに関して二度ほど伊藤さんが話題を振っていただけましたが、「WindowsPhoneは日本の会議で話題になる」「universal アプリをもっと出してほしい」等、言葉上は前向きですというかんじですが、これはもう3年ほど同じ状況が続いていることの追認でしかなく、残念ながら、日本での展開は期待できない状況であることには変わらないようです。

私はWindowsPhoneアプリ、universalアプリの開発公開は継続しますが、日本語アプリの提供は今後基本行いません。
universalアプリについてはWindowsPhoneと連携しなければ意味のないアプリもあるので、その場合日本市場への提供を行わないという選択肢も入れることにします。

これ以外については、IoT、Unity等のプラットフォームへ対応を進めること、クラウド(Azure)への機能対応、iOS、Android、Linux他OSへの幅広い選択肢が可能なように、SDKやコードの提供を行うとのことです。

ランチセッション
 SurfacePro3の利用に関してエヴァンジェリスト高橋忍氏が軽く行いました。
 「ペン」使ってますか?
 ペン入力を行う場合は画面の拡大や罫線表示機能を利用して、ペン入力しやすいようにするといい。
 手書き文字入力は便利で高性能に判断してくれます。

ジェネラルセッション
 お昼の後はエヴァンジェリスト5人によるセッション
 VisualStudioのコードレンズ機能やコードマップ機能など便利になってますよという紹介(ultimateでないと使えない機能もあります)
 BlendはPen入力でベクターデータを作成可能
  高橋忍氏が一筆書きでサティアを描き出してました。

 BCP(事業継続性)について
  Azureにフェールオーバー可能になりましたという紹介など
  クラウドに開発が映っている

 AzureとVisualStudio
  Azureの仮想マシンにVisualStudioを乗せているイメージが提供されているので、クラウド上で開発を行える
  VisualStudioOnlineというWebブラウザで動作するVisualStudioも使用可能
  AzureMobileServiceは様々なプラットフォーム(iOS、Android、PhoneGap等々)に対応している

 Xamarin
  Xamarin(ザマリン)を使用すると使い慣れたVSを利用してiOS、Androidの開発をC#で可能になる
  VSとの連携にはXamarin Pro版が必要

One‐Microsoft
WEBの技術でuniversalApplication
HTML5/JavaScriptで開発可能
 XBox(開発契約が必要)も可能になっていく

 ほぼ一日がかりのセッション群でした。