(Xamarin の環境をすべて捨てたからの再構築で色々詰まって時間がなくなった... ビルドとかは後回しでコラムチックになります…)
備忘録みたいな内容で間に合わせにもなっていない。。。 各内容は補充していくのでもう少し待っていただければと思います!
概要
せっかく Advent Calendarに登録したから久しぶりに Xamarin.Formsを触ってみます。
4.x になっており最後に触った 3.0(をほんの少し、メインは2.x)に比べてだいぶ進化したのでそのへんの感想を書いていきます。
F100 Community
一番最初にRelease Notesみて気になった言葉。
こんな言葉自体しらなかったので、調べて見ました。(これを調べてたら 時間が無限に消化した)
感想としては
面白いスプリントだと思うし、それをデカデカとやって行こうとオープンにしているのはすごいなと思った。
F100の名前の由来はさておき。(元ネタ)
F100とは Formsには問題がたくさんありますが その問題は小さな、些細な問題の集まりで大きい問題を起こしているというもの。
F100がついたバグは それら問題を細かくしており そのバグの修正をコミュニティのメンバーで行っていました、
もう2年近く行っているのかな?
内容のPullR やIssue を見ると知見が広がって勉強になるので暇なときに眺めてます。
Shellを触る
Shellって何
Navigation, Tabbed, Carousel, MasterDetailという ContentPageの親にあたる Pageがナビゲーションをコントロールしていたが
それらナビゲーションとは違う 全く新しいナビゲーションのコンポーネントなのかな。
見た目はMasterDetailと似ているが Shellは Androidの DrawerLayoutをラップしたもの。習って他のプラットフォームでも実装している。 これのおかげで他のプラットフォームで Drawer使うとか言われたら Xamarin.Forms はありな空気になったと思う。
サンプルを読んで
https://docs.microsoft.com/ja-jp/xamarin/xamarin-forms/app-fundamentals/shell/create#describe-the-visual-hierarchy-of-the-application を見る限り階層は非常にシンプル XAMLでかける用に見えるがサンプルではStyleの実装が長ったらしいので優しくないが、Resourceとして切り出せばいいだけだと思います。
ライフサイクルとか、ナビゲーションとか 調べたいこと多いけど TODO.
実装してみよう
TODO
CollectionViewを触る
TODO
備考
テストしてたら起きたバグ
System.TypeLoadException: 'Could not resolve type with token 01000016 from typeref (expected class 'Xamarin.Forms.Xaml.Diagnostics.VisualDiagnostics' in assembly 'Xamarin.Forms.Xaml, Version=2.0.0.0, Culture=neutral, PublicKeyToken=null')'
ぐぐったら restore したらや bin/obj 消したら直るって出たので 試しに消して再ビルド。するとエラーがたくさん出た。各プロジェクトの パッケージを見たらFormsのバージョンが揃ってなかった。