Fabulous es un moderno marco de UI declarativo para elaborar aplicaciones de escritorio y móviles multiplataforma en .NET.
Su objetivo es brindarle una gran experiencia de desarrollo y confianza en su código combinando una sintaxis expresiva de la interfaz de usuario, la arquitectura simple y robusta de View-View-Update (MVU) y la programación funcional.
La documentación completa para Fabulous se puede encontrar en docs.fabulous.dev.
Otros enlaces útiles:
Además, tenemos el fabuloso servidor de discordias donde puede hacer cualquiera de sus fabulosas preguntas relacionadas.
Creemos que la interfaz de usuario declarativa, la programación funcional y la gestión del estado de MVU son perfectas para el desarrollo de aplicaciones.
Fabulous lo ayudará a crear aplicaciones móviles y de escritorio rápidamente y con confianza gracias a la UI declarativa y la arquitectura MVU, todo en un solo idioma: F# - Un lenguaje de programación funcional.
Fabulous también tiene como objetivo ser realizado al tener un bajo consumo de memoria y mecanismos de diferentes vistas eficientes.
Tenga en cuenta que Fabulous en sí no proporciona ninguna representación de UI. Tendrá que combinarlo con otro marco como:
El desarrollo típico de la interfaz de usuario puede ser una pesadilla si no se hace correctamente.
Generalmente se crea en un solo lugar, luego se muta aquí y allá en función de la necesidad y lo que el usuario está haciendo. Las piezas de interfaz de usuario relacionadas terminan en varios lugares, lo que hace que sea difícil pensar mentalmente en todas las posibilidades; hasta la inevitable condición o error de carrera debido a un flujo de usuario involuntario.
Fabulous hace que sea más fácil razonar sobre la interfaz de usuario gracias a su declarante interfaz de usuario inspirada en Swiftui.
La interfaz de usuario de un componente se define en un solo lugar y Fabulous lo llamará cada vez que cambie el estado de ese componente.
No necesitas pensar en cómo mutar la interfaz de usuario, Fabulous lo manejará para que siempre coincidan con la última interfaz de usuario que necesitas.
/// 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 hace que cada estado y transición entre esos estados sean explícitos.
No necesita preocuparse por las acciones involuntarias que podrían conducir a un estado no válido que bloquee la aplicación.
En cambio, puede modelar muy fácilmente el estado de su aplicación o componente y las transiciones entre ellos utilizando registros F# y tipos de uniones discriminados.
Al comenzar, Fabulous inicializará el estado. Luego, cuando se envían mensajes, Fabulous le permitirá hacer la transición de un estado a otro dado un mensaje específico.
Si se reciben varios mensajes al mismo tiempo, Fabulous los pondrá en cola para permitirle actualizar el estado correctamente.
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 }
Y finalmente, dada la naturaleza funcional de MVU, es extremadamente simple probar todos y cada uno de los estados posibles de su aplicación.
[<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 es un marco muy maduro y amplio de Microsoft. Puede ejecutarse en cualquier dispositivo y plataforma, es muy eficiente y tiene un vasto ecosistema de bibliotecas, complementos y otros marcos de código abierto y con licencia.
Podrá beneficiarse del ecosistema .NET utilizando paquetes de terceros directamente en su fabulosa aplicación.
La forma más sencilla de mostrarnos su apoyo es al darle una estrella al proyecto.
También puede apoyarnos convirtiéndose en nuestro patrocinador en el programa de patrocinadores de GitHub.
Esta es una forma fantástica de apoyar todos los esfuerzos para hacer fabulosos el mejor marco de interfaz de usuario declarativo para Dotnet.
Si necesita soporte, consulte la sección de soporte comercial a continuación.
¿Ha encontrado un error o tiene una sugerencia de cómo mejorar la fabulosa? Abra un problema y lo echaremos un vistazo lo antes posible.
¿Quieres contribuir con un PR? Los PR siempre son bienvenidos, solo asegúrese de crearlo desde la rama correcta (principal) y siga la guía de contribuyentes.
Para cambios más grandes, o si está en duda, asegúrese de hablar sobre su contribución al equipo. Ya sea a través de un problema, discusión de GitHub o comunicarse con el equipo utilizando el servidor Discord.
Si desea que le proporcionemos:
No dude en contactarnos: [email protected]