眺めて覚える C# Xamarin Hello World(1)

###iPhoneの電池が持たなくなった。携帯電話の寿命は、大体3年ぐらいだ。
####はたして5万円以上の値打ちがあるのかが疑問である。
####そこでAndroidにすることにした。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/274715/3c2d1962-4aa2-b1d0-8da6-6eb42a31e2bb.png)

### さくさく動くし、電池も3日もつ!
### 値段も5万円から2万円適正価格だ!
前から気になっていたXamarinを使ってC#でプログラムしてみた。

1.Visual studio 2019のインストールについては、色々な記事があるので参考にしてほしい。
私の買ったディバイスは、UMIDIGI Xだ。まず、メーカサイトからディバイスドライバーを[**ダウンロード**](https://www.hardreset.info/devices/umidigi/umidigi-x/faq/drivers/)してWindows 10にinstall しよう。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/274715/36da5765-a358-45fb-f59b-b4b522a6986c.png)

ドライブが見えるようになる。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/274715/8175cf0f-5d69-e2b9-3b37-1958dfc2f254.png)
# 開発者モードにするには、「設定」アプリ内で「ビルド番号」を7回連続してタップ
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/274715/413bca74-0f5b-8a13-2dbe-cd60fe776286.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/274715/da29a63e-0cc0-04e7-bc0d-fc687d42de08.png)
#Visual Studio 2019でプロジェクトを作成する。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/274715/9c85a13f-5453-91a4-5d80-ec54675f1857.png)
**Xamarin Formsを選択する。**
**Windows APPを作成するような感覚で開発できる。**
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/274715/cdb68f92-45df-67f7-712a-7fcca2aadff6.png)
**空白のプロジェクトを作成する。**
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/274715/01aa9f5d-ea92-b95f-8161-d896291cae12.png)

**USBにより接続されたAndroidが表示されているか、確認する。**
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/274715/dd280a3b-6f41-ff05-6c54-72cabd10415c.png)
**とりあえず下記のように表示されればOK**
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/274715/bce1a975-6504-fb6a-e30d-41673388194f.png)
**プログラムの内容を見てみよう**
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/274715/b462523c-af0f-54f9-f6f7-fc03ca78fcee.png)
**MainPage.xamlをダブルクリックするとソースが現れる。**
XAMLはXMLをベースとしたマークアップ言語です。UIを定義するのに用いられます。

```MainPage.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:d="http://xamarin.com/schemas/2014/forms/design"
             xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
             mc:Ignorable="d"
             x:Class="HelloWorld.MainPage">

    <StackLayout>
        <!-- Place new controls here -->
        <Label Text="Welcome to Xamarin.Forms!" 
           HorizontalOptions="Center"
           VerticalOptions="CenterAndExpand" />
    </StackLayout>

</ContentPage>
```
**さてプログラムでHello Worldを表示してみよう。**
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/274715/8cedf4ae-692d-7725-62a4-5e418cb12947.png)

```MainPage.xaml.cs
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Xamarin.Forms;

namespace HelloWorld
{
    // Learn more about making custom code visible in the Xamarin.Forms previewer
    // by visiting https://aka.ms/xamarinforms-previewer
    [DesignTimeVisible(false)]
    public partial class MainPage : ContentPage
    {
        public MainPage()
        {
            InitializeComponent();
            var layout = new StackLayout();
            var lb = new Label() { Text = "Hello World",FontSize=40 };
            layout.Children.Add(lb);
            this.Content = layout;
            
        }
    }
}

```
Xamlでうにゃうにゃ書いていたレアウトをプログラムで書くと上記のようになる。

#多分、javaで書くよりすっきりしていて良い。