JaggerJo.Avalonia.FuncUI
0.1.0
Package name was changed.
See the version list below for details.
dotnet add package JaggerJo.Avalonia.FuncUI --version 0.1.0
NuGet\Install-Package JaggerJo.Avalonia.FuncUI -Version 0.1.0
<PackageReference Include="JaggerJo.Avalonia.FuncUI" Version="0.1.0" />
paket add JaggerJo.Avalonia.FuncUI --version 0.1.0
#r "nuget: JaggerJo.Avalonia.FuncUI, 0.1.0"
// Install JaggerJo.Avalonia.FuncUI as a Cake Addin #addin nuget:?package=JaggerJo.Avalonia.FuncUI&version=0.1.0 // Install JaggerJo.Avalonia.FuncUI as a Cake Tool #tool nuget:?package=JaggerJo.Avalonia.FuncUI&version=0.1.0
<img src="github/img/icon.png" width="100"/>
Avalonia.FuncUI
Develop cross-plattform MVU GUI Applications using F# and Avalonia!
About
This library allows you to write cross-plattform GUI Applications entirely in F# - No XAML, but a declarative elm like DSL. MVU (Model-View-Update) architecture support is built in, and bindings to use it with Elmish are also ready to use.
Current State
Should be usable, but expect bugs and some breaking changes. Basically wet paint.
Contributing
Please contribute to this library through issue reports, pull requests, code reviews and discussion.
Getting started
I'm currently working on making this availiable on nuget. Project templates will follow soon.
For now check out the Examples.
Example
Below is the code of a simple counter app (using the Avalonia.FuncUI.Elmish package).
module Counter =
type CounterState = {
count : int
}
let init = {
count = 0
}
type Msg =
| Increment
| Decrement
let update (msg: Msg) (state: CounterState) : CounterState =
match msg with
| Increment -> { state with count = state.count + 1 }
| Decrement -> { state with count = state.count - 1 }
let view (state: CounterState) (dispatch): View =
Views.dockPanel [
Attrs.children [
Views.button [
Attrs.click (fun sender args -> dispatch Increment)
Attrs.content "click to increment"
]
Views.button [
Attrs.click (fun sender args -> dispatch Decrement)
Attrs.content "click to decrement"
]
Views.textBlock [
Attrs.dockPanel_dock Dock.Top
Attrs.text (sprintf "the count is %i" state.count)
]
]
]
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. |
.NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
.NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
.NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
MonoAndroid | monoandroid was computed. |
MonoMac | monomac was computed. |
MonoTouch | monotouch was computed. |
Tizen | tizen40 was computed. tizen60 was computed. |
Xamarin.iOS | xamarinios was computed. |
Xamarin.Mac | xamarinmac was computed. |
Xamarin.TVOS | xamarintvos was computed. |
Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.0
- Avalonia.Desktop (>= 0.8.0)
- FSharp.Core (>= 4.6.2)
NuGet packages (5)
Showing the top 5 NuGet packages that depend on JaggerJo.Avalonia.FuncUI:
Package | Downloads |
---|---|
JaggerJo.Avalonia.FuncUI.DSL
Package Description |
|
JaggerJo.Avalonia.FuncUI.Elmish
Package Description |
|
uxsoft.Avalonia.FuncUI.CEDSL
Package Description |
|
XTargets.FuncUI
Package Description |
|
JaggerJo.Avalonia.FuncUI.Diagnostics
Package Description |
GitHub repositories (1)
Showing the top 1 popular GitHub repositories that depend on JaggerJo.Avalonia.FuncUI:
Repository | Stars |
---|---|
AvaloniaCommunity/Avalonia.Microcharts
simple Avalonia only port of the Microcharts charting library
|
Version | Downloads | Last updated | |
---|---|---|---|
0.6.0-preview4 | 449 | 12/14/2022 | |
0.6.0-preview3 | 5,478 | 10/25/2022 | |
0.6.0-preview2 | 205 | 10/15/2022 | |
0.6.0-preview1 | 205 | 9/9/2022 | |
0.5.3 | 2,987 | 6/5/2022 | |
0.5.2 | 714 | 5/31/2022 | |
0.5.1 | 1,613 | 5/9/2022 | |
0.5.0 | 3,052 | 3/18/2022 | |
0.5.0-beta | 5,983 | 12/22/2020 | |
0.4.1 | 3,471 | 6/13/2020 | |
0.4.0 | 3,653 | 4/4/2020 | |
0.3.0 | 1,275 | 2/9/2020 | |
0.2.2 | 1,053 | 1/24/2020 | |
0.2.1 | 812 | 12/22/2019 | |
0.2.0 | 1,337 | 12/14/2019 | |
0.2.0-beta.1 | 324 | 11/30/2019 | |
0.1.3 | 906 | 7/1/2019 | |
0.1.2 | 718 | 6/30/2019 | |
0.1.1 | 671 | 6/25/2019 | |
0.1.0 | 1,004 | 6/21/2019 |