rksoftware

Visual Studio とか C# とかが好きです

JXUG Xamarin もくもく会 東京 2月 を開催しました。

■ JXUG Xamarin もくもく会 東京

JXUG Xamarin もくもく会 東京 2月 を開催しました。

Xamarin もくもく会 は もくもくしたり、情報交換したりする会です。

写真撮影を忘れましたが今月から新設備、いい感じの音楽を流す機器を導入しました。
いい感じでした。

今月は多くの方に参加いただきました。そろそろ会場の真の力を開放する時が来そうです。
(壁が開いて隣の部屋とつなげられる)
皆さん進捗を出されたようで、新設備の効果が出たかな? と思います。
参加者の皆様ありがとうございました。

不定期ではありますが、ぼちぼち開催していきますので、ご興味があれば是非参加してみてください。

秋葉原 C# もくもく会 #27 勉強会を開催しました。

■ C# もくもく会

C# もくもく会 #27 を開催しました。

C# もくもく会 は東京の秋葉原で毎週木曜日に開催している .NET 系の勉強会です。
もくもく自習を基本とし、分からないことを教えあったり情報共有したりしている会です。

最近お菓子を用意してみたりもしています。

定期開催していますので、お時間のある時に遊びに来ていただければと思います。
ちょっと詰まった時、ネット上で聞くのははずかしいなぁ、という課題のできた時などにも思い出していただけると嬉しいです。

■ 次回予定

次回は 2018/03/01 に開催予定です。

C# に関心のある方、是非遊びに来てください。

「Xamarin + Azure を使用したモバイルアプリ」ポスター

Visual Stuido Blog にて「Xamarin + Azure を使用したモバイルアプリ」ポスターが提供されています。

Xamarin モバイルアプリを開発する開発者にお勧めのクラウドサービスが一目で分かるポスターの様です。
かっこいいですね。
是非皆さんのおうちのお茶の間や寝室の天井などに貼って毎日眺めてください。

城東.NET #17 勉強会で話をしてきました

先日開催した

にて Xamarin.iOS で ARKit というタイトルで話をしました。

当たり前と言えば当たり前なのですが、Xamarin.iOS で ARKit が使えましたという話と、動作しているデモを共有しました。

■ 次回予定

来月は 03月21日(水)に開催の予定です。

.NET に関心のある方、是非遊びに来てください。

城東.NET #17 勉強会を開催しました。

■ 城東.NET

城東.NET #17 を開催しました。

城東.NET は東京の最近は秋葉原で毎月第3水曜日に開催している .NET 系の勉強会です。
発表を中心として、発表でなくとも最近やった事や新しい情報などを参加者で共有している会です。

■ 次回予定

来月は 03月21日(水)に開催の予定です。

.NET に関心のある方、是非遊びに来てください。

Visual Studio 15.5.7 がリリースされました。

15.5.7 がリリースされました。

最新のリリースは基本的に英語版だけで公開されるので英語版を参照するのがおすすめです。
日本語版は、英語版 というリンクで英語版に誘導されるだけです。

どうしても日本語版にリダイレクトされてしまう場合は、アドレスの ja-jpen-us に直接書き換えてください。

■ 更新内容

Team Explorer support for TLSv1.2

  • Team Explorer が TLSv1.2 をサポートされました。
  • TLSv1 や TLSv1.1 をサポートしないサービスにも接続できるようになりました。

.NET Core 2.1

  • .NET Core 2.1(以降)の SDK をインストールすると ASP.NET Core 2.0 Web アプリケーションを作成するオプションが表示されなくなる不具合が解消されました。

とのことです。
必要なアップデートだと思います。早めにアップデートしましょう。

■ 更新方法

私はまだ更新できていませんが、次の手順で更新できるはずです。
Visual Studio の更新はメニューの ツール > ツールと機能を取得 で開くインストーラーから行えます。

Xamarin iOS で ARKit を使う最初のシンプルなサンプルの説明

先日 Xamarin.iOS で ARKit を試し始めた話を書きました。 試し中のコード スクリーンショット

上記の記事では試し始めましたという話だけだったので、今日はコードを見てみたいと思います。

■ コード

/// <summary>
/// 空間にモデルを置くだけのシンプルなサンプル
/// </summary>
public class SimpleCode : CodeBase
{
    /// <summary>
    /// ARSCNView の参照を取得または設定します
    /// </summary>
    /// <value>The arscn view.</value>
    ARSCNView _arscnView { get; set; }

    /// <summary>
    /// 初期化処理を行います
    /// </summary>
    public override void ViewDidLoad()
    {
        // ARSCNView のインスタンスを生成し画面にセット、レイアウトを指定します
        _arscnView = new ARSCNView();
        View.AddSubview(_arscnView);
        _arscnView.TranslatesAutoresizingMaskIntoConstraints = false;
        _arscnView.LeftAnchor.ConstraintEqualTo(View.LeftAnchor).Active = true;
        _arscnView.TopAnchor.ConstraintEqualTo(View.TopAnchor).Active = true;
        _arscnView.RightAnchor.ConstraintEqualTo(View.RightAnchor).Active = true;
        _arscnView.BottomAnchor.ConstraintEqualTo(View.BottomAnchor).Active = true;

        // ARSCNView のシーンをモデルデータで作成します
        _arscnView.Scene = SCNScene.FromFile("art.scnassets/ship.scn");
    }

    /// <summary>
    /// セッションを開始します
    /// </summary>
    /// <param name="animated">If set to <c>true</c> animated.</param>
    public override void ViewWillAppear(bool animated)
    {
        _arscnView.Session.Run(new ARWorldTrackingConfiguration(), new ARSessionRunOptions());
    }

    /// <summary>
    /// セッションを停止します
    /// </summary>
    /// <param name="animated">If set to <c>true</c> animated.</param>
    public override void ViewWillDisappear(bool animated)
    {
        _arscnView.Session.Pause();
    }
}

ViewController のコードではないですが、ViewController のそれぞれのメソッドから呼ばれるメソッドを持ったクラスです。
コードを把握するだけなら、ViewController に書かれたコードと思って読んで大丈夫です。
View プロパティも、ViewController の View をセットしています。

要点だけを抽出

上記コードではライフサイクルイベントやレイアウトのコードが結構な割合で記述されています。AR 部分を理解するには邪魔になるので要点部分だけを抜き出してみます。

    public override void ViewDidLoad()
    {
        // ARSCNView のインスタンスを生成し画面にセットします
        _arscnView = new ARSCNView();
        View.AddSubview(_arscnView);

        // ARSCNView のシーンをモデルデータで作成します
        _arscnView.Scene = SCNScene.FromFile("art.scnassets/ship.scn");
    }

要点はこれでだけです。

■ コード解説

まず、AR のための View の ARSCNView を作成し画面にセットします。
この View を置いただけでカメラの映像が表示され AR が開始されるようです。簡単ですね。

        _arscnView = new ARSCNView();
        View.AddSubview(_arscnView);

次に、作成した ARSCNViewScene プロパティにモデルデータから作成した SCNScene をセットします。
モデルのデータは iOS のサンプルでおなじみの宇宙船になっています。FromFile メソッドの引数でモデルのファイルを指定します。

        // ARSCNView のシーンをモデルデータで作成します
        _arscnView.Scene = SCNScene.FromFile("art.scnassets/ship.scn");

これだけで、宇宙船が空間に存在する AR 表示ができました。

最初の一歩が簡単なのはとてもありがたいですね。