窓を作っては壊していた人のブログ

この謎のブログタイトルの由来を知るものはもういないだろう

Xamarin.Forms 3.0.0系のpreがNuGetから取得できるようになりました

ついにvNextである3.0系がNuGetから取得できるようになりました:clap:

www.nuget.org

今までは3.0系やearly-releaseを試す場合はXamarin-ciでビルドされるNuGetパッケージを自分で導入したり(こんな感じでプロジェクトのルートにNuGet.Configを置く方法もあります),Xamarin.Formsのリポジトリをクローンして自前ビルドしたものを使用したりということが必要でしたが,今回のリリースで容易に試すことができるようになりました.

さて,それでは3.0系になると何が追加されるのかを,Releaseのページから少しだけ探っていきましょう.

FlexLayout

最近(2018年2月)のXamarin関連で気になっていること - 窓を作っては壊していた人のブログ

以前にも取り上げましたが,Web系の方におなじみのFlexbox(XFではFlexLayoutと呼称)が追加されます. FlexLayoutは横並びの要素には非常にパワフルに作用し,コンテナに対して何割のサイズで幅を占有するだったり,とある個数のエレメントを均等幅で配置するといったことが容易に行えるようになります.

P3PPP氏がすでに試しているようで,ブログにも試したみた系の記事が載っているようです.

Xamarin.Forms.FlexLayout - ぴーさんログ

私も現在趣味で作っているXamarin.Formsを使ったmacOS向けアプリケーションに導入しています.

CSSサポート

XFはWeb系の人を取り込みたいのか!って感じではありますね. CSSのサポートも今回のリリースから行われます.

こちらについてもP3PPP氏がいい感じにまとめてくださっているので,こちらを参考にしてみてください.

Xamarin.Forms CSS Support - ぴーさんログ

今までは共通の色設定などを以下のリンクのコードのように定義していたのですが TonpeiFes2017/App.xaml at master · yamachu/TonpeiFes2017 · GitHub

これをCSSのファイルにまとめたりすることが出来るようになったので,明確にデザインという工程を分割できそうになるのかなと感じました.

VisualStateManager

こちらはあるコントロールの状態ごとに見た目を変えることが出来るようにする機能です. たとえばフォームのバリデーションを行っていた場合,不正な場合は赤い色でLabelの背景を変えるとか,そういう感じのときに使います.

自分のサーベイ不足かもしれませんが,今までは状態に応じて色を変えたりする場合,ReactivePropertyなどを使ってbool値を受け取りxamlでConverterを通してごにょごにょという手段しか知らなかったので,バリデーションの結果に応じて状態を変えることで見た目も変えることが出来るというのは非常に便利かなと思っています.

これ,使い方によっては上で追加されたCSSと組み合わせられるかしら...要検証ですね.

RTL Support

グローバルなアプリケーションを作成している方にとっては朗報なのではないでしょうか. 企業レベルでXamarin.Formsを採用するとなると,こういうことも出来てほしいという要望はそこそこあるようですし.

ターゲットのバックエンドの追加

WPFGTK,Tizenのバックエンドが追加となりました(macOS普通に使ってるけど,これ以前に追加ってされてましたっけ)

.NETStandardへ移行

こちらNupkgの中身を見てもらうとよくわかると思うのですが,PCLのパッケージが消え,代わりにnetstandard2.0が追加されるようになりました.

それに伴い

Windows Phone 8,8.1のサポート終了

となりました.

このように大きめの機能追加などが取り入れられた3.0系,まだまだ多くのバグの修正や機能追加が含まれています. まだpreではありますが,試してみてはいかがでしょうか.

GitHubのprojectに記載されている残りのタスクはわずかに見えます.

vNext (Target 3.0.0) · GitHub

正式リリースが待ち遠しいですね.