ぴよぴよエンジニアの日記

クラウドベンダーに勤める見習いSEの日記です。発言は私自身の見解であり、必ずしも所属組織の立場、戦略、意見を代表するものではありません。

JXUGC #13 東京 Xamarinのすべて!

「JXUGC #13 東京 Xamarinのすべて!」に行ってきました!

「JXUGC #11 Xamarin ハンズオン大会」に続いての2回目のJXUGCです.
santea.hateblo.jp

冒頭に田淵さんもおっしゃっていましたが、大変濃ゆい内容のカンファレンスでした.

jxug.connpass.com



会場

f:id:Santea:20160507202613j:plain

f:id:Santea:20160507203322j:plain

f:id:Santea:20160507203457j:plain

日本マイクロソフト品川本社が会場でした.

MSのオフィスは初訪問だったのですが、綺麗で大きかったですねぇ.

ドリンクの無料提供もしていただき、至れり尽くせりといった感じでした(*゚´∀`゚)゚



セッション

今回のセッションは最長でも25分だったのでLT形式と言っても差し支えないと思いますが、全部合わせると4時間半という大ボリュームでしたね!

内容はXamarin.Native, Xamarin.Forms, Xamarin.Macと幅広く網羅していて(比率的にはForms多めだったかな?)、レベルも入門から上級者向けの内容までバリエティに富んでいました.

復習も込めて、各セッションを振り返りたいと思います.



JXUGC 13 はじめに

田淵さんのオープニングも兼ねたセッションでした.

内容はJXUGC #11の説明をより簡略化した上で最新の動向を散りばめた、まさに導入といった内容.

Xamarinは"ツンデレ"という話でしたが、デレさせるにはそれなりに技術(あと忍耐力?)が必要なのかも?

デモをされていたXaml Previewer、アレいいですねぇ...早くVSに来ないんですかねぇ...

あとちょっとした発見だったのが、"JXUG"の読み方.自分は今まで「じぇーさぐ」だと思っていたのですが、「じぇーざぐ」なんだそうです.

Xamarin(ざまりん)の発音的には「ざぐ」なんでしょうね.



ちょまど、Xamarinへの愛を語る

ちょまどさん初登壇のセッション( *゚▽゚* っ)З

な、ホワイトボードだと...!?
(スタッフの方々のざわつきからしてリハーサル済みではなかったはず...)

ミゲルが攻めで、ナットが受けって話!?(違う)

「ミゲルさんちょーすげぇ人なんです」
「そこでMonoですよ!」
「Novel社いいやつです」

ちょまどさんの愛は伝わってきましたw

Xamarin社の歴史(Microsoftによる買収まで) | ちょ窓帳

内容はすごくわかりやすいです.



600件のプルリクエストから見たXamarinはまりポイント

@issebiさんによるXamarinはまりポイント、主にXamarin.Nativeの内容でした.

いくつかのはまりポイントはOSバージョンや端末に起因するものでしたが、これはモバイルアプリ開発者共通の苦難でしょうか.
(おそらくXamarin固有のバグが引き起こすエラーの事例はなかったはず)

そしてGalaxy、絶対こいつは何かある.



NativeアプリをXamarin.Formsに移植してみた話

吉田さんによるネイティブをFormsに移植する話でした.

Formsはまだほとんど触っていなく、UI回りが不自然にならないかなど気になっていたので非常に参考になる内容でした.

例えばタブを使ったレイアウトの場合、Androidはページのヘッダー部にタブが付くのに対し、iOSはフッター部にタブが付くのですが、どうやらFormsがそれぞれのOSごとによしなに配置してくれるようです.

ただこれで全部解決かというとそうは問屋が卸さないわけで、個別の実装にCustom Rendererは使わざる得ない感じに.

ですが!結果的に約7割を共通化されているということで、これはForms使う価値あるなぁと感じました.

あと個人的に気になっていたリソースの共通化は、Embedded Resourceなるものがあるようなので勉強したいです.



Formsで使えるライブラリやテクニックをご紹介 〜日本酒アプリSakenomyは、Forms製です〜

@AyaseSHさんによるXamarinのテクニックやライブラリのお話しでした.

ListView + Cellは、通常AndroidだとAdapter内部でViewにセットしたIDで分岐処理してViewのリスナーからAdapterのリスナーにコールバック地獄みたいなことを、XamarinだとAction渡せて非常に便利という感じに理解しました.

ここらへんはXamarinというよりはC#の利点って感じですかね?

ライブラリのほうは、Picassoをさらに高機能化したようなFFImageLoadingと、MVVMで課題となるポップアップを解決するACR User Dialogでした.

とくに画像ロード回りをオレオレ実装するのはなかなか辛いと思うのでFFImageLoading使ってみたいです!
(以前AsyncTaskでオレオレ実装したとき辛かった覚えがあります...)



DroidKaigi2016アプリをXamarinに移植してみた話

@amay077さんによるDroidKaigi移植のお話しでした.

代替ライブラリやBindingライブラリなど、試したいものが盛りだくさんだった中で、個人的に一番ツボだったのは、

PercelerをJSONで代替するというTIPSでした.

santea.hateblo.jp

自分も以前、AndroidのPercelableをどうしようか悩んだ末、JSON化するという結論に至ったので、このやり方がアンチパターンじゃないことを知り嬉しかったです!

基本的にネイティブで実装できることはXamarin.Nativeでも実装できるので恐れるべからずですね!



Xamarin実戦投入時に気をつけたいことあれこれ

鈴木さんによる実戦投入時に気をつけたいことのお話しでした.

Xamarinにネイティブの知識は不要かと言われるとそうではないというのは全くの同感でございますw

言語とIDEの知識は「不要と思いたい」とのことでしたが、実際開発を始めるとネイティブのキーワードで調べざるをえない状況が多々あると思うので、必要かな...と思います.

そして.Native VS .Formsですが、これは個人的にはNativeだと思っていまし"た".

UIを作りこもうと思ったら結局 Custom Renderer使わないといけないわけで、ならいっそビジネスロジックだけ共通化したほうが楽じゃないかと思ってたんです.

ですが.Nativeの革新的な発展はこれ以上見込めないと言われると確かにその通りに思われ、「技術的投資価値」は.Formsに軍配が上がると納得しました.

「技術的投資価値」って観点は重要ですね、全部頑張ることは難しいですから;



Porting Windows Forms App to Xamarin.Mac

@ailen0adaさんによるXamarin.Macのお話しでした.

もうプレゼンがすごくて拝聴してて面白くてしょうがなかったですw

Xamarin.Macのお話も興味深かったのですが(Mac開発はしないかなぁ。。。

本筋とは逸れるんですが、このアプリのすごいところは画像特徴量にあるはずなんです!ARGBで表される画像を8Byteに次元削減してるんですからすごいです!

画像サイズに依存しないところを考えるにSHIFT特徴量とか使ってそうだなぁとか思うんですが、想像の域を出ないですね...

ステップバイステップな内容をブログで公開してくださるということなので、特徴量化の部分をぜひ解説頂きたいです!(そこじゃない)



Prism.Formsについて

@okazukiさんによるPrism.Formsのお話しでした.

Prism.Formsは名前の通り、Xamarin.Forms用のMVVMインフラストラクチャのようです.

WPFではLivetを使っていて、.FormsでもLivet使えないかなぁと思っていたので非常に参考になりました.

画面遷移やダイアログ表示をよしなにしてくれるところや、命名規約で紐づけできるのもポイント高いですね!

テンプレートも用意されていてすぐに試せそうなので使ってみようと思います.



Xamarinでもクラウドで監視したい!

@ayasehiroさんによるHockey Appのお話しでした.

タブレットアプリの運用・監視をXamarinでどう行うかという感じでしたが、ここらへんのツールは使ったことがないのであまり感想を書けないです><;

Application Insights が廃止され Hockey App に移行する必要があるようです.

Hockey App はベータテスター用という側面が強いということで、運用では使いづらそうな感触らしいですね.

ネイティブの場合、Adとか運用・保守回りのライブラリも色々あると思いますが、本格的な実装を目指すとなるとXamarinでも欲しくなりますよね.ここらへんのツールが充実するとより実践投入しやすくなりそうです.



20分でできる!Xamarin.Forms入門

@furuya02さんによるXamarin.Forms入門編のお話でした.

各プラットフォームごとの見た目の違いを並べて比較されていたので直観的で分かりやすかったです(.gifで動きがあったので更に良かった!).

WindowsPhoneは色々と特徴的な動きをするようですね(w)、使ったことないのでわかりませんが.

画面遷移のところは、ページが入れ子になっているときにナビゲーションからの遷移なのか、ページからの遷移なのかという感じだと思いましたが合ってますかね?



Enterpriseから見たXamarinの可能性

@nuits_jpさんによるEnterpriseの観点でのXamarinという内容でした.

とりあえず新たに導入を提案したいときはこの資料見せればいいんじゃないですかねw
色々な側面でXamarinを検証しています.

性能面でネイティブに劣らない(むしろ勝る場合もある)というのは大きなセールスポイントになりそうです.
3Dゲームでもない限り対応できそうですね(この場合、ネイティブでもNDKを使うと思うので明らかに差別化できる分野ではあります).

日本コミュニティーの貧弱さは無償化が大きなアクセルになってくれるでしょうし、今後が期待されますね!



Win/Mac/Android/iOS向けクロス開発にXamarinがうまくハマりそうだった話

@_pochiさんによるデスクトップ・モバイルに渡ったクロスプラットフォーム開発のお話しでした.
(完成に至らなかったXamarinプロジェクトの供養らしい)

モバイルでクロスプラットフォーム開発というのはまぁXamarinでは当たり前なんですが、デスクトップアプリとモバイルアプリの両方でクロスプラットフォーム開発という話は初めて聞きました.

これはすごいなぁと思いました.要求される知識分野が広範すぎて(デスクトップもモバイルも両方知ってなきゃいけない)、これこそスーパーXamarin人材ですね...!

デスクトップ & モバイルという対象にはXamarin最強なんじゃないか...?(Qtとかもあるけどどうなんでしょうね...)



Xamarin.Formsでアプリを公開した話

@ticktackmobileさんによるXamarin.Formsアプリ公開のお話しでした.

このアプリのAndroid版にはTwitter上でいくつか気になった点を意見させて頂きました.

.Formsの見た目の調整はやはり大変なようです.

.Formsはプロトタイプ版の開発に親和性が高いとのことでした.これは以前田淵さんもおっしゃっていました.

やっぱそれなりに.Forms辛いのかなぁ...



Xamarin.Forms実践投入してみて

@omanukeさんによるXamarin.Formsの導入前の検討事項といったお話しでした.

Xamarinの光と闇、良い所と悪い所、見た目と挙動など、実際どうなのよ?に答えてくれる内容でした.

見た目に関して、参照できるサンプルが色々あるようで(Evolveなど)参考にしたいと思います.

.Formsの苦労とその解決法が色々載っていたので困ったときのリファレンスにします!



C++からC#までVisual Studio縛り(で死ぬ実験)

@espresso3389さんによるC++が大変だった話でしたw

AndroidiOSもリンクするところで難関があるっぽいですね.

現状、Visual StudioではC#C++共存は厳しいっぽいです.



Xamarin開発環境の選択

@kurosawa0626さんによる開発環境のお話しでした.

MacWindows、Xamarin StudioとVisual Studio、NativeとForms、PCLとSharedを対比されていて、それぞれの良さ悪さが分かりやすかったです.

色々名言がありましたねw

比較的Forms推しが多かった中で黒澤さんはNative推しのようです.
(それだけFormsで苦労されたということでしょうか...;)



感想

ほんとうに内容が盛りだくさんで濃いカンファレンスでした!

登壇者の方々はバギーな乗り物を乗りこなしている感があって本当にすごいと思いました.

これだけの数のLTがあった中で定刻通りに終了できたことは、運営の皆様、登壇者の皆様の進行のすばらしさに尽きると思います.
ありがとうございました.

内容としては、Formsをやってみようと思うようになりました.それぞれにメリット・デメリット(これはFormsに限らずXamarinも)が色々とあると思いますが、「技術的投資価値」という言葉が心に響いたので辛い部分も含めてFormsやってみたいと思います!

自分も1つ作ってみたいものがあるのでまずは手を動かしてみます!

JXUGの皆様、今後ともよろしくお願い致します!!