.NET Fringe Japan 2016が見せた「オープンな.NET」という世界

本当はこのイベントが決まって正式に公開された時に告知するつもりだったのだけど、ちょっと他のこと(主に前回書いたcomcampの件)で待ちに入っているうちに定員をあっさり超えてしまって、またその機会を逃してしまって忸怩たるものがあるのだけど*1、ともあれ、昨日無事.NET Fringe 2016というイベントをみんなで開催した。

dotnetfringe-japan.connpass.com

"Fringe" とは「非主流派」のような意味の語句で、わたしはそれを「異端」と呼んでいた。本家とは実のところ一度しか話していないのだけど、.NETのイベントではあるが、なるべくMicrosoftべったりにならず、独立したイベントとして開催したい、という趣旨だった。日本ではそこまで独立しなくてもいいかな?という見方が(わたしも含めて)大勢だったけど、結果的に会場もドワンゴのオフィスをお借りしてニコ生で流すというやり方になった。

いろいろ問題はあったかもしれないけど(スライドの字が見えなかったりとか)、内容としては大成功だったと思う。わたしの中では、今年一番の刺激的なカンファレンスになった。会場でも数多くのコメントが見られた。

.NET Fringe Japan 2016 (ドワンゴ・松竹スクエア) - Togetterまとめ

.NET Fringe Japanでは「オープンソースになった.NETテクノロジーではこんなことが出来るんだ!」という強いメッセージを発信できたのではないかと思う(いや、そこまで意図して開催したわけじゃないけど、結果的に)。roslynを通じてC#コンパイラや言語仕様を拡張するには具体的にどうすればいいか(何をすべきか、すべきでないか)、という内容のセッションがあった。coreclrのソースコードをハックして、独自のIL opcodeを定義するにはどうすればいいか、具体的に実践してみせたセッションがあった。クロスプラットフォームの.NETライブラリをどう開発するのか語るセッションがあれば、その具体的な仕組みをdotnet(コマンド)のソースコードから解明するセッションもあった。発表者がナチュラルに.NET Coreのソースコードに踏み込んで紹介していく風景が、そこにはあった。

Jonathan Zittrainは、Future of the Internet (and how to stop it)の中で、ユーザーに多大な可能性と創造力をもたらしたApple IIを(ユーザーにはAppleが望んだことしか出来ないiPhoneと対比して) "generative technology" と表現した*2。.NET Coreはまさにこのgenerative technologyである、と言って良いんじゃないかと思う。.NET技術を消費し、その上に乗っかるだけではなく、その土台そのものに再生産を加える(そのために採ると有益そうな指針)など、そんな話がたくさん聞けた1日だった。

わたしも「Monoならオープンソースなんだからこんなことが出来るんだよ」みたいな話を(これまで)ずっとしてきたわけで、.NET Coreが(日本でも)そこまで到達したと思うとうれしみがある。(今回やったXamarinのソースを追っかける話は、他の人たちほど深入りした内容ではなかったけど、似たような話はある程度はできるので、似たような機会があればお話ししたい。)

まあ、それはあくまでわたしの感想であって、今回は主に濃密なセッションを10時間近くぶっ通しで続けた、というところが突出していたと思う。これだけのスピーカーに集まっていただけたのはとても運が(あるいは日頃の行いが)良かったと思う。

今回のイベントをだいたい仕切ってきた鈴木さん (@yukitos) は、来年にも第2回を開催したいと宣っているので、今回楽しめたという皆さんは楽しみにお待ちいただければと思う。手伝ってくれるという人も募集しているので、もし興味があれば、gitterチャネルで声をかけていただいて、みんなでうまいこと楽にやっていけたらと思う。

それではまた次回をお楽しみに。

