なかしょの技術日誌

業務では非MS系のものばかりですが、ここではMS系の技術やサービスを中心に書いていきたいと思います。

リモートペアプロのための製品・サービス

みなさんリモートペアプロしていますか。 COVID-19の影響で在宅勤務になっている人が多いと思います。 今まで対面でペアプロしていたのにリモートになって試行錯誤しているのではないでしょうか。

本記事ではリモートペアプロのための製品・サービスを紹介したいと思います。

各製品・サービスについての深堀はしません。

IDEやエディタのプラグイン

Visual Studio LiveShare

visualstudio.microsoft.com

Visual StudioVSCodeに対応。

無料。

対応言語も幅広い。

JetBrains純正のリモートペアプロツール(名称不明)

Collaborative development : IDEABKL-708

JetBrainsが開発しているJetBrains製IDE向けのプラグイン

2020.2がリリースされたタイミングでEarly Access Previewが発表される模様。

Teletype for Atom

teletype.atom.io

Atomでリモートペアプロするためのツール。

無料。

motepair

atom.io

Atomでリモートペアプロするためのツール。

無料。

Remote Collab for SublimeText

teamremote.github.io

SublimeTextでリモートペアプロするためのツール。

無料。

SAROS

www.saros-project.org

オープンソースのリモートペアプロツール。

Eclipse、JetBrains製IDEに対応。

XMPPで通信するので、そのためのサーバを立てる必要がある。

CodeTogether

www.codetogether.com

Eclipse、JetBrains製IDEVSCodeに対応。

無料プランあり。 Covid-19の状況をふまえて終了期間未定でProも無料らしい。

CodeStream

plugins.jetbrains.com

VSCodeVisual Studio、JetBrains製IDEAtomに対応。

無料プランは30日間限定。

TeamHub

teamhub.dev

VSCode、JetBrains製IDEに対応。

価格のことは書かれておらず、Early Access版のみのようなので、 現在は無料で使えそう。

Webで共有するサービス

Visual Studio Codespaces

visualstudio.microsoft.com

Visual Studio Online。

LiveShareが利用可能。

GitHub Codespaces

github.com

Visual Studio Codespacesのようなもの。

repl.it

repl.it

無料プランあり。

Gitpod

www.gitpod.io

VSCode CloneでVSCode Extensionが使えるらしい。

無料プランあり。

AWS Cloud9

aws.amazon.com

AWSクラウドベースIDEサービス。

EC2のコンピューティング とストレージのリソース分の料金が発生。

CodeSandbox

codesandbox.io

Classroom Modeという授業をやるように適したモードがあるらしい。

無料プランあり

Codeanywhere

codeanywhere.com

有料プランのみ

CodePen

codepen.io

無料プランあり

画面共有サービス

画面共有サービスはたくさんありすぎるのでペアプログラミングでの使用をうたっているツールを選びました。

TUPLE

tuple.app

USE Together

www.use-together.com

Screen.so

screen.so

TeamViewer

www.teamviewer.com

ひとまずは以上。 気が向いたら深堀します。

App Center Pushの廃止に伴い、Notification Hubs SDKがリニューアル

以前のBlogで以下の内容を書きました。

nakasho-dev.hatenablog.jp

このmBaaS機能のリタイアによって、App Centerの初期のころからあるPush機能も廃止となりました。
そして、5月15日に以下の発表がありました。

devblogs.microsoft.com

廃止されたPush機能を使っている開発者がAzure Notification Hubsへ移行しやすいように、App Center Pushでのフィードバックを踏まえた新しいAzure Notification Hubs SDKが発表されました。

github.com

github.com

Azure Notification Hubs SDK の主な機能

以前のSDKを知らないのでMSの記事にあるものをそのまま紹介します。

バイス登録

アプリ開発でDeviceTokenを保存する方法って面倒ですよね。SDK側でPushの有効/無効を見て、Notification Hubsへデバイスを自動登録してくれるようです。

タグによる通知のターゲット設定

App Center Pushではオーディエンスという機能を使用して、どういう属性のユーザにPush通知するかを決定していました。
Notification Hubsではタグを使用して同様の機能を実現できます。また、タグ式を使用することで複数のタグを組み合わせた複雑な条件でリアルタイムのターゲティングが可能となるようです。

