初投稿になります。
ひらりんと申します。
先日、「初心者歓迎XamarinのLT会!Xamarin入門者の集い #2」というイベントでLTをさせていただいてきたので、その報告と内容紹介をしたいと思います。 jxug.connpass.com
いま話題の「Xamarin」というクロスプラットフォームのモバイルアプリ開発ツールの入門者イベントでした。
MicrosoftによるXamarin社買収以降、無償化やVisual Studio 2017の登場などでかなり手を出しやすくなった印象です。
会社で技術系の社内講座などを開催している身としては、この流れには乗っておかねばと思い、今回入門者LTにも申し込んだ次第であります。
概要
テーマは「最近Xamarinを触った話」。
LTをやろうと決めてから、そのネタ探しもかねてXamarinをやろう!と環境作成やらいろいろ意気込んでやっていたら、なんとPCがブルースクリーンから復帰しなくなり、初期化すらままならない状況となってしまったのです。
手元に残ったコンピューターはiPhoneだけ…。
(実はちょっと前にMacも壊してしまったばかり)
これじゃあXamarinが触れない…
そこで思いついたのが Microsoft Azureです。
Microsoft AzureはMicrosoftのクラウドサービスです。
そのAzureにVMを立てて、iPhoneからリモートでつなげばiPhoneだけでもXamarinできるはず!という発表でした。
XamarinとAzureの相性が抜群という話はよく聞くし、きっとAzure上での開発もわけないでしょう。
※本当はAzureをモバイルアプリのバックエンドとして使う際に便利、ということです
全体像
ということで実際にやってみたので、その流れをスクリーンショット交えて話しました。
LTでは時間の関係上端折った部分も補いつつ、以下書いていきたいと思います。
Azure VM作成
まずは、Azure VMでWindows Server 2016の仮想マシンを作成します。
スマホに最適化されていないため、リージョン選択などやりにくい部分もありましたが、なんとかiPhoneのSafariからAzureのVMを作ることができました。
リモートデスクトップアプリ
次に作ったVMへのリモート接続です。
Microsoft製のリモートデスクトップのiOSアプリがあったので、それを使いました。
iPhone6sの小さな画面でWindows Serverをいじるのはどうなのかな…と思いましたが、ちゃんとズーム機能が備わっていて、慣れるとすいすい操作することができました。
Windows Server 2016自体がタッチ操作しやすいUIというところも手伝って、iPhoneからの操作はなかなか快適でした。
これは普通にサーバー管理するときにも使えそうな印象です。
Visual Studio 2017のインストール
最初につっかかったのがインストーラーのダウロードでした。
Windows Serverでは、デフォルトの設定のままではインターネットからファイルをダウンロードしたりできません。
Server ManagerのLocal Serverから、「IE Enhanced Security Configuration」をOffにしてあげる必要があります。
設定を変えると、ちゃんとVS2017のインストーラー(のインストーラー)がダウンロードできるようになります。
※ちゃんとサーバー運用する場合は、用が済んだら設定を戻す必要があります
さて、ダウンロードができたらいよいよVisual Studio 2017インストールです。
2017から、イントーラーが劇的な進化を遂げました。 必要なものを選んでインストールするのですが、このUIがとてもわかりやすくなっています。
今回はXamarinのみをインストールします。
Xamarin開発開始
いよいよ開発開始です。
通常通り、Xamarin.Formsのプロジェクトを作成します。
ちなみにWindows ServerではUWPの開発はできないようで、UWPのプロジェクトは作成されませんでした。
エミュレーターでの動作確認
PCが壊れる前、ローカルで試してたときはエミュレーターとしてXamarin Android Player使っていました。他のものと比べてかなり快適だったのでそれを入れたかったのですが、VM上でVirtualBoxが動かなかったので断念しました。
さらにVS EmulaterやHAXMも使用不可だったので、結局使えそうなのはARMエミュレーターのみに。
ARMエミュレーターを立ち上げてみました。
iPhoneの中のWindowsの中のAndroid…!なかなかに衝撃的な画です。
(ここがたぶんいちばんウケました)
エミュレーターが立ち上がったのはいいのですが、肝心のXamarinでビルドしたアプリのデプロイに失敗してしまいました。
ARMのエミュレーターはものすごく重いので、おそらくタイムアウトしてしまったのだと思います。
VMのスペックを上げる
でもそこはAzure。
VMの性能をもっと上げてしまえばいいのです。
最初はケチってHDDで作っていたのをSSDにしたら無事動きました。
まとめ
ということで、PCレスでもXamarinはできる!ということが証明されました。
もちろん、実際にはこんな形で開発することはないとは思いますが、今回のようなある意味縛りプレイをやってみると、意外な気づきがあるのだな、と感じました。
この気づきがいつか何かに活きてくるといいなと思います。
追加:懇親会にていただいたアドバイス
LTを聞いていただいた方に、懇親会で「AzureにVM立ててやるなら、はじめからVisual Studioが入っているのを使うといいよ」という話をしていただきました。
なるほど、そういうものがあるんですね。
さっそくAzureを見てみました。
いろいろな組み合わせが用意されています。
今回は「Visual Studio Community 2017 on Windows Server 2016」の組み合わせで試してみました。
作ってつないでみると、ちゃんとVisual Studio 2017が最初からインストールされてます!
なにやら他にもいろいろ入っているようだし、これならXamarinがすぐ使える!と思ったのですが、どうやらエミュレーターが用意されていないようです。
なので、Xamarinをやる場合はここに手間が余計にかかってしまうみたいですが、Unityなどもインストール済みのようなので、用途によってはこちらのほうが楽なのかもしれません。
LTを終えて
LT会の終了後、イベントのアンケート結果の中からLTの感想を共有いただいたのですが、その中に「ひらりんさんの面白かったです。」という感想がありました。
すっごくうれしいですね。当日もLT中みなさんにたくさん笑っていただけたので、とても楽しく話せました。
ほかにも「Xamarin+Azureに大きな未来を感じました」というコメントもありましたが、これ私のLTを聞いて…??
でも確かに、可能性は無限大ですね。
面白いことがたくさんできそうな組み合わせなのは事実。
いろいろな可能性を試していきたいです。
今回は初LTということであんまり余裕がなかったので登壇を楽しみきれなかったところがあるので、今度また何かしらで登壇できたらと思います。
そして、社内でも今年Xamarinセミナーをやるので、がんばります!
資料
資料はDocs.comにあげてみました。
そこまで需要ないと思いますが…ネタとしてお楽しみいただければと思います。