Xamarin 日本語情報

Xamarin(ザマリン) の代理店だったエクセルソフト田淵のブログです。主に Xamarin に関するエントリーをアップしていきます。(なるべく正しい有益な情報を掲載していきたいと考えていますが、このブログのエントリーは所属組織の公式見解ではありませんのでご注意ください)

目次

はじめに

Xamarin (ザマリンと読みます) とは、Gnome, Mono の開発者である Migel de Icaza (ミゲル・デ・イカザ) 氏が立ち上げた企業名であり、C#Android, iOS, Mac のネイティブアプリを作成できる開発ツール郡 (Xamarin.Android*1、Xamarin.iOS*2、Xamarin.Mac*3、Xamarin Studio*4 など) のブランド名です。

2016/4/1 をもって、Visual Studio に付いてくるようになりました。

本ブログは、エクセルソフトの田淵義人が Xamarin に関する様々な情報を記載しています。Xamarin って何だろ?という方、Xamarin についてもっと知りたい。というような開発者の皆様の手助けになれば幸いです。

 

Visual Studio 2017 で Xamarin を使うエントリー書きました。

ytabuchi.hatenablog.com

 

Xamarin とは?

紹介スライド、エントリーなどをご覧ください。

 

qiita.com

書籍

 

コミュニティ

公式コミュニティサイト Japan Xamarin User Group (JXUG) 

facebook User Group

 

各種情報へのリンク

本ブログの主なエントリー

全般
Xamarin.Forms
Xamarin.iOS、Xamarin.Android 記事
Xamarin.Forms TIPS/逆引き
Xamarin.Forms Plugins/ライブラリ
Xamarin.Forms MVVM
Xamarin Test Cloud/Unit Test
BAD KNOW HOW

全記事一覧 - Xamarin 日本語情報

Xamarin.Forms エントリー纏め

 

事例

事例

 

エクセルソフト Xamarin ページ

Qiita

ブログ、連載記事など

 Xamarin 本家の開発者向けの情報(英語)

Xamarin 学習用リソースまとめ でも公式情報を纏めていますので、ご参照ください。

 

Xamarin 気になった方は

是非 ダウンロード(直接) / ダウンロード(弊社経由) して触ってみてください。
学習用リソースJXUG リンクページ に参考資料を纏めてますので併せてどうぞ。

Xamarin の情報が欲しい方はこのブログも購読いただいたりすると嬉しいです。

以上です。

*1:旧 MonoDroid, Mono for Android

*2:旧 MonoTouch

*3:OSS版はMonoMac

*4:OSS 版は MonoDevelop

【レポ】Prism for Xamarin.Forms入門 Hands-on を開催しました

こんにちは。エクセルソフトの田淵です。

JXUG Prism for Xamarin.Forms入門 Hands-on - connpass

こちらのハンズオンを開催しました。

ドキュメントは @nuits_jp さんが用意してくださったもので、私が皆さんとハンズオンをして、@nuits_jp さんに解説をしてもらう。という私にとっても凄くためになる内容でした。できるとわかるは違うので、ちゃんと分からないと一人でトレーニングとかでやるのは難しそうだなーと感じているところです。

テストも書かないと DI の有難みが分からんよなぁというような話を懇親会で @nuits_jp さんと話していました。

所感

f:id:ytabuchi:20180827191000p:plain:w600

アンケートでは大変良いご評価を頂きました。皆さん楽しんでいただいたようでなによりです。

やっぱりちょっと難しかったみたいですね。下に XAML の補足を書きましたので、ご覧ください。

謝辞

開催にあたり、メンター、スタッフとして関わってくださった @_shunsuke_kawai@mishi_cs@yamamo@nakasho_dev@masatoru@hiro128_777@y_chu5@yoruxama の皆様、ありがとうございます。

引き続き助けて貰えると嬉しいですw