インストール情報のタグ

カスタムタグをデバイスのインストールに追加することで、アプリ/OSのバージョン、言語、国、デバイスモデルなどによって定義したユーザへ通知できます。

ユーザのタグ

App Center AuthでカスタムのユーザIDをデバイスに紐づけることができました。
新しいSDKを使用することで、カスタムのUserIDプロパティタグを設定できます。
例えばAzure Active Directory B2Cから受け取ったアカウントIDを紐づけるなんてことができると思います。

アラート/サイレント通知

SDKを使用してリスナーを設定するとサイレント通知を受け取ったときやアラートをユーザがクリックしたときに通知を受け取れるようになります。

オンライン/オフライン同期

バックグラウンドで同期を管理する機能が、デバイスがオフラインの時に全てインストール情報の変更が追跡されて、ネットワークが再接続されると、それらがサービスに同期されることを保証するそうです。
オフライン時に変更した設定により、無効となったタグの通知は来ないってことかな?

プッシュの有効化/無効化

SDKの機能を使用してアプリケーション側からPushを有効、または、無効にできます。 ここでいう無効というのはプッシュトークンがリフレッシュされないことであり、元のトークンの有効期限が切れるまではプッシュが受信されます。

App Center Pushからのマイグレーション

以下のサイトで説明しています。

docs.microsoft.com




なんかサンプルアプリを試してみたいなぁ...

PlayFab Meetup#3 で「すごろくゲームでPlayFabの活用を検討」というLTをしました

2020年4月25日に開催されたPlayFab Meetup#3 で「すごろくゲームでPlayFabの活用を検討」というLTをしました。

jpfug.connpass.com

発表した資料はこちらです。

www.slideshare.net

初のオンライン勉強会でのLTでした

以下のようなことを話しました。

アジャイルな開発をしよう

ソーシャルゲーム業界は競争が激しく、開発サイクルを速く、変化する顧客のニーズにも対応していかないと他者に負けてしまいますよね。
でも、ただ早く変化に強いだけだと自社の強みが出せません。なのでValue Propositionを大事にしましょう、と話しました。

ノンデベロッパーでもPlayFabを検証できるPostmanSDK

私が所属するProduct チームでは、Productが利用する外部のAPIをProduct ManagerとProduct DesignerがPostmanを使ってどのようなデータが取得できるか等を確認し、どうProductに取り込むかを検討します。
PlayFabはゲーム開発を強力に支援するBaaSですが、システムの仕様をPlayFabに合わせることで生産性が向上します。開発の自由度を高くしてしまうと、PlayFabで用意されていない機能をAzureFunctions等で独自実装する必要があり工数や運用費用も上がります。
実際にゲームの仕様を決定するProduct ManagerとProduct DesignerがPlayFabの仕様を理解するのにはPostmanSDKは有益です。
PostmanSDK経由で登録したデータを管理画面を見て確認したり、管理画面から登録した内容をPostmanSDK経由で確認したりすることで、PlayFabの仕様について理解を深めることができます。

すごろくゲームを作るとしたらPlayFabのどの機能が活用できるか

例として、ゲームの仕様を考えた後に、どのようにPlayFabを活用できるかを検討してみました。実際に作って検証してみたわけではないので粗々ですが、どのようにAPIを調査していけば良いかは掴んでもらえるかな、と思います。

今後もPlayFabの情報を発信していきたいと思います。

Visual Studio App Center の MBaaS機能がリタイアとなりました。

起きたらびっくり

本日、朝起きて出社する準備中に以下のツイートを見てびっくりしました。

思わずコメント付きリツイートしてしまいました。

なんでびっくりしたか

Visual Studio App Center のmBaaS機能は、発表とほぼ同時に仕様を調査したり、勉強会で登壇したりしていたので、けっこう期待していました。

App Center Blogの記事はこちら devblogs.microsoft.com

自分が発表した資料はこちら

www.slideshare.net

www.slideshare.net

www.slideshare.net

www.slideshare.net

www.slideshare.net

なんで期待していたのか

