【Xamarin】Xamarin.FormsでHelloWorld
Xamrin.FormsでHelloWorldしてみる。
作成
Cross-Platformにあるクロスプラットフォームアプリ(Xamarin.Formsまたはネイティブ)を選択してプロジェクトを作成する。
作成すると、どういう画面なの?ってのとUWPのバージョンは?って聞いてくるから、画像のように。ソリューションからソリューションのNuGetパッケージの管理を選択して、Xamarin関係のパッケージを更新する。
この時、互換性がないぞっていうエラーになるなら、Xamarin.Formsだけ更新する。
(更新パッケージとして出てきたけど、Xamarin.Formsに適用されてないから互換性がないって状態)
更新が終わったらちゃんと再起動すること。一度ソリューションのリビルドをする。
実際はAndroidプロジェクトのみがリビルトされる。HelloWorldプロジェクトに、Forms Blank Content Page XamlでGreetPage.xamlを追加する。
GreetPage.xamlに、Buttonを配置する。 Clicked属性は、Clicked=あたりまで入力するとインテリセンスが効くので、その状態でTabを押すとイベントハンドラを自動で作成してくれる。
- GreetPage.xaml.csで、作成されたイベントハンドラ内にコードを記述する。
- App.xaml.csのコンストラクタで、GreetPageクラスをMainPageとするよう記述を変更する。
Android
予め作っておいたエミュレーターを指定して実行すると、動くで。
iOS
Mac側のシステム環境設定 → 共有 -> リモートログインから、リモートログインを許可しておく。
なぜか画像が壊れているので、下記パスから画像を引っ張り出して上書きする。
上書き先はD:\HelloWorld\HelloWorld\HelloWorld.iOS\Resources(ドライブレターとかは適宜読み替え)。- C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\Extensions\Xamarin\Xamarin\4.2.2.11\T\~PC\PT\CSharp\Cross-Platform\Native.PCL.zip\Native.PCL.Template.iOS\Resources\Images.xcassets\AppIcons.appiconset
- C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\Extensions\Xamarin\Xamarin\4.2.2.11\T\~PC\PT\CSharp\Cross-Platform\Native.PCL.zip\Native.PCL.Template.iOS\Resources\Images.xcassets\LaunchImage.launchimage
スタートアッププロジェクトに設定する。
InitializeComponent()をコメントアウトする。
実はApp.xaml.csのコンストラクタに記されてあるInitializeComponent()が邪魔。ツール → iOS → Xamarin Mac エージェントを選択して、Macと接続する。
Mac側でリモートログインの是非ダイアログが出る場合は許可する。リビルドする。
iPhoneSimulatorを選択して、使いたいエミュレーター(iPhone6なのか、iPhone7なのか)を選択した上で実行する。
iOSでリビルドができない場合
コンピュータ名 にインストールされたXamarin.iOS(バージョン 10.8)がローカル Xamarin.iOS(バージョン 10.10)と互換性がありません。 MacにインストールされてるXamarinが古いので、Mac側のXamarin Studioから一式更新する。
Visual Studio for Macでも同じかな?Mac 名前のないサーバー(255.255.255.255)にインストールされたXamarin.iOS(バージョン 10.8)がローカル Xamarin.iOS(バージョン 10.10)と互換性がありません。 Mac側のXamarinを更新した後、Visual Studioを再起動しないと出るっぽい。
Visual Studioを再起動すると解消される。
とりあえずこれで細かいことを気にしないで、『とりあえず何か動いた』状態まで持っていけるので、これから望むものに作り上げていく。