Fabulous é uma estrutura de interface do usuário declarativa moderna para a criação de aplicativos móveis e de desktop em plataforma cruzada no .NET.
Ele pretende trazer a você uma ótima experiência de desenvolvimento e confiança em seu código, combinando uma sintaxe expressiva da interface do usuário, a arquitetura simples e robusta da visualização modelo (MVU) e a programação funcional.
A documentação completa para fabulosa pode ser encontrada em docs.fabulous.dev.
Outros links úteis:
Além disso, temos o fabuloso servidor Discord, onde você pode fazer qualquer uma de suas perguntas fabulosas relacionadas.
Acreditamos que a interface declarativa, a programação funcional e o gerenciamento do estado da MVU são um ajuste perfeito para o desenvolvimento de aplicativos.
O Fabulous ajudará você a criar aplicativos móveis e desktop rapidamente e com confiança graças à interface do usuário declarativa e à arquitetura MVU, tudo em um único idioma: F# - um idioma de programação funcional.
Fabulous também pretende ser performente, tendo baixo consumo de memória e vistas eficientes, mecanismos difíceis.
Observe que o Fabulous em si não fornece nenhuma renderização da interface do usuário. Você precisará combiná -lo com outra estrutura como:
O desenvolvimento típico da interface do usuário pode ser um pesadelo se não for feito corretamente.
Geralmente é criado em um só lugar, depois mutado aqui e ali com base na necessidade e no que o usuário está fazendo. As peças da interface do usuário relacionadas acabam em vários lugares, dificultando pensar mentalmente em todas as possibilidades; até a inevitável condição de corrida ou bug devido a um fluxo de usuário não intencional.
Fabulous facilita o raciocínio sobre a interface do usuário, graças à sua interface do usuário declarativa inspirada em Swifttu.
A interface do usuário de um componente é definida em um único local e Fabulous o chama sempre que o estado desse componente é alterado.
Você não precisa pensar em como muta a interface do usuário, Fabulous lidará com isso para você sempre corresponder à UI mais recente de que precisa.
/// 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 )
}
)
)
A MVU torna explícita todos os estados e a transição entre esses estados.
Você não precisa se preocupar com ações não intencionais que possam levar a um estado inválido que travaria o aplicativo.
Em vez disso, você pode modelar com muita facilidade o estado do seu aplicativo ou componente e as transições entre eles usando registros F# e tipos de sindicatos discriminados.
Ao começar, Fabulous inicializará o estado. Então, quando as mensagens estão sendo despachadas, Fabulous permitirá que você faça a transição de um estado para o outro, dada uma mensagem específica.
Se várias mensagens forem recebidas ao mesmo tempo, Fabulous fará fila para permitir que você atualize o estado corretamente.
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 }
E, finalmente, dada a natureza funcional da MVU, é extremamente simples testar todo e qualquer estado possível do seu aplicativo.
[<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 é uma estrutura muito madura e ampla da Microsoft. Ele pode ser executado em qualquer dispositivo e plataforma, é muito eficiente e possui um vasto ecossistema de bibliotecas, plugins e outras estruturas de código aberto e licenciado.
Você poderá se beneficiar do ecossistema .NET usando pacotes de terceiros diretamente em seu aplicativo fabuloso.
A maneira mais simples de nos mostrar seu apoio é dar ao projeto uma estrela.
Você também pode nos apoiar, tornando -nos nosso patrocinador no programa de patrocinadores do GitHub.
Esta é uma maneira fantástica de apoiar todos os esforços para tornar fabuloso a melhor estrutura de interface do usuário declarativa para o Dotnet.
Se você precisar de suporte, consulte a seção de suporte comercial abaixo.
Você encontrou um bug ou tem uma sugestão de como melhorar fabuloso? Abra um problema e daremos uma olhada nele o mais rápido possível.
Você quer contribuir com um PR? Os PRs são sempre bem -vindos, apenas certifique -se de criá -lo a partir da filial correta (principal) e siga o guia do colaborador.
Para mudanças maiores, ou em caso de dúvida, não deixe de falar sobre sua contribuição para a equipe. Por meio de um problema, discussão do github ou entre em contato com a equipe usando o servidor Discord.
Se você gostaria que nós lhe forneçamos:
Sinta -se à vontade para entrar em contato conosco: [email protected]