また、終了後に懇親会をしているのですが、初めて参加してくださった方が 4名ほどいらっしゃいました!ありがとうございます!!楽しかったなーと思ってもらえれば何よりです。

補足

内容についてですが、会場で挙手をしてもらったところ、XAML を始めて書くよーって方が結構いらっしゃいましたが、XAML とは?という話が出来なかったのが悔やまれます。

XAML とはオブジェクトのインスタンスを組み⽴てるための⾔語」であって、UI 記述特化言語ではない。という点を踏まえるとハンズオンで書いていた XAML がよりすっと入ってくるのではないかと思います。この言葉は @okazuki さんのスライドをそのまま拝借したものなので、詳しくは以下のスライドをご覧ください。

www.slideshare.net

例えば

PrismHandsOn/04-BindableBaseを利用する.md at master · jxug/PrismHandsOn

LabelText プロパティをバインドして、ButtonCommand をバインドする部分は、XAML だと

<?xml version="1.0" encoding="utf-8" ?>
<ContentPage ...

    <StackLayout HorizontalOptions="Center" VerticalOptions="Center">
        <Label Text="{Binding Message}"/>
        <Button Text="Update Message"
                Command="{Binding UpdateMessageCommand}"/>
    </StackLayout>

</ContentPage>

となっていますが、C# では

public class MainPage : ContentPage
{
    public MainPage()
    {
        var label = new Label();
        label.SetBinding(Label.TextProperty, "Message");

        var button = new Button { Text = "Update Message" };
        button.SetBinding(Button.CommandProperty, "UpdateMessageCommand");

        var stack = new StackLayout
        {
            HorizontalOptions = LayoutOptions.Center,
            VerticalOptions = LayoutOptions.Center,
            Children =
            {
                label,
                button
            }
        };

        Content = stack;
    }
}

と書けるわけです。XAMLコンパイルや動的ロードされて C# のコードになるので結局は同じですよね。Prism の自動で ViewModel をバインドしてくれるのも当然動きます(実際に試して動いてびっくりしましたけどw)。

XAML の属性(Attribute)がそれぞれのクラスのプロパティだったりメソッドだったりしている。というのが分かると理解が早いかもしれません。

この後は

このハンズオンをを終了された方は、DI でインジェクションされるオブジェクトをモックに変更することで、テストが簡単になるのを是非実感していただきたいです。(私も実感したいw)

ということで、

github.com

こちらもやってみると良いかもしれません。

また、9/22(土) には今まで JXUG でやったハンズオンをメンターについてもらいながら実施できるハンズオンのハンズオン(?)を開催しますので、ご興味があれば是非ご参加ください。

jxug.connpass.com

なお、アンケートのコメントで

「チャットボットなどのAIを組み合わせたハンズオンをやってみたいです。」とのご意見を頂きましたので、

cogbot.connpass.com

との合同ハンズオンでも企画しましょうかね。面白そうです!

GPSを使う、カメラを使うといったより実用的なハンズオンがあると嬉しいです。」とのご意見がありましたが、Xamarin 公式で Essentials というライブラリを使うと各 OS 固有のセンサーやデバイスが結構共通コードで掛けますので、ドキュメント見てみてください。

docs.microsoft.com

Xamarin 気になった方は

Visual Studio 2017 をインストールして触ってみてください。手順書は こちらのエントリー をご覧ください。 学習用リソースJXUG リンクページ に参考資料を纏めてますので併せてどうぞ。

Xamarin の導入支援サービスを始めました。ベースは基本的なアプリを一緒に作ることで Xamarin を使えるようになって頂く内容ですが、ご要望に応じて講習内容のカスタマイズも可能です。詳しくは田淵までお問い合わせください(^^)

Xamarin 有償トレーニング : XLsoft エクセルソフト

Xamarin の情報が欲しい方はこのブログも購読いただいたり、私のTwitterアカウントをフォローいただいたりすると嬉しいです。

