C# Kaigi 2026基調講演します!と、.NET for AndroidとVibe Coding

C# Kaigi 2026というイベントが2026年9月19日 (土)に開催されます!C#er のための C# 特化型カンファレンス、ついに開催!おー。ほー。知らんかった。シランカッタデス。私はnot運営です。ただ、C#はカンファレンスがなかったし、MSがやるものもすっかりAzure一色、そして今やAI一色になって寂しい限りなので、開催はとても嬉しいです。企画に感謝。そして、この第一回が成功して、長く、大きく続いていくといいなぁ。

そんなわけで、貢献するためにもセッションのプロポーザル書くかなあ、と思ってたのですが、僭越ながら基調講演に抜擢していただきました!基調講演のタイトルは「C#の現在地 進化の歴史と、AI時代の.NET Everywhere」にします、しました!第一回だしまぁ歴史はやっぱ外せないのかな、ではありつつも、別に中の人でもないしカタログ並べて紹介してもしょうがない。私は昔から、今もC#に魅力を感じ続けているわけで、その時々で何に魅力を感じて使い続けているのか、そんな外側からの目線を話せたらいいかなあと思っています。

.NET Everywhereというのは、懐かしい響きだとも思います。あえてそこを改めて見つめるのもいいかな、といった感じでそこもタイトルに入れてみました。AIは、まぁ今どきAIはとりあえず入れておこう精神です(?)

レギュラーセッションは公募です!2026/07/05 (日) まで公募受付中で「C# に関する事ならなんでも OK」だそうですので、是非是非ふるって応募ください!私はnotプロポーザル査読マンですので、ピュアな気持ちでセッション楽しみにしています!

超dotnet new

超dotnet newというイベントをひっそり開催しました。以前にdotnet newというイベントをやっていたので、その第二弾です。「dotnet new」というイベント名も「超dotnet new」というイベント名も私がつけたんですが、こちらも特に主催ではないです(実際何もやってない)

イベントの趣旨としては(基本的に)参加者=登壇者ということで、敷居低くカジュアルに登壇して欲しいし、カジュアルに交流したい、登壇があると、その人のバックグラウンドや関心事について深く知れるので、とてもスムーズに交流できてお互いがより楽しめる。といった参加型イベントということを想定していました。セッション時間もコンパクトなLTスタイルで5分、そのかわりLTイベントなので登壇者数多めで17人という枠の設定です。

お久しぶりの人はもちろん、半数は(X上では知っていても)初めましての人も多く、とてもいい感じのイベントだったと思います!これもまた忘れた頃にそのうち第三弾がやれたらいいんじゃないでしょうか(運営のほうをチラッ)

私の方からは「.NET for Android with Native AOT Built with Cursor」というセッションをしました。

iPhoneからAndroid(Leica Leitzphone powered by Xiaomi)に乗り換えましたと書いたように、3月からAndroidに乗り換えています。で、Leitzphoneでの願望として

今のところレンズリングはカメラアプリ内でしか機能しないんですが、普通にボリューム操作とかにも使いたいですね……!

というのがあって、Androidの自由度なら、自作することも可能なんじゃないか!?という気がしてきたので、作りました。

ネイティブレベルのルック&フィールと、未公開のハードウェアセンサーからデータ引っ張ってくるということで、割とよくできた造りになっていると思います。当然C#で、.NET for Androidで、さらにせっかくなのでCoreCLR/Native AOTでpublishしてます。LTなのでそんなディープな話ではないですが、その一連の流れをセッションでは軽く紹介しました。

AI任せなので簡単に作れたか、というと、そこまで簡単ではなかったかもしれません。まず、そもそも実現可能なのかもわからないところからスタートしていて、Claudeと一緒にadb使いながら壁打ちしてました。

最近は時代はLoop、人間は不要!みたいな論もありますが、全自動だとうまくたどり着けなかった感はあります。人間が適切にカンを効かせて方向性を定めつつ、AIの抜群の解析力で進めるのが今のところはまっていました。

最終的には↑のように生のセンサー情報が引っ掛けられそうなことが掴めたので、これならいけるな、ということでCursorを使ってコーディングを進めていきました。

生データのマッピング、グローバルで動かせるようにAccessibility Servicesとしての作成、完成度が微妙な.NET 10でのAndroid NativeAOTの迂回などなどは割とサクサク行ったんですが、正直UIは難しかったです。

延々とComposer 2.5で往復しながら微調整を繰り返したので、全自動とは程遠い……!まぁでもUIのデザインやフィーリングって難しいところなので、ここは人間が細かく干渉してもいいところかなー、とは思います。ある程度出来上がってるサイトのページの量産とかなら、デザインルールのSkillをベースにやるとかでもいいとは思いますが、一点ものだとどうしてもうまくはいかないんじゃないかしら。

結果的にルック&フィールは相当良くなってると思います、(今のところは)この品質はAIポン出しじゃあできないですよぅー。

作業自体はCursorのチャットウィンドウで完結、実機に接続している状態だったのでCursorがコンパイル確認のついでに dotnet build -t:Run することで実機に即座にデプロイされるようになったので、実機チェック→チャットで指示→実機チェック→チャットで指示 の人間ループがうまく回りました。

エディターなんていらんかったんや。というわけで昨今のAgentツールは全てお決まりの3ペイン、左側がセッション一覧、真ん中がチャット、右側がアーティファクトという構成で、エディタが要らないのならVS Codeフォークである必要はなく、CursorもAntigravityも独自アプリ化した。という流れには納得しかないです。

逆にコードを確認したい、しっかりレビューしたい、というシチュエーションでは、裏でAgentとは無関係にIDE開いてチェックすればいいかなあという感じがあるので、私的にはVisual Studio 2026とうまい使い分けができるようになって良かったかな、と。つまるところVS 2026へのAI統合は期待してないというか、もはやしなくていいというか。

まとめ

RingController自体はOSSで公開しました!https://github.com/Cysharp/RingController が、Leitzphone自体が出荷台数もあまり多くない特殊なモデルなので、ユーザーはあまりいなさそうですね、しょーがない、そういうこともある。

時代はAI個人開発アプリ、みたいなのは十分体験できたので、引き続きアプリ開発していくぞい!という興味と(作りたいものはなんだかんだでいっぱいあるので)、もう一つ、ライブラリメンテナンスをAIでいい感じにする体制づくりを実践していくぞい!の二本立てで今年はやっていこうと思ってます。今年も、もう半分すぎちゃいましたが。

Profile

Yoshifumi Kawai

Cysharp, Inc
CEO/CTO

Microsoft MVP for Developer Technologies(.NET)
April 2011
|
July 2026

X:@neuecc GitHub:neuecc

Archive