Visual Studio 15.5 がリリースされたと思っていたら、すぐにバグ修正を中心とした 15.5.1 がリリースされていますね。
リリースノート
主な変更
- Xamarin.Forms のテンプレートの修正
- Git のブランチを切り替えるとインテリセンスが効かなくなる不具合の修正
- Xamarin の XCode 9.2 のサポート
Visual Studio 15.5 がリリースされたと思っていたら、すぐにバグ修正を中心とした 15.5.1 がリリースされていますね。
こんにちは。 Visual Studio 2017 の マイナーバージョン 5 となる 15.5 がリリースされましたね。 マイナーリリースとはいえ、新機能が続々と搭載されています。
Visual Studio 15.5 のリリースノートはこちらです。 例のごとく日本語版のリリースノートはまだ提供されていません。
C# の最新バージョンである C# 7.2 が正式リリースされましたね。
Span
Remoted iOS Simulator とは、 Windows から Windows 機と接続している Mac 機で動く iOS Simulator を見ることができるサービスです。 今までは、 Visual Studio のお高いバージョンでしか利用することができませんでしたが、無償化されました。 無償化されたことにより Visual Studio Community Edition を利用しているユーザーでも 利用することができるようになりました。
.net な世界では 今まで PCL (Portable Class Lubrary)と呼ばれる形式でライブラリを作成するのが一般的でした。これからの .net な世界では .net standard という形式でライブラリを作成するのが一般的になっていっています。 今回、 Xamarin.Forms のプロジェクトテンプレートも .net standard がデフォルトになってきました。
詳しい情報については、 JXUG の田淵さんのブログに詳しく書いてあります。
「Xamarin.Forms で Xaml を使いUIを書いているときにプレビュー機能がない」問題に対する Xamarin チームの答えかなと思います。 具体的には、以下の動画にあるように Live Player な画面にXamlのプレビューを表示するという形のようです。
https://blog.xamarin.com/wp-content/uploads/2017/11/LivePlayer.mp4?autoplay=false
現状は Android のみのサポートみたいですね。 メリットとしては、ビルド・デプロイのプロセスを踏まずに Xaml のUIを確認することができる点ですね。 開いている .Xaml ファイルを変えるとプレビューされる画面も変更になるようです。
Xamarin は各プラットフォームOSの最新バージョンをサポートしていってますね!
Chrome な Web View を手っ取り早く利用したくて使いました。 それ以外にも、起動が早かったりと様々な利点があります、それを利用できたらいいなと。
単純なコードを呼び出しているだけなのに、 基本的な Web ブラウザ的な機能がそろっています。ユーザーからしても普段利用している Google Chrome に似ているブラウザっぽい画面なため、ユーザーの体験の向上にもつながります。
Google Chrome Custom Tabs を利用するための Support Library をインストールする このパッケージは、 Xamarin 社(正確にはMicrosoft)が公式で Android 向けに Google の出している Support Library をXamarinから使えるようにしたものです。
Xamarin.Android.Support.CustomTabs って名前のパッケージです。
var builder = new CustomTabsIntent.Builder(); var chromeIntent = builder.Build(); chromeIntent.LaunchUrl(this, Uri.Parse("http://kuxumarin.hatenablog.com/")); StartActivity(chromeIntent.Intent);
こんにちは。
Xamarin の Advent Calendar に書いてますが、 App Center について書いていきます。 GA(正式リリース)前は、 Mobile Center という名前だったのでそちらのほうがなじみ深い人が多いかもしれません。
細かく網羅的な情報は田淵さんが書いている(と思う)ので自分は、 Tips 的なものを列挙していきます。 自分が使っていてここが惜しい!とかここは最高!みたいな部分について書いていきます。
実際に使ってどうだったのかは明日のやまちゅうさんの記事を楽しみにしてください。
[http://kuxumarin.hatenablog.com/entry/2017/11/16/%E3%80%8C%E9%80%9F%E5%A0%B1%E3%80%8DVisual_Studio_App_Center%28%E6%97%A7Mobile_Center%29%E3%81%8CGA%21:embed:cite]
上の記事で書ききれなかったことを書いていきます。
開発をしていて、いくつもの端末で動作チェックしたいなーと思うことがあると思います。 そんな時は、 Mobile Center の Distribute 機能を使うと便利です。
ただ単体で使うのもよいと思いますが、御覧のように Build に成功したら自動配布してくれるオプションがついます! 配布するグループも選べるので開発チーム内へはこの機能を使って配布すると便利です!
Release Branch へ送る前の Master Branch に存在しているアプリを一般公開前にチェックしたいということがあると思います。 Distribute 自動配布機能を使うと確かにお気軽に配布することはできます。しかし、「どんな機能が追加されたのか」とかを書きたいですよね?(新しい
MS MVP のあめいさんが質問していますが、 月に 240 分のビルド時間は モバイルアプリのビルドをするための時間としては少ないです。 ので、プッシュ事にビルドする機能をオフにするなど運用する際に調整すればある程度回避することができます。
protected override void OnCreate(Bundle savedInstanceState) { // 良さげな Permission 設定はしてくださいませ // Access_Wifi_State とか base.OnCreate(savedInstanceState); // Set our view from the "main" layout resource SetContentView(Resource.Layout.Main); var connectButton = FindViewById<Button>(Resource.Id.ConnectButton); var wifiStatusText = FindViewById<TextView>(Resource.Id.WifiStatusText); connectButton.Click += (sender, args) => { using (var wifiManager = GetSystemService(Context.WifiService) as WifiManager) { wifiManager.StartScan(); wifiStatusText.Text = "Wifi の接続状況\n"; wifiManager.ScanResults.Where(result => !string.IsNullOrEmpty(result.Ssid)).Select(result => $"SSID: {result.Ssid} 接続レベル: {result.Level} \n").ToList().ForEach(s => wifiStatusText.Text += s); } }; }
protected override void OnCreate(Bundle savedInstanceState) { // 良さげな Permission 設定はしてくださいませ // Access_Wifi_State とか base.OnCreate(savedInstanceState); // Set our view from the "main" layout resource SetContentView(Resource.Layout.Main); var connectButton = FindViewById<Button>(Resource.Id.ConnectButton); var wifiStatusText = FindViewById<TextView>(Resource.Id.WifiStatusText); connectButton.Click += (sender, args) => { var TartgetSSID = "daido-o"; WifiConfiguration tartgetSpot; using (var wifiManager = GetSystemService(WifiService) as WifiManager) { if (wifiManager != null && !wifiManager.IsWifiEnabled) return; tartgetSpot = wifiManager?.ConfiguredNetworks.First(configuration => configuration.Ssid.Replace("\"","") == TartgetSSID); } wifiStatusText.Text = $"接続中: {tartgetSpot?.Ssid}"; }; }
Connect(); 2017 で公開されたモバイル関係の情報についてまとめています。 Azure 関係については、 ブチザッキ に詳しく書いてあるはずなのでご覧くださいませ。
Visual Studio App Center については、別途詳細を書いた記事を用意しました。
簡潔にまとめると
#VSAppCenter is the next generation of #Xamarin Test Cloud. Learn more: https://t.co/mjIAHM40mM pic.twitter.com/xQR77mRQiA
— Xamarin (@xamarinhq) 2017年11月15日
Cognitive Services の Custom Vision にて作成して学習モデルを ML Kit に読み込ませて利用できるというアナウンスです。 機械学習などのモデルを作成する部分を Custom Vision にお任せすることにより、開発者は 機械学習の力をより手軽にアプリケーションに組み込むことができるといったところでしょうか。
Custom Vision Service にてすでに利用できるようになっています。 利用するためには Domain を Compact に選択してくださいね。
詳しいやり方等については Github の公式ドキュメントを参照くださいませ
iOS 11, Xcode 9 に対応したバージョンです。 今のMSらしく3Dビューに対応していますね。 詳細は公式サイトをご覧ください。
Workbooks & Inspector 1.4 release notes - Xamarin | Microsoft Docs
ソースコードは Github にホスティングされています。
Miguel de Icaza on Twitter: "We have open sourced Workbooks: https://t.co/FcdQLPK1Vu… "
Xamarin Live Player アプリの上で Xamarin 製アプリを動かして気軽に動作チェックできるというものです。 この機能があることにより Xamarin.Forms でアプリを作成するときには XAML という XML の拡張言語を利用するのですが、より反復してデザインをしていくことができます。
Windows 単体で開発しているのに iPhone の上で動かすことができるのはなんか不思議な気持ちになりますよね !!
※よく誤解されるのですが、 iOS アプリを Mac 無しでストアへ公開できるようになるというものではありません 詳しい仕組みについては以下のブログ記事を参照くださいませ
しかし、James さんのTwitterを見ると どうやら Android Emulator の上で Xamarin Live Player を動かして Xamarin.Forms Previewr の進化版のような雰囲気を漂わせていますね。 個人的には、 Visual Studio 内にわざわざ プレビュー機能を実装するのではなくエミュレーターの上にプレビューするための基盤を実装したのは面白いなと感じています。
NEW: Preview XAML live as you type directly in an Android emulator with the Xamarin Live Player in Visual Studio 2017 version 15.5. #MSFTConnect pic.twitter.com/aY9O9fzygC
— Pierce Boggan (@pierceboggan) 2017年11月15日
Atsushi Eno (@atsushieno) | Twitter さんが2017/8 に名古屋で熱く語ってくれた
Redirecting to https://docs.microsoft.com/en-us/xamarin/tools/dotnet-embedding/index がついにでましたね!
この技術は、 iOS/Android の Swift/Java なコードから .NET/C# なコード (正確には.dll) を呼び出せるようにしてくれる技術です。 この技術があることによりネイティブアプリから Xamarin への移行が楽になります。ちょっとずつ .NET なコードに置き換えてくみたいなのができるようになります。
そのお話が入ってる同人誌が売ってるのでぜひ!
遅ればせながら?、技術書典3の新刊Extensive Xamarinをboothでオンライン販売開始しました〜 https://t.co/QurTsxWT8g
— Atsushi Eno (@atsushieno) 2017年11月8日
Xaml を UWP, Xamarin.Forms で共通化しようという取り組みの Xaml Standard の Xamarin.Forms 向けバージョンのプレビューが公開されています。
使いたい人は試せばいいと思います。
https://developer.xamarin.com/guides/xamarin-forms/xaml/standard/
Wantedly のプロフィールを公開しています! いろいろお願いします!
今まで Mobile Center と呼ばれていたものがGAしましたね。 プレビュー期間から実際に使用していたサービス?なので心の底から嬉しいです。ただ、有料化(一部サービスは無料のまま利用できます)してしますが、、、
使い方としては名前の通り モバイルアプリの開発を支援してくれるものです。 対象な環境としては iOS, Android, Windows の native, Xamarin, React native な環境で開発したアプリケーションです。 具体的には、CI/CD, テストユーザーへの配布、アプリ内イベントなどの解析、クラッシュログ収集、プッシュ通知などが行えるサービスです。
SDK はこちらです。地味に Xamarin, UWP 向けSDK の名前が for Xamarin, UWP から for .NET に代わっていることからもUWPに対する考え方が見えてきますね。
https://github.com/Microsoft/AppCenter-SDK-DotNet
わかりやすくするために表にしてみました。 テスト機能はやはり有料ですね。 ビルド機能はVSTSと同じ時間だけ無料でビルドできるようですね。
無制限のアプリ、無制限の組織、無制限のチーム で利用できます。
サービス名 | 何をするものか | 値段 |
---|---|---|
ビルド | CIしてくれる | ビルドパイプライン1本は無料。各ビルドごと30分までの時間制限あり |
Distribute | アプリをテスタに配布できる | 無料 |
テスト | 様々なデバイスでUIテストを実行してくれる | 有料 |
クラッシュ | アプリのクラッシュ情報を集めてくれる | 無料 |
アナリティクス | アプリ内イベントを集めて解析できる。 Application insight と連携できるよ! | 無料 |
プッシュ | アプリにプッシュ通知を飛ばすことができる | 5セグメントまで無料 |
私もこの県に関してはセグメントの方じゃないかなぁと思ってます.ドキュメントを眺めてるとFirebaseを使ってさらにカスタマイズしようみたいななっていたものがあったので,Firebaseの仕様にあわせて人数,というのじゃない気がしますね.
— 留まり奈緒 (@y_chu5) 2017年11月15日
Twitterより教えていただきました
詳しくはこちらをごらんくださいませ
Wantedly のプロフィールを公開しています! いろいろお願いします!
Visual Studio 15.4 とは、 Visual Studio 2017 の マイナーバージョン4 みたいなやつです。
Visual Studio の新バージョンが出てくるたびになんだかんだ言って再インストールしている くぅ です。
私のPCは 256GB しか積んでいないので(新しいパソコンほしぃ...) Xamarin な環境を セットアップするときは Android エミュレーターをインストールしないようにし、容量を節約して使っていました
下記の記事にあるように皆さんもそうしているようです。
いつも通り Google Android エミュレーター のチェックを外そうとしていました。
外せれない...
現状できる対策は以下ぐらいかなと思います。
フィードバックですが、 Xamarin 公式 Forum の 15.4 のスレッドをちらっと見た感じでは問題にされてないっぽい....?
Current Release: 15.4 Feature Release — Xamarin Community Forums
その後xamarinだけ選択できないん?
— 黒澤㌠🥐/🐺 (@kurosawa0626) 2017年10月30日
.NET によるモバイル開発 で一括で入れなくても、個別に必要なコンポーネントを選択していけばいけるという情報をいただきました。 実際にやってみてその方法で行けました!情報ありがとうございます!
Xamarin.Android で Wifi との接続状況を取得してあれこれしたいって場面があると思います。(Wifi と確実に接続してから通信をしなければいけない状況など....
Android では幾つかの方法を利用することで Android 端末の Wifi との接続状況を取得することができます。
今回は、2種類の詳しさで WIfi との接続情報を取得する方法について書いていきます。(必要以上に詳しい情報が必要な場面とそうでない場面とであるからね!
得られる結果は以下のページにリストアップされています。
https://developer.xamarin.com/api/type/Android.Net.NetworkInfo+State/
// Connectivity Mange を取得するプロパティを適当に生やす private ConnectivityManager ConnectivityManager => (ConnectivityManager)GetSystemService(ConnectivityService); // 接続状況を表示するための Label を取得 var SimpleLabel = FindViewById<TextView>(Resource.Id.SimpleNetworkLabel); // アクティブになっているネットワークを取得 var SimpleWifiState = ConnectivityManager.ActiveNetworkInfo; // 今回は、 Wifi 以外の場合は興味ないので返しておく if (SimpleWifiState.Type != ConnectivityType.Wifi) return; // 結果を見やすくするためにテキスト化して表示 SimpleLabel.Text = SimpleWifiState.GetState().ToString();
得られる結果は以下のページにリストアップされています。
SupplicantState Class (Android.Net.Wifi) | Microsoft Docs
// WifiManger を利用して取得 private WifiManager WifiManager => (WifiManager)GetSystemService(WifiService); // 接続状況を表示するための Label を取得 var detailLabel = FindViewById<TextView>(Resource.Id.DetailNetWorkStateLabel); // 結果を見やすくするためにテキスト化して表示 detailLabel.Text = WifiManager.ConnectionInfo.SupplicantState.Name();