Awesome
Awesome .NET MAUI ![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)
.NET Multi-platform App UI (.NET MAUI) is a cross-platform framework for creating native mobile and desktop apps with C# and XAML. Using .NET MAUI, you can develop apps that can run on Android, iOS, macOS, Windows and Tizen from a single shared code-base.
Here you can find a curated list of awesome .NET MAUI libraries and resources. Contributions are always welcome!
<p align="center"> <img alt="Stars" src="https://img.shields.io/github/stars/jsuarezruiz/awesome-dotnet-maui?style=flat-square&color=blue" /> <img alt="Forks" src="https://img.shields.io/github/forks/jsuarezruiz/awesome-dotnet-maui?style=flat-square&color=green" /> <img alt="Last Commit" src="https://img.shields.io/github/last-commit/jsuarezruiz/awesome-dotnet-maui?style=flat-square" /> </p>Contents
- Books: Books written about MAUI.
- Samples: Sample apps and projects.
- Workshops: Workshops and guides.
- Tools: Tooling for development.
- Blazor: Blazor specific resources.
- UI: Components and UI helpers or libraries.
- Plugins: All other repositories.
Books
Name | Date | Author | Description |
---|---|---|---|
.NET MAUI Cross-Platform Application Development | March 2024 | Roger Ye | You’ll gain all the knowledge needed to create a cross-platform application for Android, iOS, macOS, and Windows following an example project step by step. As you advance, you’ll integrate the latest frontend technology into your app using Blazor components, including the new Blazor Bindings feature. After this, you’ll learn how to test and deploy your apps. |
.NET MAUI Projects | February 2024 | Michael Cummings, Daniel Hindrikes, Johan Karlsson | Progressing in complexity, the projects guide you through creating apps, ranging from a location tracker and weather map to machine learning and multiplayer games. Further, the book will take you through modern mobile development frameworks such as SQLite, .NET Core, and ML.NET, empowering you to customize your apps for Windows, macOS, Android, and iOS platforms for native-like performance. |
.NET MAUI in Action | July 2023 | Matt Goldman | .NET MAUI in Action shows you how you can use the cutting-edge MAUI framework to write apps that will run on Windows, Android, macOS, and iOS platforms using your existing .NET development skills. This book reveals essential MAUI development techniques through hands-on example applications in every chapter. |
.NET MAUI for C# Developers: Build cross-platform mobile and desktop applications | March 2023 | Jesse Liberty, Rodrigo Juarez | The book starts with the fundamentals and quickly moves on to intermediate and advanced topics on laying out your pages, navigating between them, and adding controls to gather and display data. You'll explore the key architectural pattern of Model-View-ViewModel: and ways to leverage it. You'll also use xUnit and NSubstitute to create robust and reliable code. |
Enterprise Application Patterns using .NET MAUI | September 2022 | Michael Stonis | This book is for .NET MAUI developers that are already familiar with the framework, but that are looking for guidance on architecture and implementation when building enterprise applications. This book can help developers solve common problems using tried and true patterns. |
Samples
Name | Description | Stars | Activity |
---|---|---|---|
Official .NET MAUI Samples | Official .NET MAUI Samples from the .NET MAUI Team! | ||
Official Code Samples | Official .NET MAUI Code Samples from documentation and across official repos. | ||
.NET Podcasts | .NET Conf 2021 and Microsoft Build 2022 showcase app. | ||
AStore App | AStore is a simple e-commerce app built with .NET MAUI. Uses MVVM architecture. UI built with XAML. | ||
BMI Calculator | A simple and gorgeous BMI Calculator built using .NET MAUI and Skia Sharp. Inspired by Dribble design. | ||
HackerNews | A .NET MAUI app for displaying the top posts on Hacker News that demonstrates text sentiment analysis gathered using artificial intelligence. | ||
Maui Planets | Planets Mobile App UI built using .Net Maui. Implements the Dribbble design. | ||
Maui Premier League | .NET Conf 2022 Korea by .NET Dev showcase app. CollectionView and simple UI design. | ||
MauiSamples | .NET MAUI samples (.NET MAUI Paint, .NET MAUI Blazor Photo gallery, Kanban board and more). | ||
MauiScientificCalculator | A simple scientific calculator built using .NET MAUI. | ||
Maui Tube Player | A REAL and BEAUTIFUL Youtube Clone app built using .Net Maui. Lots of features such as connecting to real Youtube API, Search and Playback functionality, Download Video for Offline Viewing and amazing UI design. | ||
More .NET MAUI Samples | .NET MAUI samples. | ||
MyFinance App | It is a beautifully designed Finance application for .NET MAUI Markup(No XAML) enthusiasts. Made with FmgLib.MauiMarkup. | ||
NightClub | Build a highly colorful music application step-by-step! 💃🏾🕺🏻🪩 Uses C# Markup (i.e. no XAML), MVVM & MediaElement. | ||
Sharing.WebBlazor.MauiHybrid | This repo is demoing how to code share pages, routes, component branding & most importantly authentication flow/authorization rules (with Auth0). For a web portal for browser access and a native iOS/Android mobile app using MAUI Hybrid | ||
SOS App | A cross-platform app that allows the user to send an SOS message with their location to a saved phone number in times of distress. Uses Appwrite, Twilio, and Radar. | ||
Soferity: Game Portal | Soferity: Game Portal is a game hub. It allows you to have a fun and good time with the various types of games it offers. | ||
Swashbuckler Diary | An open source cross-platform local diary app using MAUI Blazor. | ||
V2ex.MAUI | A multi-platform, user-friendly, and feature-rich V2ex native application made by MAUI. | ||
WeatherTwentyOne | Microsoft Build 2021 showcase app. |
Workshops
Name | Description | Stars | Activity |
---|---|---|---|
.NET MAUI Workshop | A full day workshop (.NET MAUI Workshop in a Box) on how to build apps with .NET MAUI for iOS, Android, macOS, and Windows. | ||
Taller .NET MAUI | Taller de desarrollo de aplicaciones con .NET MAUI (Spanish content). |
Tools
Name | Description | Stars | Activity |
---|---|---|---|
.NET MAUI Check tool | NET MAUI Check tool. | ||
.NET MAUI UI Testing | NET MAUI UI Testing tool. | ||
DotNet.Meteor | The .NET Meteor allows you to build, debug .NET 6 / .NET 7 apps and deploy them to devices or emulators. | ||
MAUI App Accelerator | A Visual Studio extension to accelerate the creation of new .NET MAUI apps using a wizard-based UI. | ||
MAUI Designer | A small project to be able to preview XAML changes into MAUI view, and later add drag and drop functionality to create MAUI UI. | ||
MemoryToolkit.Maui | A developer toolkit for detecting, diagnosing, and mitigating memory leaks in .NET MAUI applications. | ||
Shiny Templates | A dotnet new template for .NET MAUI that helps wireup over 60 community plugins and libraries |
Blazor
Name | Description | Stars | Activity |
---|---|---|---|
Bit Platform | Ready to use project templates plus UI components focused on Blazor WASM/Hybrid(MAUI) that are extremely fast yet lightweight. | ||
BlazorBindings.Maui | Use Blazor syntax to build native MAUI applications. | ||
BlazorUI | UI Framework and component library for Blazor based Websites and Maui projects. | ||
Cropper.Blazor | <b>Cropper.Blazor</b> is a component that wraps around <a href="https://github.com/fengyuanchen/cropperjs"><b>Cropper.js</b></a> for cropping images in Blazor. Support Blazor Server, Blazor WebAssembly, Blazor Server Hybrid with MVC and MAUI Blazor Hybrid. Demo. | ||
MASA.Blazor | Blazor component library based on Material Design. Support Blazor Server and Blazor WebAssembly. | ||
Radzen.Blazor | Robust Blazor component library supporting WASM and Server and multiple themes. Also available is a WYSIWIG desktop application (Radzen Blazor Studio) with auto-CRUD builders. Freemium options for additional themes and functionality. | ||
Taiizor.Essentials.Blazor | Taiizor.Essentials.Blazor is a essentials library for projects using .NET Blazor. It provides convenience with various functions it offers. |
UI
Name | Description | Stars | Activity |
---|---|---|---|
.NET MAUI Community Toolkit | The .NET MAUI Community Toolkit is a community-created library that contains .NET MAUI Extensions, Advanced UI/UX Controls, Effects, and Behaviors to help make your life as a .NET MAUI developer easier. | ||
AcrylicView.MAUI | Acrylic creates a translucent texture. | ||
AiForms.Maui.SettingsView | This is a flexible TableView specialized in settings for Android / iOS. | ||
AlohaKit | A set of .NET MAUI drawn controls. | ||
AppActions.Icons.Maui | A .NET MAUI library that provides some default icons for AppActions without having to create your own. | ||
Breadcrumb | This is a breadcrumb navigation control that is complete automatic and uses the Navigation stack and page titles to generate the breadcrumbs. It's also 100% accessible by default. | ||
CarouselView.Maui | CarouselView controls for .NET MAUI migrated from CarouselView.FormsPlugin for Xamarin. | ||
CompiledBindings | A library that provides {x:Bind} Markup Extension for WPF, MAUI and Xamarin Forms | ||
Controls.Userdialogs.Maui | A cross platform library that allows you to call for native user dialogs, which can by styled from your maui application anywhere anytime. Inspired by Allan Ritchie's Acr.UserDialogs.(https://github.com/Alex-Dobrynin/Controls.UserDialogs.Maui) | ||
MPowerKit.Popups | .NET MAUI custom popups library which allows you to open MAUI pages as a popup. Also the library allows you to use very simple and flexible animations for showing popup pages. Inspired by Rg.Plugins.Popup and Mopups, but implementation is completely different. | ||
DevExpress .NET MAUI Controls | A set of free .NET MAUI components including Charts, Data Grid, Scheduler, CollectionView and more | ||
dotMorten.Maui.AutoSuggestBox | Represents a text control that makes suggestions to users as they type. | ||
DrawnUi.Maui | Rendering engine to draw your UI on a Skia canvas, with gestures and animations, designed to draw pixel-perfect custom controls instead of using native ones, powered by SkiaSharp😍. | ||
EntityViews | This project generates ViewModels based on the models of the application using source generators. | ||
EZCharts.Maui.Donut | Rendering donut charts in .NET MAUI just got a whole lot easier!. | ||
FluidNav | Fluid nav is an experimental alternative to maui Shell it also uses a URI-based navigation experience that uses routes to navigate to any page in the app, it helps to build soft transitions between views. | ||
FmgLib.MauiMarkup | It provides developers with a straightforward and flexible approach to building user interfaces using C# code. | ||
FunctionZero.Maui.Controls | Fast and highly customisable virtualizing ListView and TreeView. | ||
GalleryCarousel | Simple and flexible animated carousel for .NET MAUI. | ||
Indiko.Maui.Controls.Markdown | The MarkdownView component is a versatile and customizable Markdown renderer designed for MAUI.NET applications. It allows developers to display Markdown-formatted text within their MAUI.NET applications, providing a rich text experience. | ||
LiveCharts2 | Simple, flexible, interactive & powerful charts, maps and gauges. | ||
Manuela | Manuela is a productivity framework for Maui; it is a quick way to get things done. | ||
Mapbox | A dedicated library and starting sample for integrating Mapbox into your MAUI application. | ||
Mapsui | Mapsui is a .NET Map component. | ||
Material.Components.Maui | Material You Components for .NET MAUI. | ||
MauiAnimation | Is a library designed for .NET MAUI that aims to facilitate the use of animations to developers. | ||
Maui.ColorPicker | Color Picker Control for .NET MAUI powered by SkiaSharp. | ||
Maui.Controls.BottomSheet | A simple customizable Bottom Sheet control built using .NET MAUI. | ||
Maui.Controls.RatingView | A simple and customizable Rating View control for use with .NET MAUI Apps. | ||
Maui.DataGrid | DataGrid library for .NET MAUI applications. | ||
MAUI.FreakyControls | FreakyControls is a free OSS UI Kit for .NET MAUI which provides a set of controls and utilities to build modern mobile apps. | ||
Maui.FreakyEffects | FreakyEffects is an effects kit for .NET MAUI which provides a set of effects and utilities to build modern mobile apps. | ||
MauiIcons | Fluent & Material is a Library to Resolves Icons or Font Icon Management on .Net Maui by Providing Controls with Complete Material Icon Collection Built into Library. | ||
Maui.Markup | The .NET MAUI Markup Community Toolkit is a collection of Fluent C# Extension Methods that allows developers to continue architecting their apps using MVVM, Bindings, Resource Dictionaries, etc., without the need for XAML. | ||
Maui.NeoControls | Controls for .NET MAUI based on neumorphism tendency. | ||
Maui.NullableDateTimePicker | The Nullable DateTimePicker is a custom calendar control for selecting a nullable date and time value in a .NET MAUI application. | ||
MauiPane | .NET MAUI Layouts Library. | ||
maui-ratingcontrol | Simple rating control using a Font in .NET MAUI. | ||
Maui.VirtualListView | A slim ListView implementation for .NET MAUI that uses Platform virtualized lists / collections. | ||
MPowerKit.VirtualizeListView | MAUI Virtualize ListView with smooth scrolling and without platform-specific code. It works on all platforms MAUI supports and it has the same behavior on all platforms. | ||
MPowerKit.TabView | Fully customizable .NET MAUI TabView. It is written without native code and it is fully compatible with all platforms MAUI supports. | ||
Maui.UITesting | Experimenting with UI Testing approaches for .NET / MAUI. | ||
Maui.zBind | A .NET MAUI library that allows DataBinding to expressions. | ||
Microsoft.Maui.Graphics | Microsoft.Maui.Graphics is a cross-platform graphics library for iOS, Android, Windows, macOS, Tizen and Linux completely in C#. | ||
Microsoft.Maui.Graphics.Controls | Experimental Microsoft.Maui.Graphics.Controls - Build drawn controls (Cupertino, Fluent and Material). | ||
Microsoft.Maui.Platform.Channels | A simple bridge for messaging between .NET and iOS/MacCatalyst/Android Platforms at runtime. | ||
Nalu.Maui.Navigation | Shell-based navigation abstraction which handles IDisposable , provides navigation guards, and simplifies passing parameters. | ||
OverFlower | Endless scroller control for .NET MAUI. | ||
OxyPlot.Maui.Skia | This repository contains the Maui implementation with SkiaSharp. | ||
PINView.Maui | PINView is .NET Maui cross platform UI control to facilitate UI for mobile PIN (MPIN), OTP or Verification Code entry. | ||
Plugin.SegmentedControl.Maui | This library provides a segmented control for .NET MAUI apps using native platform APIs. | ||
SegmentedViews | Powerful segmented view for MAUI. | ||
SharpConstraintLayout | This is a C# port of ConstraintLayout, it convert constraintlayout.core and create ConstraintLayout for dotnet UI framework. Now, you can use ConstraintLayout in C# world. | ||
Sharpnado.Tabs | Pure MAUI and Xamarin.Forms Tabs, including fixed tabs, scrollable tabs, bottom tabs, badge, segmented control, custom tabs, button tabs, bendable tabs. | ||
Sharp.UI | C# Code Markup Library for .NET MAUI: UI Development with Fluent Methods and Hot Reload (VS Code and VS2022) | ||
SimpleToolkit | SimpleToolkit is a .NET MAUI library of helpers and simple, easily customizable controls. | ||
StateButton | With this control, you are able to create any style of button. This is possible as it acts as a wrapper to your XAML and provides you the events/ commands and properties to bind to. It exposes a State property that allows you to style the button differently depending if its Pressed or NotPressed . It's also 100% accessible by default. | ||
Switch | A control that allows you to design any type of switch/ toggle for .NET MAUI. It's also 100% accessible. | ||
The49.Maui.BottomSheet | Maui.BottomSheet is a .NET MAUI library used to display pages as Bottom Sheets. | ||
The49.Maui.ContextMenu | Maui.ContextMenu is a .NET MAUI library for Android and iOS used to open a native context menu on long press. | ||
UraniumUI | Uranium is a Free & Open-Source UI Kit for MAUI. It provides a set of controls and utilities to build modern applications. | ||
Vapolia.UserInteraction | Blocking user interactions from anywhere: bottom menu, blocking wait indicator, confirmation prompts and alerts, simple inputs. With full control of the behavior. For both Maui and Xamarin. | ||
Xamarin.Forms.Skeleton | A library that provides skeleton/ shimmer controls for activity indication. Targets Xamarin and MAUI | ||
XCalendar | A plugin for Xamarin Forms and .NET MAUI providing a completely customisable calendar control with complex functionality. |
Plugins
Name | Description | Stars | Activity |
---|---|---|---|
.NET Community Toolkit | MVVM Source Generators, validators, performance, and so much more! | ||
.NET MAUI Community Toolkit | The .NET MAUI Community Toolkit is a collection of common elements for development with .NET MAUI that people tend to replicate across multiple apps. | ||
.NET MAUI Community Toolkit Markup | The .NET MAUI Markup Community Toolkit is a community-created library that contains Fluent C# Extension Methods to easily create your User Interface in C# | ||
.NET Templates | .NET Templates like Onion architecture cross-platform application and all iOS Extensions for .NET MAUI. | ||
Aptabase.Maui | Analytics for .NET MAUI Apps. 100% Open Source, Privacy-Friendly and Simple. | ||
BarcodeScanning.Native.Maui | Barcode scanning library based on native platform APIs for barcode detection: Google ML Kit, Apple Vision framework | ||
BindableProps | This library helps you to reduce writing boilerplate code when creating your custom UI components. | ||
Camera.MAUI | A Camera View control and a Barcode Endode/Decode control (based on ZXing.Net) for .NET MAUI applications. | ||
CameraScanner.Maui | This library offers camera preview and barcode scanning functionality for .NET MAUI apps using native platform APIs with Google ML Kit and Apple Vision framework. | ||
Docutain SDK | Cross platform SDK including Document Scanner, Barcode Scanner, Textrecognition (OCR), Dataextraction and PDF creation. | ||
DrasticMaui | .NET MAUI Helper Library. | ||
elmah.io for MAUI | Best error logging and uptime monitoring for .NET | ||
Epoxy | A .NET XAML Model-View-ViewModel data-bindable infrastructure library, independent flexible API sets. | ||
InAppBilling | Cross-platform in-app purchases and subsciptions for your apps. | ||
LocalizationResourceManager.Maui | Enhanced .NET MAUI version of the Xamarin Community Toolkit LocalizationResourceManager. | ||
MaterialColorUtilities.Maui | Material You dynamic theming | ||
Maui.BindableProperty.Generator | Source generator that automatically transforms fields into BindableProperties that can be used in MAUI. | ||
MauiBinding | MauiBinding converts native android and ios sdk to Maui binding library. | ||
Maui.DataForms | Set of libraries for easily creating validable data entry forms in .NET MAUI. DataForms can be created from strongly typed model classes, dynamically at runtime, or deserialized from JSON sent from an API call. | ||
Maui.Plugins.PageResolver | A simple and lightweight page resolver for use in .NET MAUI projects. | ||
MauiReactor | MauiReactor is a MVU UI framework built on top of MAUI. | ||
MauiShakeDetector | Maui Shake Detector is Shake Event Detector Library Which Detects Shake Event from Android, iOS and etc. with Options to Customize the Shake Gforce and Shake Intervals and Haptics and Haptics Duration and etc. | ||
MauiAudio | An Audio Plugin in MAUI with native control. | ||
MauiSettings | A nuget to improve settings storage (locally and eventually in the cloud) on .NET MAUI projects. | ||
Mavvm | mavvm is a framework for .NET MAUI and Shell. It allows you to use the MVVM architecture you know and love from Xamarin applications with minimal configuration and overhead. | ||
Mvvm.Nucleus.Maui | Light MVVM Framework build using industry standards. Includes viewmodel registration, navigation, lifecycles events and popups. Build to be a simpler alternative to PRISM. | ||
MPowerKit.Lottie | .NET MAUI and .NET Native Lottie animations library that parses Adobe After Effects animations exported as json with Bodymovin and renders them natively! | ||
MPowerKit.Navigation | .NET MAUI MVVM navigation framework. This library brings you the same principle for navigation through the MAUI app as Prism, but has absolutely different implementation and a bit improved performance. It also brings proper way to handle 'System back button' click, it works and has same behavior for all platforms. Has such features as regions, popups and navigation. | ||
MPowerKit.ImageCaching.Nuke | Image caching library for .NET MAUI iOS and MacCatalyst based on Kean's Nuke native library. | ||
Xamarin.Controls.ImageCropper | Simple crossplatform MAUI / Xamarin image cropper, you can use it in Xamarin.Forms, Xamarin native and MAUI. | ||
New Relic MAUI Plugin | This plugin allows you to instrument .NET MAUI mobile apps with help of native New Relic Android and iOS Bindings. The New Relic SDKs collect crashes, network traffic, and other information for hybrid apps using native components. | ||
NLog.Targets.MauiLog | NLog Target for debugging on MAUI / Xamarin Mobile Platforms. | ||
Nuke MAUI | The AvantiPoint Nuke Maui library is an extension library for Nuke Build for developers writing DotNet Maui applications. | ||
PersianUIControlsMaui | Persian Calendar & some other controls for .NET MAUI | ||
Plugin.FirebasePushNotifications | Receive and handle firebase push notifications in .NET MAUI apps | ||
Plugin.LocalNotification | The local notification plugin provides a way to show local notifications from Xamarin.Forms / .Net MAUI apps. | ||
Plugin.Maui.AppRating | An easy way to quickly add store rating reviews to your .Net MAUI app. | ||
Plugin.Maui.Audio | Plugin.Maui.Audio provides the ability to play audio inside a .NET MAUI application. | ||
Plugin.Maui.AudioRecorder | This plugin provides functionality to record audio and transcribe spoken text into written format in real-time, while saving the audio file. | ||
Plugin.Maui.Biometric | A biometric plugin for .NET MAUI. | ||
Plugin.Maui.DebugOverlay | Provides a simple ribbon to indicate the app is running in Debug mode. | ||
Plugin.Maui.DebugRainbows | Adds some nice colorful debug modes to your ContentPages or specific visual elements that let you immediately see where all of your elements are located!. | ||
Plugin.Maui.FormsMigration | Provides helpers to make your transition from Xamarin.Forms to .NET MAUI easier. | ||
Plugin.Maui.ScreenBrightness | Plugin.Maui.ScreenBrightness provides the ability to get or set the screen brightness inside a .NET MAUI application. | ||
Plugin.Maui.ScreenSecurity | Safeguard your .NET MAUI app effortlessly by preventing content exposure, screenshots, and recordings with ease. | ||
Plugin.Maui.UITestHelpers | Provides a set of helpers to support UI testing your .NET MAUI app with Appium and migration from Xamarin.UITest to Appium. | ||
Prism.Maui | Prism is a framework for building loosely coupled, maintainable, and testable XAML applications in WPF, Xamarin Forms, and Uno / Win UI Applications.. | ||
ReactiveProperty | ReactiveProperty provides MVVM and asynchronous support features under Reactive Extensions. | ||
Sentry.Maui | Sentry is an error tracking service, and has an integration for .NET MAUI. It includes automatic breadcrumbs for MAUI app lifecycle and UI events, and native crash reporting for Android apps. | ||
Shiny .NET | Shiny offers a ton of features & plugins for BLE Client & Hosting, BLE Beacons, Local & Push Notifications, Periodic Jobs, Background GPS, Geofencing, Motion Activity Recognition, NFC, HTTP Background Uploads & Downloads, and more - Compatible with Classic Xamarin & .NET MAUI | ||
Shiny Mediator | Shiny Mediator brings a mediation pattern to your .NET MAUI & Blazor applications with some nice "out of the box" middleware to help supercharge your architecture | ||
SkiaSharp | Cross-platform 2D graphics API for .NET including .NET MAUI views | ||
Taiizor.Essentials.Maui | Taiizor.Essentials.Maui is a essentials library for projects using .NET MAUI. It provides convenience with various functions it offers. | ||
The49.Maui.MaterialSwitch | Adds the ability to use Material 3 switches on Android instead of the default switch. | ||
ZXing.Net.MAUI | Barcode Scanning for .NET MAUI. The successor to ZXing.Net.Mobile. |