Fabulous는 .NET에서 크로스 플랫폼 모바일 및 데스크탑 앱을 제작하기위한 최신 선언 UI 프레임 워크입니다.
표현력 UI 구문, 간단하고 강력한 모델 뷰 업데이트 (MVU) 아키텍처 및 기능 프로그래밍을 결합하여 코드에 대한 훌륭한 개발 경험과 신뢰를 제공하는 것을 목표로합니다.
Fabulous의 전체 문서는 Docs.Fabulous.dev에서 찾을 수 있습니다.
기타 유용한 링크 :
또한 멋진 관련 질문을 할 수있는 멋진 불화 서버가 있습니다.
우리는 선언적 UI, 기능적 프로그래밍 및 MVU 주 관리가 앱 개발에 완벽하게 적합하다고 생각합니다.
Fabulous는 선언적 UI와 MVU 아키텍처 덕분에 모바일 및 데스크탑 앱을 빠르고 자신감을 갖도록하는 데 도움이됩니다. F# - 기능적 프로그래밍 언어.
Fabulous는 또한 메모리 소비가 낮고 효율적인 뷰 차이 메커니즘을 사용하여 수행하는 것을 목표로합니다.
멋진 자체는 UI 렌더링을 제공하지 않습니다. 다음과 같은 다른 프레임 워크와 결합해야합니다.
전형적인 UI 개발은 제대로하지 않으면 악몽이 될 수 있습니다.
그것은 일반적으로 한 곳에서 만들어지며, 필요와 사용자의 수행에 따라 여기저기서 돌연변이됩니다. 관련 UI 조각은 여러 곳에서 끝나서 모든 가능성을 정신적으로 생각하기 어렵게 만듭니다. 의도하지 않은 사용자 흐름으로 인해 피할 수없는 레이스 조건 또는 버그까지.
Fabulous는 Swiftui에서 영감을 얻은 선언적 UI 덕분에 UI에 대해 쉽게 추론 할 수 있습니다.
구성 요소의 UI는 단일 장소로 정의되며 Fabulous는 해당 구성 요소의 상태가 변경 될 때마다 호출합니다.
당신은 UI를 돌연변이하는 방법에 대해 생각할 필요가 없으며, Fabulous는 항상 필요한 최신 UI와 일치 할 수 있도록 처리합니다.
/// 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는 모든 상태와 그 상태 간의 전환을 명시 적으로 만듭니다.
의도하지 않은 작업에 대해 걱정할 필요가 없습니다.
대신, 앱 또는 구성 요소의 상태를 쉽게 모델링하고 F# 레코드와 차별화 된 노조 유형을 사용하여 그들 사이의 전환을 쉽게 모델링 할 수 있습니다.
시작할 때 Fabulous는 상태를 초기화합니다. 그런 다음 메시지가 발송 될 때 Fabulous를 사용하면 특정 메시지가 주어진 한 상태에서 다른 상태로 전환 할 수 있습니다.
여러 메시지가 동시에 수신되면 Fabulous는 상태를 올바르게 업데이트 할 수 있도록 대기합니다.
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 }
마지막으로, MVU의 기능적 특성을 고려할 때, 응용 프로그램의 가능한 모든 상태를 단위 테스트하는 것은 매우 간단합니다.
[<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은 Microsoft의 매우 성숙하고 광범위한 프레임 워크입니다. 모든 장치 및 플랫폼에서 실행될 수 있으며 매우 효율적이며 오픈 소스 및 라이센스 라이브러리, 플러그인 및 기타 프레임 워크의 방대한 생태계가 있습니다.
멋진 응용 프로그램에서 직접 제 3 자 패키지를 사용하여 .NET Ecosystem의 혜택을 누릴 수 있습니다.
우리에게 당신의 지원을 보여주는 가장 간단한 방법은 프로젝트에 스타를 제공하는 것입니다.
Github 스폰서 프로그램의 스폰서가되어 우리를 지원할 수도 있습니다.
이것은 Dotnet을위한 최고의 선언 UI 프레임 워크를 훌륭하게 만드는 모든 노력을 지원하는 환상적인 방법입니다.
지원이 필요한 경우 아래의 상업적 지원 섹션을 참조하십시오.
버그를 찾았거나 멋지게 향상시키는 방법에 대한 제안이 있습니까? 문제를 열면 가능한 빨리이를 살펴 보겠습니다.
PR에 기여하고 싶습니까? PR은 항상 환영합니다. 올바른 분기 (메인)에서 만들고 기고자 안내서를 따르십시오.
더 큰 변화를 보거나 의심스러운 경우 팀에 대한 귀하의 기여에 대해 이야기하십시오. 문제, Github 토론을 통해 또는 Discord 서버를 사용하여 팀에 연락하십시오.
우리가 당신에게 제공하기를 원하시면 :
저희에게 연락하십시오 : [email protected]