Visual Studio For Macをインストールしてみた
先日、Visual Studio For Macがリリースされたので、使ってみました。
ちなみに、アプリ開発は、趣味でのUnity開発以外やったことないのですが、ネイティブアプリのロジック部分ををCSHARPによる統一コードで作れるので、簡単なアプリケーションを実装するまでやってみた。
インストール
以下のアドレスよりインストールできます。
https://www.visualstudio.com/ja/vs/visual-studio-mac/
基本的に画面の指示通りにインストールできました。
プロジェクトの作成
マルチプラットフォーム→ブランクフォームアプリを選択
指示に従って、プロジェクトの作成を完了します。
ビューをXAMLで書く
ビューを変更するときは、xamlファイルを変更します。
今回は、helloworldsPage.xamlを編集します
<?xml version="1.0" encoding="utf-8"?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms" xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" xmlns:local="clr-namespace:helloworlds" x:Class="helloworlds.helloworldsPage">
<StackLayout HorizontalOptions="Center" VerticalOptions = "Center">
<Label Text="text" x:Name="label"></Label>
<Slider x:Name="slider"></Slider>
</StackLayout>
</ContentPage>
ここで、x:Nameがコード上での名前になります。
実際には、このxamlからコードが作られ、そのコード上で宣言されています。
コード部分を書く
上記で、テキストの部分にスライダーの値を表示するようにします。
Sliderの項目に、valueChanged="handle_ValueChanged"
を追加すると、自動的にコードが生成されます。
そこを、このように編集します
using Xamarin.Forms;
namespace helloworlds
{
public partial class helloworldsPage : ContentPage
{
void Handle_ValueChanged(object sender, Xamarin.Forms.ValueChangedEventArgs e)
{
label.Text = string.Format("Hello {0:F2]", e.NewValue);
}
public helloworldsPage()
{
InitializeComponent();
label.Text = string.Format("Hello {0:F2}", slider.Value);
}
}
}
コンパイルと実行
ツールバーの以下の部分で、対象とするデバイスを選んで起動できます。
helloworlds.Droidを、iOSに切り替えると、iOSのデバッグもできます。
再生ボタンを押すとコンパイルが始まり、シミュレーターが起動します。
iOS,Android双方で同じアプリケーションが動くことを確認できるでしょう!
おまけ クロスプラットフォームアーキテクチャ
どうやってCSharpで、両方のネイティブ環境で動くプログラムを作っているのか気になったので調べてみた。
AndroidとiOSでは違うアプローチで変更していた。
Android
CSharpコード
↓
IL(中間コード)+Mono Runtime
↓ JIT(Just In Time)コンパイル
ネイティブコード
iOS
一方で、iOSではJITが許可されていないので
CSharpコード
↓
IL(中間コード)
↓AOT(Ahead of time)
ネイティブコード
となっているようだ。間違っているかもしれない
Author And Source
この問題について(Visual Studio For Macをインストールしてみた), 我々は、より多くの情報をここで見つけました https://qiita.com/taikikun/items/1de2ce8e2216e92ab206著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .