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

Xamarin 日本語情報

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 についてもっと知りたい。というような開発者の皆様の手助けになれば幸いです。

まだ Xamarin に関する日本語の情報は少ないのが現状ですので、まず手始めにどのような情報を追えばよいのかを纏めておきます。

 

やっと Xamarin.Forms のプロジェクトテンプレートがまともになりました。こちらのエントリー をお読みください。

 

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

Visual Studio Code でサクッと C# のコンソールアプリをデバッグしよう - Windows 編

Visual Studio Code Windows

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

macOS での Visual Studio Code の使い方を調べたので、Windows も調べました。Mac でのやり方は以下です。

ytabuchi.hatenablog.com

2017/2/24 時点の情報です。

環境構築/Hello World

code.visualstudio.com

Visual Studio Code のインストーラーをダウンロードしてインストールしましょう。

インストールの最後で「PATHへの追加」と「ディレクトコンテキストメニューに追加」にチェックをしておくと便利です。

f:id:ytabuchi:20170224140446p:plain:w450

起動したら拡張機能を入れておきましょう。今回は C# のコンソールアプリが目的なので、C# は最低入れておきます。

f:id:ytabuchi:20170224141302p:plain:w600

後は .NET Core のサイト を見ながら .NET Core をインストールしていきます。

今回は Visual Studio Code 用なので、「Select your environment」が「Command line / other」になっていることを確認してください。

.NET Core SDK をインストールします。

f:id:ytabuchi:20170224141727p:plain:w600

そのままドキュメントの通りにプロジェクトフォルダを作成してプロジェクトを作ってみます。

mkdir NetCoreSample
cd NetCoreSample
dotnet new

.NET Core 1.1 RC4(?)で dotnet new の後にプロジェクトテンプレートを選択できるようになるみたいです。Yeoman みたいな感じ。楽しみですね!

dotnet restore
dotnet run

f:id:ytabuchi:20170224142409p:plain:w600

いい感じですね。

Visual Studio Code インストール時に PATH を通しているので、

code .

でそのフォルダを開いた状態で Visual Studio Code が起動します。

Mac 編で書くのを忘れましたが、初回起動時に必要なデバッガーなどをダウンロードしてくれます。

Updating C# dependencies...
Platform: win32, x86_64 (win7-x64)

Downloading package 'OmniSharp (.NET 4.6 / x64)' (19343 KB) .................... Done!
Downloading package '.NET Core Debugger (Windows / x64)' (39827 KB) .................... Done!

Installing package 'OmniSharp (.NET 4.6 / x64)'
Installing package '.NET Core Debugger (Windows / x64)'

Finished

無事起動して、(恐らく)project.json があるフォルダを開くと、「Required assets to build nad debug …」という、ビルド、デバッグに必要な launch.jsonTask.json を自動で作りますか?と聞いてくれるので「Yes」をクリックして作ります。

f:id:ytabuchi:20170224144336p:plain:w600

以下の launch.json が作られます。program の対象 dll が現在のプロジェクトに合わせて自動で設定されます。Windows なので \ がエスケープされていますね。

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": ".NET Core Launch (console)",
            "type": "coreclr",
            "request": "launch",
            "preLaunchTask": "build",
            "program": "${workspaceRoot}\\bin\\Debug\\netcoreapp1.1\\NetCoreSample.dll",
            "args": [],
            "cwd": "${workspaceRoot}",
            "externalConsole": false,
            "stopAtEntry": false,
            "internalConsoleOptions": "openOnSessionStart"
        },
        {
            "name": ".NET Core Attach",
            "type": "coreclr",
            "request": "attach",
            "processId": "${command.pickProcess}"
        }
    ]
}

以下の Task.json も作られます。インストールした .NET Core のバージョンのコンパイラでビルドされる設定です(のはず)。複数バージョンをインストールしている方は、dotnet --version コマンドで .NET Core のバージョンや PATH などを確認しておきましょう。

{
    "version": "0.1.0",
    "command": "dotnet",
    "isShellCommand": true,
    "args": [],
    "tasks": [
        {
            "taskName": "build",
            "args": [
                "${workspaceRoot}\\project.json"
            ],
            "isBuildCommand": true,
            "problemMatcher": "$msCompile"
        }
    ]
}

ここまでできたら、後は F5 でデバッグするだけ!

f:id:ytabuchi:20170224143158p:plain:w600

もっと開発!

NuGet Package を使いたい場合は、拡張機能で nuget で検索して「.NET Core Project Manager (NuGet)」をインストールします。

f:id:ytabuchi:20170224143214p:plain:w600

Command Palette(Ctrl+Shift+P)で「Nuget」と打つとパッケージ検索ができるようになっています。

f:id:ytabuchi:20170224143403p:plain:w600

例えば「json」と打つと Newthonsoft.Json をインストールできます。その後「Restore」を求められるので Restore します。

後は普通にゴリゴリコードを書いて、デバッグしてみましょう。

f:id:ytabuchi:20170224144051p:plain:w600

やったね!!

Visual Studio は重いので、軽量な Visual Studio Code でコンソールアプリのデバッグができるのは嬉しいですね。

Mac 編はこちら

ytabuchi.hatenablog.com

以上です。

直接は関係ないんですが…w Xamarin 気になった方は

是非 ダウンロード して触ってみてください。Visual Studio 2015 をご利用の方は Update 3 にアップデートする際にカスタムインストールで Xamarin を追加しましょう。 学習用リソース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 も販売してますし、日本で売っていない海外のソフトウェア、開発ツールなどを弊社経由で日本円で購入頂くことも可能です。ご興味あれば 弊社ページ を覗いてみてください。

以上です。

Visual Studio Code でサクッと C# のコンソールアプリをデバッグしよう - Mac 編

Visual Studio Code Mac

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

久々に macOSMacBook Pro(少し古い「MacBook Pro (Retina, 13-inch, Late 2013)」ですが)に新規インストールしたので、2017年2月時点の Visual Studio Code でコンソールアプリをデバッグする方法をメモしておきます。現時点で .NET Core 1.1 を使うようですので、しばらく同じ方法で大丈夫かなと。Windows でのやり方は以下です。

ytabuchi.hatenablog.com

2017/2/24 時点の情報です。

環境構築/Hello World

code.visualstudio.com

Visual Studio Code のインストーラーをダウンロードしてインストールしましょう。

起動したら、Command Palette(⇧+⌘+P)で「shell」と打って PATH を設定しておきます。

f:id:ytabuchi:20170224094316p:plain:w600

拡張機能を入れておきましょう。今回は C# のコンソールアプリが目的なので、C# は最低入れておきます。

f:id:ytabuchi:20170224094425p:plain:w300

後は .NET Core のサイト を見ながら .NET Core をインストールしていきます。

Homebrew がインストールされていない場合は

$ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

でインストールします。そのまま、Homebrew で OpenSSL をインストールします。

$ brew update
$ brew install openssl
$ mkdir -p /usr/local/lib
$ ln -s /usr/local/opt/openssl/lib/libcrypto.1.0.0.dylib /usr/local/lib/
$ ln -s /usr/local/opt/openssl/lib/libssl.1.0.0.dylib /usr/local/lib/

.NET Core SDK をインストールします。

f:id:ytabuchi:20170224101017p:plain:w600

そのままドキュメントの通りにプロジェクトフォルダを作成してプロジェクトを作ってみます。

$ mkdir NetCoreSample
$ cd NetCoreSample
$ dotnet new

.NET Core 1.1 RC4(?)で dotnet new の後にプロジェクトテンプレートを選択できるようになるみたいです。Yeoman みたいな感じ。楽しみですね!

$ dotnet restore
$ dotnet run

Visual Studio Code インストール時に PATH を通しているので、

code .

でそのフォルダを開いた状態で Visual Studio Code が起動します。

(恐らく)project.json があるフォルダを開くと、「Required assets to build nad debug …」という、ビルド、デバッグに必要な launch.jsonTask.json を自動で作りますか?と聞いてくれるので「Yes」をクリックして作ります。

f:id:ytabuchi:20170224114731p:plain:w600

以下の launch.json が作られます。program の対象 dll が現在のプロジェクトに合わせて自動で設定されます。

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": ".NET Core Launch (console)",
            "type": "coreclr",
            "request": "launch",
            "preLaunchTask": "build",
            "program": "${workspaceRoot}/bin/Debug/netcoreapp1.1/NetCoreSample.dll",
            "args": [],
            "cwd": "${workspaceRoot}",
            "externalConsole": false,
            "stopAtEntry": false,
            "internalConsoleOptions": "openOnSessionStart"
        },
        {
            "name": ".NET Core Attach",
            "type": "coreclr",
            "request": "attach",
            "processId": "${command.pickProcess}"
        }
    ]
}

以下の Task.json も作られます。インストールした .NET Core のバージョンのコンパイラでビルドされる設定です(のはず)。複数バージョンをインストールしている方は、dotnet --version コマンドで .NET Core のバージョンや PATH などを確認しておきましょう。

{
    "version": "0.1.0",
    "command": "dotnet",
    "isShellCommand": true,
    "args": [],
    "tasks": [
        {
            "taskName": "build",
            "args": [
                "${workspaceRoot}/project.json"
            ],
            "isBuildCommand": true,
            "problemMatcher": "$msCompile"
        }
    ]
}

ここまでできたら、後は F5 でデバッグするだけ!

f:id:ytabuchi:20170224113134p:plain:w600

いい感じですね。

もっと開発!

NuGet Package を使いたい場合は、拡張機能で nuget で検索して「.NET Core Project Manager (NuGet)」をインストールします。

f:id:ytabuchi:20170224132222p:plain:w600

Command Palette(⇧+⌘+P)で「Nuget」と打つとパッケージ検索ができるようになっています。

f:id:ytabuchi:20170224133934p:plain:w600

例えば「json」と打つと Newthonsoft.Json をインストールできます。その後「Restore」を求められるので Restore します。

後は普通にゴリゴリコードを書いて、デバッグしてみましょう。

f:id:ytabuchi:20170224134459p:plain:w600

やったね!!

Xamarin Studio は通常では複数起動できないですし、それなりに重いと思うので、軽量な Visual Studio Code でコンソールアプリのデバッグができるのは嬉しいですね。

Windows 編は以下です。

ytabuchi.hatenablog.com

以上です。

直接は関係ないんですが…w Xamarin 気になった方は

是非 ダウンロード して触ってみてください。Visual Studio 2015 をご利用の方は Update 3 にアップデートする際にカスタムインストールで Xamarin を追加しましょう。 学習用リソース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 も販売してますし、日本で売っていない海外のソフトウェア、開発ツールなどを弊社経由で日本円で購入頂くことも可能です。ご興味あれば 弊社ページ を覗いてみてください。

以上です。

【小ネタ】Mac OS X でファイルパス/フォルダパスをクリップボードにコピーする

Mac

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

f:id:ytabuchi:20170222195948p:plain:w600

例えばこんな時、別のフォルダのパスをシュッとクリップボードに取得したいなと思っていました。

結論から言うと、右クリックした後で「option」ボタンを押すと、ファイルコピーの項目がパス名をコピーに変わります。そんなん分かるかい!!ww 対象のフォルダ、ファイルを選択し、「⌘+option+C」で一発でパスがコピーできるみたい。すごい。

f:id:ytabuchi:20170222195650p:plain:w600

f:id:ytabuchi:20170222195644p:plain:w600

見つける前に呟いたところ、「パスバー」なるものを教えてもらいました。これも便利そう。ありがとうございます!!

f:id:ytabuchi:20170222195629p:plain:w300

Finder のメニューから[表示>パスバーを表示]です。

f:id:ytabuchi:20170222201612p:plain:w600

こんなのが出てパスがわかるのでこれも便利ですね。

以上です。

Visual Studio/Xamarin Studio でコードスニペットを活用しよう

Xamarin Visual Studio Xamarin Studio

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

PropertyChanged 用のコードスニペットや BindableProperty 用のコードスニペットはあるとないとではかなり開発効率に差がありそうです。@ticktackmobile さんのトレーニング中に BindableProperty はコードスニペットで。というお話をもらい、PropertyChanged 用は作ってましたが BindableProperty 用は無かったなと思い、エントリーを書きました。一つ新発見もありましたので、感謝です。

今回は BindableProperty 用のスニペットを作ってみましょう。