私が所属している エクセルソフト の宣伝を少しさせてください。弊社は開発者向けの様々なソフトウェアを扱っています。おなじみの ReSharper (JetBrains)、 や Atlassian の JIRA, Confluence、Office/PDF ファイルを .NET/Java で操作するライブラリ Aspose(アスポーズ)Windows アプリ、Web ページ、iOS/Android アプリの UI テストができる TestComplete などお勧めです(^^) また、Visual Studio Professional/Enterprise with MSDN も販売してますし、日本で売っていない海外のソフトウェア、開発ツールなどを弊社経由で日本円で購入頂くことも可能です。ご興味あれば 弊社ページ を覗いてみてください。

以上です。

Xamarin.iOS の AppDelegate で UIAlertController を表示するには

こんにちは。エクセルソフトの田淵です。

表題の通りですが、ViewController 内ではなく、AppDelegate で PresentViewController したい時がありますよね。

var alertController = UIAlertController.Create("Title", "Message", UIAlertControllerStyle.Alert);
alertController.AddAction(UIAlertAction.Create("OK", UIAlertActionStyle.Default, (UIAlertAction obj) => 
{
    //Some Action
}));
this.Window.RootViewController.PresentViewController(alertController, true, null);

とします。

UIAlertController 自体の詳細は MS のドキュメントをご覧ください。

docs.microsoft.com

Xamarin 気になった方は

Visual Studio 2017 をインストールして触ってみてください。手順書は こちらのエントリー をご覧ください。 学習用リソースJXUG リンクページ に参考資料を纏めてますので併せてどうぞ。

Xamarin の導入支援サービスを始めました。ベースは基本的なアプリを一緒に作ることで Xamarin を使えるようになって頂く内容ですが、ご要望に応じて講習内容のカスタマイズも可能です。詳しくは田淵までお問い合わせください(^^)

Xamarin 有償トレーニング : XLsoft エクセルソフト

Xamarin の情報が欲しい方はこのブログも購読いただいたり、私のTwitterアカウントをフォローいただいたりすると嬉しいです。

私が所属している エクセルソフト の宣伝を少しさせてください。弊社は開発者向けの様々なソフトウェアを扱っています。おなじみの ReSharper (JetBrains)、 や Atlassian の JIRA, Confluence、Office/PDF ファイルを .NET/Java で操作するライブラリ Aspose(アスポーズ)Windows アプリ、Web ページ、iOS/Android アプリの UI テストができる TestComplete などお勧めです(^^) また、Visual Studio Professional/Enterprise with MSDN も販売してますし、日本で売っていない海外のソフトウェア、開発ツールなどを弊社経由で日本円で購入頂くことも可能です。ご興味あれば 弊社ページ を覗いてみてください。

以上です。

Xamarin.Android の debug.keystore の場所

こんにちは。エクセルソフトの田淵です。

Android で PUSH 通知を受ける時とか、Google Map を表示する時とかに必要になってくる debug.keystore ですが、いつも忘れてしまうので備忘録で残しておきます。

Windows:

%LOCALAPPDATA%\Xamarin\Mono for Android\debug.keystore

macOS:

~/.local/share/Xamarin/Mono for Android/debug.keystore

です。チームで開発する時は一緒のキーを使わないと署名が違ってしまいますので、ファイルを共有する必要があります。

なお、消してしまった場合は、

keytool -genkey -v -keystore debug.keystore -alias androiddebugkey -keyalg RSA -validity 10000 -dname "CN=Android Debug,O=Android,C=US"

を実行し、再度作成しましょう。

通常の Android Studio の debug.keystore は以下にあります。

Windows:

%USERPROFILE%\.android\debug.keystore

macOS:

~/.android/debug.keystore

Xamarin 用のとは場所が違いますので、両方のファイルを同じにしても良いかもしれないですね。

参考サイト: debug用keystoreについて調べてみた - Qiita

