Sabulous-это современная декларативная структура пользовательского интерфейса для создания кроссплатформенных мобильных и настольных приложений в .NET.
Он направлен на то, чтобы принести вам отличный опыт разработки и уверенность в вашем коде, комбинируя выразительный синтаксис пользовательского интерфейса, простой и надежный архитектуру модели View-Update (MVU) и функциональное программирование.
Полную документацию для сказочной можно найти на docs.fabulous.dev.
Другие полезные ссылки:
Кроме того, у нас есть сказочный сервер Discord, где вы можете задать любой из ваших сказочных вопросов.
Мы считаем, что декларативный пользовательский интерфейс, функциональное программирование и управление штатом MVU идеально подходят для разработки приложений.
Sableulous поможет вам быстро и с уверенностью создать мобильные и настольные приложения благодаря декларативному пользовательскому интерфейсу и архитектуре MVU, все на одном языке: F# - функциональный язык программирования.
Сказочный также стремится к исполнению, имея низкое потребление памяти и эффективные механизмы различия в представлении.
Обратите внимание, что Sabulous сам не обеспечивает ни одного рендеринга пользовательского интерфейса. Вам нужно будет объединить его с другой структурой, например:
Типичная разработка пользовательского интерфейса может быть кошмаром, если не сделать должным образом.
Обычно он создается в одном месте, а затем мутировал здесь и там на основе необходимости и того, что делает пользователь. Связанные часы пользовательского интерфейса оказываются в нескольких местах, что затрудняет мысленно думать обо всех возможностях; до неизбежного условия гонки или ошибки из -за непреднамеренного пользовательского потока.
Сказочный облегчает рассуждение об пользовательском интерфейсе благодаря своему декларативному пользовательскому интерфейсу, вдохновленным Swiftui.
Пользовательский интерфейс компонента определяется в одном месте, и сказочный будет называть его каждый раз, когда изменяется состояние этого компонента.
Вам не нужно думать о том, как мутировать пользовательский интерфейс, сказочный справится с вами, чтобы всегда соответствовать последнему пользовательскому интерфейсу.
/// 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# и типы дискриминации профсоюзов.
При запуске сказочный будет инициализировать состояние. Затем, когда сообщения отправляются, сказочные позволит вам перейти от одного состояния к другому, учитывая конкретное сообщение.
Если несколько сообщений будут получены одновременно, сказочные будут стоять в очереди, чтобы позволить вам правильно обновить состояние.
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. Он может работать на любом устройстве и платформе, очень эффективен и имеет обширную экосистему открытых источников и лицензированных библиотек, плагинов и других фреймворков.
Вы сможете извлечь выгоду из экосистемы .NET, используя сторонние пакеты непосредственно в вашем сказочном приложении.
Самый простой способ показать нам, что ваша поддержка - дать проекту звезду.
Вы также можете поддержать нас, став нашим спонсором в программе спонсоров GitHub.
Это фантастический способ поддержать все усилия, предпринимаемые сказочными лучшими декларативными рамками пользовательского интерфейса для Dotnet.
Если вам нужна поддержка, см. Раздел коммерческой поддержки ниже.
Вы нашли ошибку или имели предложение о том, как улучшить сказочные? Откройте проблему, и мы посмотрим на нее как можно скорее.
Вы хотите внести свой вклад в PR? PR всегда приветствуются, просто обязательно создайте его из правильной ветви (Main) и следуйте руководству участников.
Для больших изменений или, если вы сомневаетесь, обязательно рассказать о своем вкладе в команду. Либо через проблему, обсуждение Github, либо обратитесь к команде либо с использованием сервера Discord.
Если вы хотите, чтобы мы предоставили вам:
Не стесняйтесь связываться с нами: [email protected]