*1:「告知する」とまで書いていたのに…(__;

*2:日本語訳では「生み出す力を持つ肥沃な技術」と訳されているのだけど、長ったらしいので原文から引っ張ってきた。

台湾のカンファレンス参加とXamarinコミュニティ始動によせて

2週間ほど前の話ですが、8/27に、台湾のMicrosoftが開催したオープンソース コミュニティのイベントであるCommunity Open Campで、Xamarin.Android SDKの話をしてきました。

community-open-camp.azurewebsites.net

たまたま(?)、米MSのchannel9部隊が来台していて、セッション動画を全部録画していました。わたしの分も公開されています。

channel9.msdn.com

ただ、なぜかわたしが喋っているだけの動画になっていて、スクリーンが全く写っていないという…スライドはこちらで読めます。

speakerdeck.com

それで、ついでにセッションスピーカー数名にインタビューを行っていたらしく、その動画もついでに録画されちゃいました。(リンクだらけになってくどいので、↑の関連動画から見てください)

Community Open Campは、基本的にVSCodeやAzureなど、MS技術に絡めたセッションがほとんどだったと思いますが、MSのコミュニティ マネージャーが、いろいろなオープンソース技術のコミュニティに出向いていって、セッション担当や一般参加を呼びかけていったようで、わたしが台湾に住んでいた頃に出入りしていたコミュニティにも顔を出していて(わたし以外にMS技術を紹介するようなメンバーは皆無でした)、自分たちのフィールドの外に積極的に出ていって頑張ってるなあと思ったものです。会場も台北ではこの種のイベントでお馴染みの中央研究院でした。

わたしのセッション内容は、7月頭にYAP(achimon)Cでしゃべった内容をベースにしつつ、いろいろアップデートして、かつ後半の高度な内容を飛ばす代わりに、コン ソールからフルスクラッチでXamarin.Androidアプリケーションのソースを作成してxabuildでapkをビルドしてadbでインストール して実際に動かす、というライブコーディング(と言っていいのだろうか)、という構成になりました。英語セッションでしたが、150-200人くらいに見てもらえたんじゃないかと思います。

わたしの他に、Xamarinのセッションを担当していたyahooの技術者がいたのですが(話しそびれた)、そちらで全体的な導入をやってもらえたおかげで、わたしは好き放題しゃべったという感じです。おそらく世界の誰もやったことないであろう実用性ゼロのデモで、一部の参加者はエラいものを見たという感じで喜んでいましたが、全体的には参加者を煙に巻いたことだろうと思います(!?)

イベントの後、しばらくうろうろしながら、聞いてくれた人たちと雑談したり、↑のインタビュー動画を撮ったりして過ごした後、最寄り駅付近でspeakers' dinnerに参加して、他のスピーカーの人たちといろいろ技術雑談を楽しんできました。彼らの多くはホントにふだんMS技術に関与しないような技術者で、日本でよくやっているような身内イベントとは大違いでした。

翌々日8/29には、別のMSのコミュニティ マネージャーが、初めてのXamarinユーザーミーティングを開催して、そこで今度は、XamarinというかMonoがどんな感じで誕生したかを紹介して、どうやって自分がそこに入り込めたか、みたいな話をしてきました。(技術セッションを準備する余裕は無かったし)

speakerdeck.com

これでうまいこと扇動されてXamarinやら各種MSプロジェクトに限らず誰かOSS contributorとして参加していってくれるようになるといいなあという感じです。皆だいたい中国語で交流していたので、わたしは半分くらいぼんやり眺めていたのですが、MSPの学生の人たちなんかも来ていたりして、また少し新しい種類の繋がりも出来たのでした。

さて、ここまでは前フリです。

今回これらのセッショントークを行ってきたのは、わたし(というかXamarin)が日本マイクロソフトにjoinした結果、台湾に自由に行き来できなくなって、台湾の技術者コミュニティへの参加が出来なくなっていることに起因しています。

6月、まだXamarinが存在していた時に、台湾に渡った時に、まず台湾のXamarinパートナーだったThinkpower(日本のエクセルソフトだと思えば大体合ってます)の人たちにお願いして、当時繋がりの無かった台湾MSの人に繋いでもらって、「何かイベントがあったらしゃべるから呼んで☆」とお願いしてきて、何とか実現したのです(移動も自費だし)。この時は半月ぐらい滞在していました。今回確立したXamarinユーザーミーティングでは今後も呼んでもらえそうですが、毎回わたしがセッションをもつわけにもいかないし、数回に1回といったところでしょう。

東アジアにいるXamarinのメンバーは、わたしだけなんです。台湾で同じことが出来る人は、いないんです。

今回は数日間だけ現地での交流の機会がありましたが、今のところ台湾に自由に行けるわけでもないので、このような機会は激減しています(6月に無理やり繋がっていなければ、おそらく「ほぼゼロ」になっていたことでしょう)。本当なら他の東アジア各国(できれば東南アジアくらい)まで交流の幅を広げたいのですが、現状では各国コミュニティとの繋がりもない状態から始めなければならず、ほんの数日の滞在で今回みたいな成果を出せるところまではもっていけないでしょう。

今年の春先に、日本マイクロソフトが「どこでも働ける」ようにルールを変えた、というニュースが話題になりましたが、わたしに言わせればまだ不十分です。3ヶ月に1度は他所のオフィスを見てくることを推奨しているGoogleみたいな企業を見習ってほしいと思います(推奨、というのが良いバランス感覚ですね)。

世界コミュニティに貢献するって、こういう活動だと思うんですよね。日本法人がやるべきことは、日本の従業員の可能性を広げることだと思うんです。

日本マイクロソフトには、もっとグローバルに変わってほしいと思っています。

Xamarin.Android 7.0とJava8とproguard

少し前の話題になりますが、GoogleAndroid 7.0を不意打ちでリリースしてきましたね。

Xamarin.Androidチームでは、もう少し後に出るはずというスケジュール感覚で作業していたので、この不意打ちリリースに嫌な顔をしながら進行中のcycleのリリースにAndroid Nサポートを追加する作業を行っていたわけですが、公式ブログでもXamarin.Android 7.0としてリリースが告知されたようです。

blog.xamarin.com

この辺のversioningは、今回はtarget frameworkに合わせているようですね。

 

さて、Android Nの開発者向けの大きな特徴のひとつにJava8サポートがありますが、その辺でどんなインパクトがあるかは以前まとめた通りです。

atsushieno.hatenablog.com

バインディングまわりではinterface default methodsは現状相変わらず面倒なのですが、まあさすがに今JavaライブラリでAPI定義をJava8依存にしてターゲットをめちゃくちゃ限定することって、そうそう無いと思うんですよね*1。なわけでこの辺は(以前にも書いた通りですが)対応しても少し先送りしたいと思っています。

さて、ひとつ、今すぐ困りそうな問題が残っています。proguard対応です。これも上記エントリで言及したのですが、Android SDKに含まれているproguardは、Java8のバイトコードを処理できません。

ただ、Jack(新しいJava8対応コンパイラ)がproguardの代わりとなって処理できる機能を有しているように見えるものの、Android Studioでわたしが試してみた感じでは、proguardの設定ファイルに基づく処理は、相変わらずproguardが行っているようです。Gradleコンソールには以下のような出力が見えました。*2

ProGuard, version 5.2.1
Reading input...
Reading program jar [/home/atsushi/Desktop/Java8ProguardExperiment/app/build/intermediates/exploded-aar/com.android.support/support-compat/24.2.0/jars/classes.jar] (filtered)

 

このproguard、バージョンが5.2.1なんですね。Android SDK toolsに含まれるproguardは(25.1.7の時点で)バージョン4.7なので、どうやらこっちは使われていないようです。後方互換性のために残されているのでしょう。android-studioのディレクトリの中を探ると、android-studio/gradle/m2repository/net/sf/proguard/proguard-base/5.2.1/proguard-base-5.2.1.jar というファイルが見つかります。こちらが使われていると考えて良いのではないでしょうか。*3

いずれにせよ、Xamarin.Androidで使用しているのは、Android SDKに含まれるproguardなので、これではせっかくJava8に更新したのにproguardで躓いてしまってもったいないし、特に外部ライブラリがJava8でビルドされていると(android-support-v4…をsplitしたやつ…など)、proguardが使えなくなってしまいます。これでは困る。

そんなわけで、とりあえず、自前でビルドしたproguardをバンドルして、xamarin-androidの中でproguardを呼び出している部分で、代わりに呼び出すようにするパッチを作ったのですが、

github.com

proguardってGPLv2で配布されているんですよね。これを取り込んで配布したいかというと、出来れば回避したいので、少しやり方を変える必要があるかもしれません(無いかもしれません。そこはMicrosoftがどう変わったか次第)。

いずれにしろ、この変更が取り込まれてリリースされるまでには、まだ数ヶ月単位で待たないといけないはずなので、それまでの間このproguard問題を回避する方法を書いておこうと思います。proguard.jarのファイルパスは、MSBuildプロパティProguardJarPathで変更できます。なので、プロジェクトをMSBuildやxbuildでビルドするときに、/p:ProguardJarPath=/path/to/your/proguard.jar を指定してやると良いです。*4

コマンドラインでビルドなんかしないYO!という人は、.csprojを編集して、最初の<PropertyGroup>要素の下にでも <ProguardJarPath>/path/to/proguard.jar</ProguardJarPath>を追加しておけば良いでしょう。(git commitするなど、他所に持って行く前に消す必要はありますね)

実のところ、「これで動くはず」という以上の実験をしているわけではないので、これで試してみてダメだったら、わたしに適当に伝えてもらえれば、もう少し見てみます。

*1:ちなみに、Android Nのandroid.jarでは、このデフォルトメソッドが派生クラスでばんばん使われています。API定義上は少なくともJavaの文脈ではbreaking changeにはなっていないはず。

*2:Java8だとjackを使っているはずだけど、どうやってInstant Runとの整合性をもたせているんだろう…?という興味があって試している時に観測しました

*3:見当違いで、IntelliJ IDEAがpure Java環境用に使っているだけの可能性もあります。

*4:proguard 5.2.1のproguard.jarを持っていない人は、自分でソースからビルドするか、Android Studioを入れた後に前述のパスからコピーしてくると良いでしょう。

Xamarinの新しい話とMonoの深い話 @ dotnetConfJapan2016

セッションの詳細が決まった頃にはとっくに満員になっていて書いてもしょうがないと思って粛々と登場したのですが、表題のイベントで会社の先輩(自称)としゃべってきました。視覚的な情報は 先輩 がまとめています。って仕事早いな!

blogs.msdn.microsoft.com

本当はMonoの深い話だけのつもりだったのですが、結果的にむしろMonoの話はわたしのほうが丸投げするかたちになってしまいました。スライドには、わたしが補足で作ってきたもののしゃべる機会が無かった「Monoつうのは本来だな…」という話題が含まれています。

本当はLinkerの歴史(Moonlightの頃からある)とか実装の使われ方とかも説明したかったのですが、ちょっと時間的に無理でしたね。Miguelが本家dotnetconfで紹介していたAdvanced Linkingはこの辺にソースがあるので、興味ある方はどうぞ。Nugetizer 3000の話も尻切れトンボになっちゃいましたね…

2人セッションの準備のために、事前にMiguelのセッションの内容を説明していたのですが、あのセッション、そこそこ難しい話をしていたのですね。1人でしゃべるのであればそこまで意識しなかったであろう(というかしゃべるつもりすらなかった)根本的な仕組みの話も、ちゃんと説明せなあかんのだろうなあという気付きを得ました。

そんなわけで、主に(というかほとんど)「漫才たのしかったです」「Eテレでしたね」みたいな感想をいただいたのも、実のところ概ね予想通りで、初めての試みで手探りでしたが悪くはなかったのかなと思います(…って書いてて気づいたけど漫才はこの前もやった気がしますね…!)

そんなわけで次は(他に入らなければ)準備中のイベントでDeep Diveなネタを今までどおり単独で話すことになると思います(反省の色がまるで無い)。決まったらまたお知らせします。

Long Live, Xamarin

これはいわゆる「転職ブログエントリ」みたいなノリで書いていますが、まあご存知の方はご存知の通り、転職ではありません。

日本時間ではもう7月になってしまいましたが、今日、Xamarinが正式に最後の営業日を迎えます。

設立から5年と2ヶ月弱、わたしが在籍していたのは4年と11ヶ月でしたが、こうして過ぎ去ってみると、あっという間であったように思えてきますね。5年前には、わたしはまだ所在不明の国籍不明ですらなかったわけで、5年間というのがいかに短いようで長い間であったか気付かされます。5年前なんてAndroid 3.xの時代だったんですよね。

わたし自身は、今後も、業務としては同じXamarinチームのまま、所属としてはMicrosoftで仕事するということになります。

Xamarinがどんな5年間を経てきたのかは、もう 十分すぎる くらい*1 書かれた と思うので、ここで繰り返すことはしませんが、いい機会だと思うので、Xamarinみたいな会社で仕事するって、どんな感じだったのか、思いつく感じで書いてみようと思います。

Xamarinは、もともと世界中に散らばっていたXimianが母体になって出来たMonoチームから誕生したこともあって、わたしのように各国に1人、2人くらいしかいないメンバーが数多く存在していました。こういったメンバーは、Novell時代のように現地法人があるわけではないので、個別にXamarinの国際メンバーとして仕事することになります。建前上は正社員ではない扱いですね。仕事は以前と何も変わりませんでしたが。基本的に自宅で作業するわけですが、近所のコワーキングスペースにブースを借りて仕事しているメンバーもいました。もちろんカフェもワークスペースです。

作業時間も主に日が暮れてから集中的に始まり(それくらいから欧州メンバーが仕事を始める、ただしこちらは間に晩飯あるいは「昼飯」が入る感じ)、丑三つ時くらいまで、遅いとすっかり太陽が出てから寝る感じです。まあやる気のない時はさっさと切り上げますが。

日本法人は無いので、給料もコンサルティング費用みたいな感じで毎月請求します。当然ながら源泉徴収もないので、2〜3月には自分で確定申告します(そして毎年のように担当者に戸惑われる)。そうすると事前にIBANなどを通知していた日本の銀行の口座にUSDから変換された日本円(ryが入ってくる感じです(もちろんUSDの口座にふりこんでもらっても良かったでしょう)。

Xamarinのオフィスは、ボストンから始まって(Ximianのスタート地点です)、ほどなくサンフランシスコに営業拠点を設置しました。Miguelはボストンで開発をリードし、Natはサンフランシスコでその他をリードする、というやり方です。実際にはサンフランシスコにも少なからず開発者がいました。Formsチームはだいたいあちらにいます。

わたしは年に1回くらいミーティングに行く程度ですが(それにしてはサンフランシスコオフィスに遊びに行く機会が多かった気がする)、アメリカのベンチャー企業のオフィスなので、日本の退屈なオフィスとは全然雰囲気が違います(日本にも居心地の良さそうなオフィスは増えてきましたが)。

あと、リモートメンバーが少なからずいるので、オフィスの近くにアパートを借りていて、日々誰かしら関係者がそこに寝泊まりしていたものです(今どうなっているのか知りませんが)。特にボストン方面からは、行くたびに「長期滞在していけばいいのに」みたいに言われたものでした(実際春先頃にそうするつもりでもあったのですが、DroidKaigiで忙しかったのと、その直後に買収のドタバタがあったわけで…)。米国に移住するメンバーが、部屋探しの間しばらく泊まっているなんてこともよくありました。

勤務条件も、緩やかなものでした。「みんな年に4週間の休みがある。」「体調が悪かったら休め。休暇を使う必要はない。」といった感じで、2週間くらいは外国旅行に出るメンバーはそこそこいました(米国メンバーは1週間程度しか休まないワーカホリックも少なくないですが)。わたしはというと、大して旅行に出ることもなく12月の半分くらいを休みにして、好き放題コードやら無駄に長いブログやらを書いて過ごすみたいな感じでした。後半になるとBambooHRみたいなのを導入して、結局そのシステムが「ざっくり休む」みたいなのを前提としていなくて、普通に休みを数える普通の会社になった感はあります。人数も増えて、「普通の」会社から流れ込んでくる人も増えたということですね。

あとは、わたし個人では、Xamarinにいる間に、台湾で現地の開発者コミュニティなどと交流して過ごすようになりました(もちろん仕事はネットワークさえあればどこでも出来るわけです)。台湾は開放文化(オープンソース文化)に積極的で、日本よりもおおらかなので(日本に比べて格段に足の引っ張り合いがない文化です)、わたしもいずれ日本を見捨てて台湾で過ごそうかとも思っているのですが、あまり真面目に中国語を勉強せずに片言だけで過ごしてきたこともあるので、その辺は今後の課題でしょうか。

オープンソースの.NETに興味があるコミュニティは、あちらではさらに小さく、MonoやXamarinだけでなくその辺も広めようとしたこともあったのですが、割と道なき道を歩いている感はありましたというかあります。この辺はMS台湾でも広げていきたいようで、わたしも積極的に支援していこうと考えています。コミュニティ活動は、これまでも基本的に業務外で回せていたので、今後もそうしていきたいところです(日本法人から面倒な横槍が入らなければ、ですが…わたしとしては社内外を問わず「日本も台湾も支援する」か「どちらも支援しない」かの二択です)。他のアジア諸国までは、現時点では手をのばせていません。大陸のMSなんかは台湾法人から見ても「よくわからん」そうで…

…というわけで、後半は振り返りというか今後みたいな話になってしまいましたが、まあこんな感じで、国外企業の仕事も適当にできるものだと思います。英語は…まあ読み書きはさすがにそれなりに出来ないと厳しいですが、英会話は全然ダメなレベルから入っても(少なくとも首の皮がつながっている程度には)何とかなっているので、まあ何とかなるのではないでしょうか。他の人にも是非チャレンジしてもらえればと思います。

*1:これはほとんど自分の話だけど

Xamarin.Android SDK解説 @技術書典 & @YAP(achimon)C Asia Hachioji etc.

これからしばらくの間、アジアでXamarin.Android SDKを紹介する活動が(わたしとしては)多くなりそうです。

まず、6/25(土)の技術書典で新しく発行される、TechBoosterの "AZ異本 grimoire of android" にひとつ寄稿しました(Xamarinで書けという(圧)がかかったともいう)。

techbooster.github.io

表紙のヤバさがヤバい。

5月に書いていたのですが、たいへん新しいネタで、書いていく傍らで変更がどんどん加えられ、動いているとされていたものが動いていないとか、いろいろチャレンジングな状況でした。でもまあ一応「この辺はあまりブレないだろう」というラインを中心に、基礎から内部的な解説まで、いろいろまとめています。

30ページくらいあって、同人誌の原稿としてはけっこう長々と書いたと思います。ただ、これでもだいぶ書くべきを端折っているんですよね…(力尽きて)。本当ならXamarin.Android徹底解説という題にするつもりだったのですが、全然徹底しなかったので、そこは外しました…

ちなみに、わたし技術書典のスタッフとしても動いていて、当日も現場にいる予定なので、ぜひ遊びに来てやってください。

techbookfest.org

おまけですが、6/9に、台北のFLOSSのグループH4で、技術書典や(原稿書きに使っている)Re:VIEWがどういうものなのか、という紹介をしてきたので、これもついでに上げておきます。(ざっくり10分程度のトークです)

speakerdeck.com

それから、その翌週の7/2(土)に、今度はYAP(achimon)C Asia Hachioji in Shinagawaという、どこなのかよくわからないイベントで、そのXamarin.Android SDKの解説セッションをやります。

yapcasia8oji-2016mid.hachiojipm.org

YAPC Asiaの後継イベントだけど、今度はごく少人数(というか基本的に1人?)でイベントを回すそうで、なかなか大変そうなところですが、会場に品川MS神社を借りてMS信者のおまいらがおまいりできるそうですので、興味がありましたらぜひ聞きに来てください。

本当は↑の執筆内容をもとに、念入りに話したいところではあるのですが、30分だけなので、いろいろ簡素な(でも平易ではない)内容になると思います。できればデモも動かしたいのですが、SDK本体の完成度次第と言ったところでしょうか(!)

最後に、8/27に、Microsoft台湾のコミュニティマネージャの人に相談されて、あちらのMVP Summitのようなもので、同じくXamarin.Android SDKの話をしてくることになっているのですが、これは内容的にはYAP*Cとほぼ同じにしようと思っています(時間は40分あるのですが、英語になるので密度は多分下げざるを得ないでしょう)。これも興味がありましたらぜひ来てください(台北ですが)。

JXUG#13 rejected meetup

#JXUG13 の参加申込み状況がえらいことになってますね。

jxug.connpass.com

参加したいけど出来ない感じの皆さんは残念ですね。

せっかく興味がある人が多い「ように見える」のに何もしないのはちょっともったいないので、前日の公開ですが、参加したかった皆さんのうち、Xamarinに興味がある方がいたら、適当に来てもらえれば相談などに乗る集まりをやろうと思います。個人的には以下のような目的だと面白いかもしれないと思いますが、目的を特定するつもりはありません(とりあえず、どれもJXUGではやらなそうなことです)

  • (xamarin-android、xamarin-macios、Xamarin.Forms)をビルド/ハックしてみる
  • Xamarin Workbooksで遊んでみる
  • Xamarin Forms Previewerで遊んでみる

場所は、わたしが上記の集まりに冒頭だけ参加しないといけないこともあるので、会場であるMicrosoft品川オフィス(いわゆるSGT)の2階にある cafe de crieあたりがいいかと思っています。もしいっぱいだったら周辺のカフェのどこかにします。(Twitter/@atsushieno でお知らせします) 誰も来なければ1人でもくもく作業していると思います。目印にこいつを置いておくので、適当に探して下さい。

時間も、適当ですが、上記の都合で、13:30スタートくらいだといいかなと思っています。

注意点ですが、Xamarin platformsはビルド時に大量のダウンロードを必要とするものです。自宅等で必要なセットアップを済ませてから来て下さい。

  • Xamarin Workbooks、Xamarin Forms Previewerを使うには、alpha previewが必要になります。
  • xamarin-android:
    • githubからxamarin-androidを --recursive でcloneしておく (特に、monoのチェックアウトが必要になるので、時間がかかる)
    • make prepareAndroid SDK / NDKのダウンロードをすませておく(現状ローカルにあっても使われません)
  • xamarin-macios:
    • githubからxamarin-androidを --recursive でcloneしておく(fsharpやllvmが必要になる)
    • Xcode 7.3以降が必要になるので、アップデートしておく(4GBくらいある)
  • Xamarin.Forms:
    • 一度コードをチェックアウトした後ビルドを行っておきましょう。中でXamarin.Androidコンポーネントを参照している部分があって、それら は内部的にAndroid SDKのサイトから依存関係のパッケージをダウンロードします。これがけっこう待たされるはずです。
    • フルビルドにはVisual Studio 2015が必要ということになっています(WP/UWPなどWindowsにしか無いものがあるため)。また、VS2015の追加アドインが必要になるようなので、README.mdをチェックして追加しておきましょう。

何か注意事項を思いついたら追記していきます。