Git Product home page Git Product logo

fabulous's Introduction

Fabulous

F# Functional App Development, using declarative dynamic UI

Build Status Fabulous.XamarinForms NuGet version Join the chat at https://gitter.im/fsprojects/Fabulous

Never write a ViewModel class again! Conquer the world with clean dynamic UIs!

Fabulous allows you to combine the power of functional programming and the simple Model-View-Update architecture to build any kind of mobile and desktop applications with an expressive, dynamic and clean UI DSL. Go cross-platform with Fabulous for Xamarin.Forms and target iOS, Android, Mac, WPF and more!

Documentation

See also the release notes of the current version and roadmap for the future of Fabulous.

About Fabulous

Fabulous aims to provide all the tools to let you create your own mobile and desktop apps using only F# and the Model-View-Update architecture (shorten to MVU), with a great F# DSL for building dynamic UIs.
The combination of F# and MVU makes for a great development experience.

Note that Fabulous itself does not provide UI controls, so you'll need to combine it with another framework like Xamarin.Forms.

Fabulous for Xamarin.Forms

Fabulous for Xamarin.Forms combines both frameworks with a tailored DSL to let you take advantage of everything Xamarin.Forms has to offer while keeping all the benefits of Fabulous.

With Fabulous for Xamarin.Forms, you will be able to write complete applications in F# like this:

type Model = { Text: string }
type Msg = ButtonClicked

let init () = { Text = "Hello Fabulous!" }

let update msg model =
    match msg with
    | ButtonClicked -> { model with Text = "Thanks for using Fabulous!" }

let view model dispatch =
    View.ContentPage(
        View.StackLayout(
            children = [
                View.Image(source = Image.fromPath "fabulous.png")
                View.Label(text = model.Text)
                View.Button(text = "Click me", command = fun () -> dispatch ButtonClicked)
            ]
        )
    )

Learn more about Fabulous for Xamarin.Forms

Can I use Fabulous with other UI frameworks?

Fabulous is not tied to Xamarin.Forms.
If you want to use your favorite UI framework instead, it's possible.

To help you with that, Fabulous comes with its own code generator, called Fabulous.CodeGen, to automate the creation of a DSL specific to your UI framework.

Learn more about Fabulous.CodeGen

They use Fabulous

Tawasal

Tawasal - www.tawasal.ae

Tawasal is a secure multi-purpose messenger and superapp, offering free voice, text, videoconferencing and lifestyle services to clients around the world.
Learn more about Tawasal

Credits

This repository is inspired by Elmish.WPF, Elmish.Forms and elmish.

fabulous's People

Contributors

timlariviere avatar dsyme avatar sergejdk avatar happypig375 avatar vshapenko avatar cmthre3 avatar mallibone avatar londospark avatar jamessdixon avatar davidglassborow avatar pauldorehill avatar chrisevans9629 avatar nosami avatar lepelican avatar sdaves avatar kerams avatar reigam avatar cmeeren avatar dolfik1 avatar zaid-ajaj avatar x-ji avatar jamesrandall avatar gibranrosa avatar adelarsq avatar zakaluka avatar sanyandreichuk avatar poborin avatar marcelstuder avatar jackalcooper avatar dfarmer avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.