Fabulous est un framework d'interface utilisateur déclaratif moderne pour fabriquer des applications mobiles et de bureau multiplateforme dans .NET.
Il vise à vous apporter une excellente expérience de développement et une grande confiance dans votre code en combinant une syntaxe d'interface utilisateur expressive, l'architecture simple et robuste du modèle-vue-update (MVU) et la programmation fonctionnelle.
La documentation complète de Fabulous peut être trouvée sur docs.fabulous.dev.
Autres liens utiles:
De plus, nous avons le fabuleux serveur Discord où vous pouvez poser l'une de vos fabuleuses questions connexes.
Nous pensons que l'interface utilisateur déclarative, la programmation fonctionnelle et la gestion de l'État MVU sont un ajustement parfait pour le développement d'applications.
Fabulous vous aidera à créer rapidement des applications mobiles et de bureau et en toute confiance grâce à l'interface utilisateur déclarative et à l'architecture MVU, le tout dans une seule langue: F # - un langage de programmation fonctionnelle.
Fabulous vise également à être performant en ayant une faible consommation de mémoire et des mécanismes de difficulté de vue efficaces.
Notez que Fabulous lui-même ne fournit aucun rendu d'interface utilisateur. Vous devrez le combiner avec un autre cadre comme:
Le développement de l'interface utilisateur typique peut être un cauchemar s'il n'est pas fait correctement.
Il est généralement créé à un endroit, puis muté ici et là en fonction du besoin et de ce que l'utilisateur fait. Les pièces d'interface utilisateur connexes se retrouvent à plusieurs endroits, ce qui rend difficile de penser mentalement à toutes les possibilités; jusqu'à l'inévitable condition de course ou bogue en raison d'un flux utilisateur involontaire.
Fabulous facilite la raison de l'interface utilisateur grâce à son interface utilisateur déclarative inspirée de Swiftui.
L'interface utilisateur d'un composant est définie en un seul endroit et fabuleux l'appellera à chaque fois que l'état de ce composant est modifié.
Vous n'avez pas besoin de réfléchir à la façon de muter l'interface utilisateur, Fabulous le gérera pour toujours correspondre à la dernière interface utilisateur dont vous avez besoin.
/// 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 rend chaque état et transition entre ces états explicites.
Vous n'avez pas à vous soucier des actions involontaires qui pourraient conduire à un état non valide qui allait écraser l'application.
Au lieu de cela, vous pouvez très facilement modéliser l'état de votre application ou de votre composant et des transitions entre eux en utilisant des enregistrements F # et des types de syndicats discriminés.
Au début, Fabulous initialisera l'état. Ensuite, lorsque les messages sont envoyés, Fabulous vous permettra de passer d'un état à l'autre étant donné un message spécifique.
Si plusieurs messages sont reçus en même temps, Fabulous les fera la queue pour vous permettre de mettre à jour l'état correctement.
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 }
Et enfin, compte tenu de la nature fonctionnelle de MVU, il est extrêmement simple de tester chaque état possible de votre application.
[<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 est un cadre très mature et large de Microsoft. Il peut fonctionner sur n'importe quel appareil et plate-forme, est très efficace et possède un vaste écosystème de bibliothèques, de plugins et d'autres cadres open-source et sous licence.
Vous pourrez bénéficier de l'écosystème .NET en utilisant des packages tiers directement dans votre fabuleuse application.
La façon la plus simple de nous montrer votre soutien est de donner au projet une étoile.
Vous pouvez également nous soutenir en devenant notre sponsor sur le programme GitHub Sponsors.
C'est un moyen fantastique de soutenir tous les efforts pour faire de Fabulous le meilleur cadre d'interface utilisateur déclaratif pour DotNet.
Si vous avez besoin d'un support, voir la section de support commercial ci-dessous.
Avez-vous trouvé un bug ou avez-vous suggéré comment améliorer Fabulous? Ouvrez un problème et nous y examinerons le plus tôt possible.
Voulez-vous contribuer avec un RP? Les PR sont toujours les bienvenus, assurez-vous de le créer à partir de la bonne branche (principale) et suivez le guide des contributeurs.
Pour des changements plus importants, ou en cas de doute, assurez-vous de parler de votre contribution à l'équipe. Soit via un problème, une discussion GitHub, soit contactez l'équipe à l'aide du serveur Discord.
Si vous souhaitez que nous vous fournissions:
N'hésitez pas à nous contacter: [email protected]