Visual Studio の場合

<?xml version="1.0" encoding="utf-8"?>
<CodeSnippets xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
    <CodeSnippet Format="1.0.0">
        <Header>
            <Title>Bindable Property</Title>
            <Shortcut>binp</Shortcut>
            <Description>Code Snippet for Bindable Property</Description>
            <Author>Yoshito Tabuchi</Author>
            <SnippetTypes>
                <SnippetType>Expansion</SnippetType>
            </SnippetTypes>
        </Header>
        <Snippet>
            <Declarations>
                <Literal>
                    <ID>type</ID>
                    <ToolTip>property type</ToolTip>
                    <Default>double</Default>
                </Literal>
                <Literal>
                    <ID>property</ID>
                    <ToolTip>property name</ToolTip>
                    <Default>MyProperty</Default>
                </Literal>
                <Literal default="true" Editable="false">  
                    <ID>classname</ID>
                    <ToolTip>Class name</ToolTip>
                    <Function>ClassName()</Function>
                    <Default>ClassNamePlaceholder</Default>
                </Literal>
            </Declarations>
            <Code Language="csharp"><![CDATA[public static readonly BindableProperty $property$Property =
                  BindableProperty.Create(nameof($property$), typeof($type$), typeof($classname$), default($type$));

              public $type$ $property$
              {
                  get { return ($type$)GetValue($property$Property); }
                  set { SetValue($property$Property, value); }
              }
          ]]>
            </Code>
        </Snippet>
    </CodeSnippet>
</CodeSnippets>

Bindable Property の沢山ある引数のうち、必須項目を含む最初の4項目を用意しました。

上記ファイルを xxxx.snippet と任意の名前で Visual Studio 2015 フォルダ\Code Snippets\Visual C#\My Code Snippets フォルダに配置しましょう。

後は <Shortcut> に登録した短縮文字で呼び出すだけです。

f:id:ytabuchi:20170221205249p:plain:w600

こんな感じで2ヶ所入力すれば完成です。ポイントは、コード スニペットの関数 にあるように、ClassName() を使うと「挿入されたスニペットが格納されているクラスの名前を返します。」というところですね。

<Literal default="true" Editable="false">  
    <ID>classname</ID>
    <ToolTip>Class name</ToolTip>
    <Function>ClassName()</Function>
    <Default>ClassNamePlaceholder</Default>
</Literal>

の部分です。

Xamarin Studio の場合

f:id:ytabuchi:20170221205436p:plain:w600

Xamarin Studio はファイルではなく、設定で行います。設定を開き、[テキストエディター>コードテンプレート]の[追加]ボタンをクリックします。

f:id:ytabuchi:20170221211525p:plain:w600

上記のような感じで、[ショートカット]に任意の短縮文字、[グループ]は C#、[説明]に任意の説明、[Mime]に text/x-csharp を指定し、[拡張可能なテンプレート]にチェックを入れます。

[テンプレートテキスト]の部分は VS と同じで大丈夫です。

public static readonly BindableProperty $property$Property = 
    BindableProperty.Create(nameof($property$), typeof($type$), typeof($classname$), default($type$));

public $type$ $property$
{
    get { return ($type$)GetValue($property$Property); }
    set { SetValue($property$Property, value); }
}

右側のドロップダウンでテキスト内で指定したリテラルの仕様を決められます。クラス名を取ってくる Function が VS と異なり、GetCurrentClassName() となりますのでご注意ください。

f:id:ytabuchi:20170221211849p:plain:w300

後は呼び出すだけ。

f:id:ytabuchi:20170221211835p:plain:w600

便利ですね。どんどん使っていきましょう。

XAML 用のコードスニペットの記事は以下で以前書きましたので合わせてどうぞ

ytabuchi.hatenablog.com

Xamarin 気になった方は

是非 ダウンロード して触ってみてください。Visual Studio 2015 をご利用の方は Update 3 にアップデートする際にカスタムインストールで Xamarin を追加しましょう。 学習用リソース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 も販売してますし、日本で売っていない海外のソフトウェア、開発ツールなどを弊社経由で日本円で購入頂くことも可能です。ご興味あれば 弊社ページ を覗いてみてください。

以上です。