ファビュラスは、.NETでクロスプラットフォームモバイルとデスクトップアプリをクラフトするための最新の宣言的なUIフレームワークです。
表現力豊かなUI構文、シンプルで堅牢なモデルビューアップデート(MVU)アーキテクチャ、および機能プログラミングを組み合わせることにより、コードに対する優れた開発体験と自信をもたらすことを目指しています。
Fabulousの完全なドキュメントは、docs.fabuluals.devにあります。
その他の便利なリンク:
さらに、素晴らしい関連する質問をすることができる素晴らしいDiscordサーバーがあります。
宣言的なUI、機能プログラミング、およびMVU州の管理は、アプリ開発にぴったりだと考えています。
ファビュラスは、宣言的なUIとMVUアーキテクチャのおかげで、モバイルとデスクトップアプリを迅速かつ自信を持って作成するのに役立ちます。
また、Memory消費量が少なく、拡散メカニズムが効率的になることにより、Babulousはパフォーマンスを発揮することを目指しています。
ファビュラス自体はUIレンダリングを提供しないことに注意してください。次のような別のフレームワークと組み合わせる必要があります。
典型的なUI開発は、適切に行わないと悪夢になる可能性があります。
通常、1つの場所で作成され、ユーザーが何をしているかに基づいてあちこちで変異します。関連するUIのピースはいくつかの場所で終わり、すべての可能性を精神的に考えるのが難しくなります。意図しないユーザーの流れによる避けられない人種状態またはバグまで。
ファビュラスは、Swiftuiに触発された宣言的なUIのおかげで、UIについて簡単に推論するのを簡単にします。
コンポーネントのUIは単一の場所で定義され、そのコンポーネントの状態が変更されるたびにFabulousはそれを呼び出します。
UIを変異させる方法について考える必要はありません。ファビュラスは、必要な最新のUIと常に一致するようにそれを処理します。
/// A simple Counter app made with Fabulous.MauiControls
type Model =
{ Count : int }
type Msg =
| Increment
| Decrement
let view model =
Application (
ContentPage (
" Counter app " ,
VStack ( spacing = 16. ) {
Image ( Aspect.AspectFit , " fabulous.png " )
Label ( $ " Count is {model.Count} " )
Button ( " Increment " , Increment )
Button ( " Decrement " , Decrement )
}
)
)
MVUは、それらの州間のすべての州と移行を明示的にしています。
アプリをクラッシュさせる無効な状態につながる可能性のある意図しないアクションを心配する必要はありません。
代わりに、F#レコードと差別された組合タイプを使用して、アプリまたはコンポーネントの状態とそれらの間の移行を非常に簡単にモデル化できます。
開始するとき、ファビュラスは状態を初期化します。次に、メッセージが派遣されている場合、Fabulousは、特定のメッセージを与えられて、ある状態から他の状態への移行を可能にします。
複数のメッセージが同時に受信された場合、Fabulousはそれらをキューにして、状態を適切に更新できるようにします。
let init () =
{ Count = 0 }
let update msg model =
match msg with
| Increment -> { model with Count = model.Count + 1 }
| Decrement -> { model with Count = model.Count - 1 }
そして最後に、MVUの機能的な性質を考えると、アプリケーションのあらゆる可能な状態を解決することは非常に簡単です。
[<Test>]
let ``When clicking the Increment button , increment the count by one`` () =
let previousState = { Count = 10 }
let expectedState = { Count = 11 }
let actualState = App.update Increment previousState
actualState |> should equal expectedState
.NETは、Microsoftによる非常に成熟した広範なフレームワークです。任意のデバイスやプラットフォームで実行でき、非常に効率的で、オープンソースとライセンスのライブラリ、プラグイン、その他のフレームワークの広大なエコシステムがあります。
すばらしいアプリケーションで直接サードパーティパッケージを使用することにより、.NETエコシステムから利益を得ることができます。
あなたのサポートを示す最も簡単な方法は、プロジェクトにスターを与えることです。
GitHub Sponsorsプログラムのスポンサーになることで、私たちをサポートすることもできます。
これは、DotNetの最高の宣言的UIフレームワークを素晴らしいものにするためのすべての努力をサポートする素晴らしい方法です。
サポートが必要な場合は、以下の商業サポートセクションを参照してください。
バグを見つけましたか、それとも素晴らしいものを強化する方法を提案しましたか?問題を開き、できるだけ早くそれを見ていきます。
PRに貢献したいですか? PRSはいつでも大歓迎です。正しいブランチ(メイン)から作成し、寄稿者ガイドに従ってください。
大きな変化のため、または疑わしい場合は、チームへの貢献について必ず話してください。問題、Githubディスカッション、またはDiscordサーバーを使用してチームに連絡するかのいずれかです。
あなたが私たちにあなたに提供してほしいなら:
お気軽にお問い合わせください:[email protected]