ABC2016 Autumn デブリーフィング
一週間も経ってしまって今更ですが,ABC2016 Autumnでバザール出店とハンズオンを実施してきました。
ざっまりーん (@ KOIL (柏の葉オープンイノベーションラボ) in Kashiwa, Chiba-ken) https://t.co/5pMyCk5mzr pic.twitter.com/Xb7qMhU6cy
— Tsubasa HIRANO (@ailen0ada) 2016年11月19日
バザールでは Blynclight ネタを。
Xamarin.Forms の Azure Connected アプリ Blynclight 風味展示してます!さわりに来てね! #JXUG #abc2016a #Xamarin pic.twitter.com/u9B5qDrEkC
— Tsubasa HIRANO (@ailen0ada) 2016年11月19日
ハンズオンはconnpassに登録いただいた方こそ8名でしたが,一時は10台用意したPCが埋まるほどで総計30名ぐらいの方には体験いただけたのではと(数えていない)。
メンターとして @nuits_jp さん, @masatoru さん, mishizakiさん, nakashoさん にお手伝いいただきました。ありがとうございました!
今回はMicrosoftにXamarin インストール済みの Surface Pro 4 を10台用意いただいたので,スムーズに進めることができました。いや,スムーズに進めるために環境のチェックと修正を加えてくださったメンターの皆様のおかげです。本当にありがとうございました。
ハンズオンに来てくださった方と手を動かしていると,「なぜこうしなければならないのかがよくわからない」「この操作がどういった意味をもっているのかが知りたい」という声がちらほらあったように思います。そういったところをフォローできるように精進していきたいです。今後ともよろしくお願いします!
Connect(); // 2016 キーノートのライブ中継日本版に参加した
ここまでオープンにするならConnect徹夜しなくてよさそう
— Tsubasa HIRANO (@ailen0ada) 2016年11月14日
とか言っていたはずなのに、日本独自番組にサポートメンバーとして参加してまいりました。
録画はこちら。
http://microsoft-japan-events.azurewebsites.net/2016/connect/
一緒に参加した @ytabuchi さんのレポというかまとめというか、はこちら。
うーん。書くことがないぞ?
もくもくしてた
裏ではもくもく会状態で11月19日のABCの準備をしつつ、VisualStudio RCを入れつつ、VS4Macを入れてました。忙しい。
#JXUG 勢は裏で仕事してます #msftconnect #vsjp
— Tsubasa HIRANO (@ailen0ada) 2016年11月16日
なう #JXUG pic.twitter.com/vOQcV3DGPc
— Tsubasa HIRANO (@ailen0ada) 2016年11月16日
今回の発表
VisualStudio for Mac
VisualStudio と銘打ったからにはガンガン投資していってくださるんですよね!ということでいい兆候だと思います。
現在 VisualStudio と Xamarin Studio の間にあるギャップが少しずつでも埋まっていくといいかなと思います。UWPとかUWPとか。Xamarin.FormsはUWPにも対応しているのに、現状XamarinStudioでは作れなくて悲しい感じなので。
VisualStudio 2017
LiveUnitTest が dotCover 入れなくてもできるようになるのは素敵。ただ発表されてる新機能はEnterprise以上限定な機能が結構多くて差別化を進めてる印象。
Azure FunctionsがGA
Lambda芸を輸入しなくては。
ABCに参加します
11月19日のABCはこれのことです。人のブログに完全に乗っかる形ですが、ぜひ!
MVP Global Summit に参加して散財した
11月6日から行われたMVP Global Summitに参加してきました。この文章は帰りの機内で書いています。
サミットで何が行われたのかはにゃーんなので全く書けません。
Think before you tweet at #MVPSummit. pic.twitter.com/iinxfvpK6z
— MVP Award Program (@MVPAward) 2016年11月1日
会話に関して,英語力不足というよりは,「全部拾わなくていいし,もうなんかしゃべっちゃえばいい」と吹っ切れるまでに時間がかかった感じ。別に同じコンテキスト共有してるし,なんとなく考えてることを垂れ流しておけば向こうに拾ってもらえると。
あ,でももうちょっと街中で使う英語は予習しておいた方がよかったかもしれぬ。それぐらいは復習しておこう。
来年のために,ここからはいかに私が散財したかを記録しておこうと思います。
続きを読むJXUGC #17 デブリーフィング
Microsoft MVP を初受賞しました
Microsoft MVP for Visual Studio and Development Technologies を受賞することができました。
いつもXamarin.Macの人として応援いただき,またいじっていただいたりする皆様のおかげです。 本当にありがとうございます。
Xamarin.Mac プロジェクトが Visual Studio で開けるようになったり,Xamarin.Forms が macOS 向けにも実装が進んでいたりと,面白そうなトピックが続々出てきそうです。
これからも頑張ります。今後ともよろしくお願いいたします。
AWS API Gateway Lambda proxy integration を使う
API Gatewayに,20日に新機能がリリースされました。
Amazon API Gateway に API 設定を簡素化する 3 つの新機能を追加
今まではAPI Gateway側の設定をいろいろ通ってからLambdaファンクションに到達していましたが,認証後はリクエストをするっとLambdaに流せると。 まあ便利。ということでさっそく使ったのですが,何をやっても502エラーになる。
レスポンスはこのように返しましょう。
class ApiGatewayResponse { constructor(){ this.statusCode = 200; this.headers = {}; this.body = ""; } } exports.handler = (event, context, callback) => { const res = new ApiGatewayResponse(); // 任意のレスポンスヘッダ res.headers["x-custom-header"] = "foo"; // body は string で。Objectは不可 res.body = JSON.stringify(event); // context.succeed は deprecated callback(null, res); };
Xamarin.iOS + AVFoundation でフロントカメラからキャプチャする
ここまでMac, UWPとやってきたのでiOSでもやってみます。 リポジトリはこちら。
Mac のコードコピペでよい
いろいろ書こうと思ったのですがほぼコピペで動きます。AVFoundationのAPIはほとんど同一です(もちろん意図的に揃えてる)。 面白くないので,あまり本質的ではないですが少し変更しましょう。
iOS 10のAPIを使う
iPhone7 Plusではカメラが増え,AVCaptureDevice.DevicesWithMediaType()
では取得できません。iOS 10で追加された AVCaptureDevice.GetDefaultDevice
か, AVCaptureDeviceDiscoverySession
を使っていきます。
void InitCaptureSession() { session = new AVCaptureSession(); session.SessionPreset = AVCaptureSession.PresetHigh; // iPhone 7 Plusで全てのデバイスを列挙するなら // var deviceTypes = new[] { AVCaptureDeviceType.BuiltInDuoCamera, AVCaptureDeviceType.BuiltInWideAngleCamera, AVCaptureDeviceType.BuiltInTelephotoCamera}; // var discoverySession = AVCaptureDeviceDiscoverySession.Create(deviceTypes, AVMediaType.Video, AVCaptureDevicePosition.Unspecified); // var devices = discoverySession.Devices; var defaultCamera = AVCaptureDevice.GetDefaultDevice(AVCaptureDeviceType.BuiltInWideAngleCamera, AVMediaType.Video, AVCaptureDevicePosition.Front); NSError error; var input = new AVCaptureDeviceInput(defaultCamera, out error); session.AddInput(input); photoOutput = new AVCapturePhotoOutput(); session.AddOutput(photoOutput); }
カメラへのアクセス許可を取得するためにAVCaptureDevice.RequestAccessForMediaType
のほか,iOS10からはInfo.plistに下記記述が必要です。文章は何でもいいです。
あとはmacOSのものからコピペして,NS*
なものをUI*
に置き換えたり,オーバーライドするメソッドをちょこっと変えたりすれば動きます。