mBaaSがFirebase1強と思われる中で、MSがmBaaSに取り組んでいくと発表してくれたのはとても頼もしかった。対抗するサービスがいくつかないとmBaaS分野の成長が鈍化するかもしれませんし。
AAD経験者にとって、Firebase Authenticationを使用するよりもApp Center Authを使ってAADB2Cでユーザ管理できるのはとても便利だし、AADと連携できるサービスと相性が良いと思った。
また、GDPRだとかCCPAだとかが騒がれている昨今、扱うサービスすべてでアカウントに紐づく情報を削除できる必要があります。AADに対応しているサービスは多く、Azureやそれ以外の色々なサービスを全てAADアカウントと紐づけていたら、個人情報を削除する際もユーザの情報が追跡できると考えています。
もちろんApp Center Authがなくても実現できますが、SDKがあることで敷居が低くなることは確かです。
特にWindows Mobileの開発を停止したMicrosoftにとって、AndroidiOSのモバイル開発者がAzureを選ぶ理由として敷居を低くするのは重要だと思っていました。
また、App Centerはデスクトップアプリにも対応しており、mBaaSに留まらないBaaSとして成長を見せてくれるものだと思っていました。

反省点

リタイア宣言のブログで書かれていますが、App Centerチームはユーザのフィードバックから学習し、今回の結論を出した、とのこと。
私はApp CenterのmBaaSについて勉強会で登壇等はしていたけどApp Centerチームへのフィードバックはおこなっていなかった。やはり自分が続けて欲しいサービスはしっかりフィードバックもおこない開発継続となるようにしていかないとと改めて思いました。

CI/CD Test Night#5 で「Azure PipelinesをサーバサイドのCI/CDに活用」というLTをしました

2019年10月2日に開催されたCI/CD Test Night#5 で「Azure PipelinesをサーバサイドのCI/CDに活用」というLTをしました。

testnight.connpass.com

発表した資料はこちらです。

www.slideshare.net

いつもモバイル関連なのでモバイルではないことをしゃべろうとしてサーバサイドの話をしました。

以下のようなことを話しました。

  • Azure Pipelines には様々なビルドテンプレートがある
  • Azure Pipelines Agent使うとオンプレミス環境でのデプロイも簡単になる
  • ビルドパイプラインとリリースパイプラインは明確に分けよう
  • リリースパイプラインには特定ユーザによる承認の仕組みがある
  • Azure Artifactでプライベートリポジトリを作ろう

今後もCI/CDについて色々紹介できればと思います。

.NETラボ勉強会2019年9月にて「GitHub Actionsの未来をAzure Pipelinesの機能から探る」というLTをしました。

2019年9月28日に開催された.NETラボ勉強会2019年9月にてLTしました。

dotnetlab.connpass.com

発表した資料はこちらです。

www.slideshare.net

GitHub Actions RunnerがAzule Pipelines AgentのForkで作られていたり、MSでAzure DevOps作っていたDeveloperがGitHubGitHub Actions作っていたりするので、Azure PipelinesとGitHub Actionsの仕様を比較して、GitHub Actionsに今後追加される機能を考えてみたりしました。
5分のLTなので大したことは書いていませんがご参考まで。

JXUGC #25 最新情報アップデート&LT 大会でAzure Spatial AnchorsについてLTしました。

2019/08/31(土)に開催された JXUGC #25 最新情報アップデート&LT 大会 でAzure Spatial AnchorsについてLTしました。

jxug.connpass.com

発表した資料はこちらです。

www.slideshare.net



Azure Spatial Anchorsは今年の2月に発表されたMixed Reality Serviceです。
気になっていたのでde:code2019でセッションを見て面白そうだと思いました。
Mixed Reality と聞くとHoloLensが一番に思い浮かべると思いますよね。HoloLensは高価だし、他のMixed Reality Readyな端末はPCと接続が必要だし、AndroidiOSの端末で気軽に体験したいとずっと思っていました。
Xamarin Developer SummitのセッションでXamarinのSDKが出るよ、と発表があったのでLTのネタいただきました!という感じで内容を決めた次第です。

www.youtube.com
発表の仕方としてはMixed Realityがスマートフォンで体験できるようになったのってワクワクしない?的な感じで話したつもりでしたが伝わったでしょうか。
始めてみたい、と思ってくれたなら幸いです。