以上です。

Xamarin 気になった方は

Visual Studio 2017 をインストールして触ってみてください。手順書は こちらのエントリー をご覧ください。 学習用リソースJXUG リンクページ に参考資料を纏めてますので併せてどうぞ。

Xamarin の導入支援サービスを始めました。ベースは基本的なアプリを一緒に作ることで Xamarin を使えるようになって頂く内容ですが、ご要望に応じて講習内容のカスタマイズも可能です。詳しくは田淵までお問い合わせください(^^)

Xamarin 有償トレーニング : XLsoft エクセルソフト

Xamarin の情報が欲しい方はこのブログも購読いただいたり、私のTwitterアカウントをフォローいただいたりすると嬉しいです。

私が所属している エクセルソフト の宣伝を少しさせてください。弊社は開発者向けの様々なソフトウェアを扱っています。おなじみの ReSharper (JetBrains)、 や Atlassian の JIRA, Confluence、Office/PDF ファイルを .NET/Java で操作するライブラリ Aspose(アスポーズ)Windows アプリ、Web ページ、iOS/Android アプリの UI テストができる TestComplete などお勧めです(^^) また、Visual Studio Professional/Enterprise with MSDN も販売してますし、日本で売っていない海外のソフトウェア、開発ツールなどを弊社経由で日本円で購入頂くことも可能です。ご興味あれば 弊社ページ を覗いてみてください。

以上です。

Xamarin ネイティブのテンプレートが無くなって「いなかった」

こんにちは。エクセルソフトの田淵です。

f:id:ytabuchi:20180530154558p:plain:w600

実は無くなったのではなく、「Visual C# > Other」に

  • Blank Cross-Platform Mobile App (Native)
  • Master Detail Cross-Platform Mobile App (Native)

という 2つのプロジェクトテンプレートが隠れています。(隠れているわけではないんですけど、Other って…)

このプロジェクトテンプレートで新規にプロジェクトを作ると、無事、Xamarin ネイティブのプロジェクトが作成できます。

が、「共有プロジェクト」で作られてしまいます。

カスタムのプロジェクトテンプレート

ということで、Xamarin ネイティブのプロジェクトを作成したので、是非 Clone して使ってみてください。使い方は README に記載しておきました。

.NET Standard 1.4 で作成するプロジェクトテンプレート

github.com

PCL(Profile 44)で作成するプロジェクトテンプレート

github.com

Xamarin 気になった方は

Visual Studio 2017 をインストールして触ってみてください。手順書は こちらのエントリー をご覧ください。 学習用リソースJXUG リンクページ に参考資料を纏めてますので併せてどうぞ。

Xamarin の導入支援サービスを始めました。ベースは基本的なアプリを一緒に作ることで Xamarin を使えるようになって頂く内容ですが、ご要望に応じて講習内容のカスタマイズも可能です。詳しくは田淵までお問い合わせください(^^)

Xamarin 有償トレーニング : XLsoft エクセルソフト

Xamarin の情報が欲しい方はこのブログも購読いただいたり、私のTwitterアカウントをフォローいただいたりすると嬉しいです。

私が所属している エクセルソフト の宣伝を少しさせてください。弊社は開発者向けの様々なソフトウェアを扱っています。おなじみの ReSharper (JetBrains)、 や Atlassian の JIRA, Confluence、Office/PDF ファイルを .NET/Java で操作するライブラリ Aspose(アスポーズ)Windows アプリ、Web ページ、iOS/Android アプリの UI テストができる TestComplete などお勧めです(^^) また、Visual Studio Professional/Enterprise with MSDN も販売してますし、日本で売っていない海外のソフトウェア、開発ツールなどを弊社経由で日本円で購入頂くことも可能です。ご興味あれば 弊社ページ を覗いてみてください。

以上です。

エクセルソフト | ダウンロード | 学習用リソース | JXUG リンクページ | ブログ購読