Fabulous เป็นกรอบ UI ที่ทันสมัยสำหรับการสร้างแอพมือถือข้ามแพลตฟอร์มและแอพเดสก์ท็อปใน. NET
มันมีจุดมุ่งหมายที่จะนำประสบการณ์การพัฒนาที่ยอดเยี่ยมและความมั่นใจในรหัสของคุณโดยการรวมไวยากรณ์ UI ที่แสดงออกมา, สถาปัตยกรรมแบบจำลองการอัปเดต (MVU) ที่เรียบง่ายและแข็งแกร่งและมีประสิทธิภาพและการเขียนโปรแกรมที่ใช้งานได้
เอกสารฉบับเต็มสำหรับ Fabulous สามารถดูได้ที่ docs.fabulous.dev
ลิงค์ที่มีประโยชน์อื่น ๆ :
นอกจากนี้เรายังมีเซิร์ฟเวอร์ Discord ที่ยอดเยี่ยมซึ่งคุณสามารถถามคำถามที่เกี่ยวข้องกับคุณได้
เราเชื่อว่า UI ที่ประกาศการเขียนโปรแกรมที่ใช้งานได้และการจัดการ MVU State นั้นเหมาะอย่างยิ่งสำหรับการพัฒนาแอพ
Fabulous จะช่วยให้คุณสร้างแอพมือถือและเดสก์ท็อปได้อย่างรวดเร็วและด้วยความมั่นใจด้วยการประกาศ UI และสถาปัตยกรรม MVU ทั้งหมดในภาษาเดียว: F# - ภาษาการเขียนโปรแกรมที่ใช้งานได้
Fabulous ยังมีจุดมุ่งหมายที่จะแสดงโดยมีการใช้หน่วยความจำต่ำและกลไกการเปลี่ยนแปลงมุมมองที่มีประสิทธิภาพ
โปรดทราบว่าตัวเอง Fabulous ไม่ได้ให้การแสดงผล UI ใด ๆ คุณจะต้องรวมเข้ากับเฟรมเวิร์กอื่นเช่น:
การพัฒนา UI ทั่วไปอาจเป็นฝันร้ายหากทำไม่ถูกต้อง
โดยทั่วไปจะถูกสร้างขึ้นในที่เดียวจากนั้นกลายพันธุ์ที่นี่และมีความต้องการและสิ่งที่ผู้ใช้กำลังทำ ชิ้นส่วน UI ที่เกี่ยวข้องจบลงในหลายสถานที่ทำให้ยากที่จะนึกถึงความเป็นไปได้ทั้งหมด จนกว่าจะมีเงื่อนไขการแข่งขันหรือข้อผิดพลาดที่หลีกเลี่ยงไม่ได้เนื่องจากการไหลของผู้ใช้ที่ไม่ได้ตั้งใจ
Fabulous ทำให้เหตุผลง่ายขึ้นเกี่ยวกับ UI ด้วย UI ที่ได้รับแรงบันดาลใจจาก Swiftui
UI ของส่วนประกอบถูกกำหนดไว้ในที่เดียวและสุดยอดจะเรียกมันว่าทุกครั้งที่สถานะขององค์ประกอบนั้นเปลี่ยนไป
คุณไม่จำเป็นต้องคิดเกี่ยวกับวิธีการกลายพันธุ์ 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# Records และประเภทสหภาพที่เลือกปฏิบัติ
เมื่อเริ่มต้น 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 มันสามารถทำงานบนอุปกรณ์และแพลตฟอร์มใด ๆ ที่มีประสิทธิภาพมากและมีระบบนิเวศที่กว้างใหญ่ของไลบรารีโอเพนซอร์ซและที่ได้รับใบอนุญาตปลั๊กอินและเฟรมเวิร์กอื่น ๆ
คุณจะได้รับประโยชน์จากระบบนิเวศ. NET โดยใช้แพ็คเกจบุคคลที่สามโดยตรงในแอปพลิเคชันที่ยอดเยี่ยมของคุณ
วิธีที่ง่ายที่สุดในการแสดงการสนับสนุนของคุณคือการให้โครงการเป็นดารา
นอกจากนี้คุณยังสามารถสนับสนุนเราด้วยการเป็นสปอนเซอร์ของเราในโปรแกรมสปอนเซอร์ GitHub
นี่เป็นวิธีที่ยอดเยี่ยมในการสนับสนุนความพยายามทั้งหมดที่จะทำให้ Fabulous เป็นกรอบ UI ที่ดีที่สุดสำหรับ Dotnet
หากคุณต้องการการสนับสนุนดูที่ส่วนการสนับสนุนเชิงพาณิชย์ด้านล่าง
คุณพบข้อผิดพลาดหรือมีข้อเสนอแนะเกี่ยวกับวิธีการปรับปรุงที่ยอดเยี่ยมหรือไม่? เปิดปัญหาและเราจะดูโดยเร็วที่สุด
คุณต้องการมีส่วนร่วมกับ PR หรือไม่? PRS ยินดีต้อนรับเสมอเพียงตรวจสอบให้แน่ใจว่าได้สร้างจากสาขาที่ถูกต้อง (หลัก) และทำตามคู่มือผู้สนับสนุน
สำหรับการเปลี่ยนแปลงที่ใหญ่กว่าหรือหากมีข้อสงสัยให้แน่ใจว่าได้พูดคุยเกี่ยวกับการมีส่วนร่วมของคุณกับทีม ไม่ว่าจะผ่านปัญหาการสนทนาของ GitHub หรือติดต่อกับทีมโดยใช้เซิร์ฟเวอร์ Discord
หากคุณต้องการให้เราให้:
อย่าลังเลที่จะติดต่อเรา: [email protected]