Awesome Xamarin (技術書典5新刊情報)

無職になっても生活が在職時とほとんど変わらないatsushienoです。それって単に給料が入ってこなくなっただけじゃないか…?自由な生活たのしい!!!1

戯言はさておいて、9月は多くの時間を10/8の技術書典5に向けて費やしていました。そのうちのひとつは今日お知らせするXamaritans名義の新刊です。

Xamaritansの配置は「う-78」です。詳細は技術書典Webサイト上のサークルページをチェックしてください。

タイトルは「Awesome Xamarin: この素晴らしいXamarinの世界」です。

f:id:atsushieno:20180925205124p:plain

(今回はまたイラストをお馴染みの(?)絵師に描いてもらいました。今まではアナログ絵の取り込みだったのですが今回はペンタブで描いたらしい…)

内容ですが、今回は完全に1人で書くことにしました…というと何やらそのような意図でやったように聞こえるのですが、単純にまともに原稿募集を出していなくて(もうしわけない…)、結果的に1人で全部書くことになったのでした。本当は30ページくらいのコピー本にしようと思っていたのですが、最初に出来たクロスプラットホームGUIの話がデスクトップ中心でイマイチだったので、もう1本書いてみたらあまりにもXamarinと関係ないNDKの話になってしまって、ビミョイかな…とますます困ったのでした。そうこうしているうちに、mono project blogからクッソおもしろいネタが投下されたんですね。

これはmonoランタイムのJIT相当部分をC#で実装できる、という話なんですが、これはちょうどいいと思って、ついうっかりこの話を理解するために必要そうなJITというかコード生成エンジンの話を書き始めてしまったんですね。

割といい感じにまとまったと思ったんですが、ここで出来上がった原稿は(1)x-plat GUI(しかも割とデスクトップ中心) (2)NDK (3)JITXamarin要素ほぼゼロじゃんAwesome Xamarinとは何だったのか…

…というわけで、急遽(4)「Xamarin.Androidバインディングを極める」を書いて何とかそれっぽく誤魔化し(!?)、NDKの章は削って他で再利用することにしました(こっちは告知できるようになった段階で出します)。

そういうわけで、今回のネタは次の3本です。

(1) Xamarin.Android バインディングを極める

自分が一時期主に開発していたAndroidバインディング・プロジェクトについて、実用的なプロジェクト構成から細かい説明、各種ビルドエラーの対策(この辺は去年シンガポールでやったセッションの焼き直し)などを30ページくらい書いてまとめました。本当は個人的に構想していた未来形の話も書きたかったのですが、今後それを推し進めることになる気があまりしないので、ほぼ現状の話でまとめてあります。

(2) Mono.Compiler API を理解するためのMono JITエンジン解説

去年のde:code2017でもある程度コード生成エンジンの話をしましたが、アレはJITの話としてはほんの序の口です。JITが何をしているのか、miniとは何なのか、llvm実装とそうでない実装はどう繋ぎこまれているのか、CILはどのように実際のマシンコードに置き換えられているのか(Linear IR)、コードはどう最適化されているのかといった話を「もう少しだけ」掘り下げます。SSAレジスタアロケーターのspillingに言及はするが深入りはしない、という程度です。AOTも関係あるんだけど、最終的には「JIT」って章タイトルに入っているほうが分かりやすいだろうと思って「JIT」としました。自分で言うのも何ですがこの章が一番おもしろいです。

(3) Mono ・ XamarinクロスプラットフォームGUIの軌跡

MonoチームがXamarin.FormsのようなクロスプラットフォームGUIフレームワークを実装したのは、これが初めてではなく、大昔にはWindows.FormsをLinux/Mac向けに実装したり、その後今でも現役で使われているXwtを開発したりしてきました。またGtk+も今や…というか10年以上前から…クロスプラットフォームGUIツールキットであり、実装上の知見を得てきたフレームワークです。これらをきちんと振り返った上で、今Flutterのような新しいGUIフレームワークをどのように捉えるのか、Xamarin.Formsには何があって何がないのか正しく語るために知っておくべきことは何か、といったことを考察するための起爆剤として書いた章です。一部はde:code2018でXamarin.Formsについて語った内容も含まれています。

最終的におよそ90ページという、予定の3倍くらい厚い薄い本になってしまったのですが(完全に予言されたとおりになってしまった…)、いつも通り1000円で頒布しようと思います。技術書典5、スタッフとしても作業していますんで(こっちも大変…)、ぜひ皆さん来てください。Xamaritansは「う-78」です(サークルページ)。