読者です 読者をやめる 読者になる 読者になる

万年素人からHackerへの道

万年素人がHackerになれるまで殴り書きするぜ。

Xamarin プログラミングもくもく会

http://eventdots.jp/event/589512 参加しました。

Xamarinの手順メモ

http://dev.classmethod.jp/smartphone/xamarin-studio-free/ ココがいい。

デフォルトでは

cd Projects/プロジェクト名/

に作成される。

↓ココのサイトを参考にした http://dev.classmethod.jp/smartphone/xamarin-forms-page/ 「Xamarin.Formsを使った作成方法」

メインのファイルは プロジェクト名.csファイルで作成される。 小文字のファイル名だとhoge.csになる。

Xamarin.Formsを使った作成方法なので、基本的にソースは、 using Xamarin.Forms;にてインポートして記載する。 ファイルの場所はなんでもよい気がする。 ※勝手にフォルダ掘って作れる。

先ほどのサイトのmenu.pngの画像はここにある。 https://raw.githubusercontent.com/furuya02/Xamarin.Forms.PageSample/master/menu.png

ドラッグでも追加できるように見えるが正規の方法ではないので認識されない・・・。 ※私のXamarin Studioは5.10.3バージョン。

おそらく、この方法が正しい追加方法。

iOS

プロジェクト名.Droid -> Resources で右クリックして、Add -> Add Files..

f:id:shinriyo:20160604142802p:plain

Android

プロジェクト名.Droid -> Resources -> drawable で右クリックして、Add -> Add Files..

f:id:shinriyo:20160604142507p:plain

genymotionがいい

インストールは(Mac OS Xに限るが・・。)

brew cask install virtualbox genymotion

virtualboxも入ってくれる。

ここがインストール手順が詳しい http://qiita.com/tatsuoSakurai/items/b080a57c6148012bc8d0

genymotionで実行するための設定は、 Solutionのすぐ下にあるアイコンからOption f:id:shinriyo:20160604143242p:plain

その後、プルダウンで選択 f:id:shinriyo:20160604143255p:plain

Xamarin Cross-Platform Development Cookbook

Xamarin Cross-Platform Development Cookbook

Unityなら Debug.Log(); デバッグを出す

using System.Diagnostics;
Debug.WriteLine("デバッグ・メッセージを出力");

確認はXamarinでは出来ないっぽい。(未確認)

XamarinでAndroid開発ができればadbが入ってると思うので、 ~/Library/Developer/Xamarin/android-sdk-macosx/platform-tools/adbにだいたい入っている。

あれば、

~/Library/Developer/Xamarin/android-sdk-macosx/platform-tools/adb logcat

で確認できる。

using System;
using Xamarin.Forms;

class MyMasterDetailPage : MasterDetailPage
{
    public MyMasterDetailPage()
    {
        var items = new ContentPage[] {
            new Hoge(),
            new Bar()
        };

        ListView listView = new ListView
        {
            ItemsSource = items,
            BackgroundColor = Color.Transparent
        };

        // マスターページ.
        this.Master = new ContentPage
        {
            BackgroundColor = Color.FromRgba(0.86,0.91,0.94,0.5),
            // iPhoneにおいて、ステータスバーとの重なりを防ぐためパディングを調整する.
            Padding = new Thickness(0, Device.OnPlatform(20, 0, 0), 0, 0),
            Title = "Master", // 必須
            Icon = "menu.png",
            Content = listView
        };

        // リストが選択された際のイベント処理.
        listView.ItemSelected += (s, args) => {
            // プロパティDetailに新しいページをセットする.
            this.Detail = new NavigationPage((Page)args.SelectedItem) // Androidではエラー
            {
                //  タイトルバーの背景色や文字色は、NavigationPageのプロパティをセットする.
                BarBackgroundColor = Color.FromRgba(0.2, 0.6, 0.86, 1),
                BarTextColor = Color.White
            };

            //  Detailページを表示する.
            this.IsPresented = false;
        };

        // 必須 最初のページをセットする.
        listView.SelectedItem = items[0];
    }
}

HogeとBarクラスはContentPageを継承したクラス。 http://dev.classmethod.jp/smartphone/xamarin-forms-page/ の (2) MasterDetailPage を参考にしたもので、new DetailPageを使わずにそのまま突っ込めるようにしたのだが。

iOSは問題ない。

Androidでは同じページに行こうとすると、

「// Androidではエラー」のコメント部分で、 `Java.Lang.IllegalStateException: The specified child already has a parent. You must call removeView() on the child’s parent first.``

のエラーが発生した。

独習C# 第3版

独習C# 第3版

Realmを入れる方法

1.ソリューションペインのプロジェクトの下にある”Packages”の歯車の形のボタンをクリックし、”Add Packages…“を選択します。

2.検索フィールドに”Realm”と入力します。

3.Realmを選択し、追加します。

  1. Fodyが依存関係として追加されたことを確認します。

1.ソリューションペインのプロジェクトの下にある”Packages”の歯車の形のボタンをクリックし、”Add Packages…“を選択します。

ありません。。。。 f:id:shinriyo:20160604164505p:plain