Awesome
<img src="./images/logo_with_background.svg" width="40" height="25"> SimpleToolkit
SimpleToolkit is a .NET MAUI library of helpers and simple, easily customizable controls.
The library consists of these NuGet packages:
-
SimpleToolkit.Core - set of simple .NET MAUI controls and helpers
-
SimpleToolkit.SimpleShell - simplified implementation of .NET MAUI
Shell
I have split the content of this library into multiple NuGet packages because there may be people who want to use only the SimpleShell
control, for example, and do not want to use other controls.
[!CAUTION] Long-term support is not guaranteed. However, this repository is released under the MIT license, so you can always fork the repository and build the packages yourself.
Samples
Here are some of my samples that were built using this library:
<p align="center"> <img src="https://raw.githubusercontent.com/RadekVyM/MarvelousMAUI/main/images/android_illustrations_20.gif" width="230" /> <img src="https://raw.githubusercontent.com/RadekVyM/MarvelousMAUI/main/images/iphone_wonders_transitions_20.gif" width="239" /> </p> <p align="center"> <a href="https://github.com/RadekVyM/MarvelousMAUI"><em>Marvelous .NET MAUI</em></a> </p> <p align="center"> <img src="https://raw.githubusercontent.com/RadekVyM/Gadgets-Store-App/main/samples/ios_gadgets_store_app.gif" width="239" /> <img src="https://raw.githubusercontent.com/RadekVyM/Bet-App/main/Images/ios_betapp.webp" width="236" /> </p> <p align="center"> <a href="https://github.com/RadekVyM/Gadgets-Store-App"><em>Gadget Store App</em></a> | <a href="https://github.com/RadekVyM/Bet-App"><em>Bet App</em></a> </p> <p align="center"> <img src="https://raw.githubusercontent.com/RadekVyM/Navbar-Animation-1/main/Images/android_navbaranimation1.webp" width="230" /> <img src="https://raw.githubusercontent.com/RadekVyM/Navbar-Animation-2/main/images/iphone_navbaranimation_2.webp" width="236" /> </p> <p align="center"> <a href="https://github.com/RadekVyM/Navbar-Animation-1"><em>Navbar Animation #1</em></a> | <a href="https://github.com/RadekVyM/Navbar-Animation-2"><em>Navbar Animation #2</em></a> </p> <p align="center"> <img src="https://raw.githubusercontent.com/RadekVyM/HamburgerMenuApp/main/images/android.gif" width="230" /> <img src="https://raw.githubusercontent.com/RadekVyM/Waste-App/main/Images/ios_wasteapp.webp" width="236" /> </p> <p align="center"> <a href="https://github.com/RadekVyM/HamburgerMenuApp"><em>Hamburger Menu App</em></a> | <a href="https://github.com/RadekVyM/Waste-App"><em>Waste App</em></a> </p>[!TIP] Check out a list of all samples here.
Supported platforms
This library is built for the following platforms:
- Android
- iOS/Mac Catalyst
- Windows (WinUI)
SimpleToolkit.Core
The SimpleToolkit.Core package is a set of simple .NET MAUI controls and helpers.
These are all the controls this package has to offer:
- Icon - control that allows you to display a tinted image
- ContentButton - button that can hold whatever content you want
- Popover - control that allows you to display custom popovers (flyouts) anchored to any control
In order to use the controls listed above, you need to call the UseSimpleToolkit()
extension method in your MauiProgram.cs
file:
builder.UseSimpleToolkit();
This package also contains some useful helpers. For example, there are helpers that allow you to force application content to be displayed behind the system bars (status and navigation bars) on Android and iOS.
See documentation for more information.
SimpleToolkit.SimpleShell
The SimpleToolkit.SimpleShell package provides you with a simplified implementation of .NET MAUI Shell
that lets you easily create a custom navigation experience in your .NET MAUI applications. The implementation is simply called SimpleShell
.
All SimpleShell
is is just a set of containers for your application content with the ability to put the hosting area for pages wherever you want. This gives you the flexibility to add custom tab bars, navigation bars, flyouts, etc. to your Shell
application.
Bear in mind that SimpleShell
does not come with any navigation controls. SimpleShell
just gives you the ability to use custom navigation controls along with the URI-based navigation and automatic navigation stack management.
[!IMPORTANT] Before you begin using
SimpleShell
, I highly recommend familiarizing yourself with the original .NET MAUIShell
- especially with the URI-based navigation, which works exactly the same as inSimpleShell
. TheSimpleShell
class inherits from theShell
class.
In order to use SimpleShell
, you need to call the UseSimpleShell()
extension method in your MauiProgram.cs
file:
builder.UseSimpleShell();
Why not use SimpleShell
and use .NET MAUI Shell
instead
- .NET MAUI
Shell
offers a platform-specific appearance. - Platform-specific navigation controls that .NET MAUI
Shell
provides probably have better performance than controls composed of multiple .NET MAUI views. - A
SimpleShell
-based application may not have as good accessibility in some scenarios due to the lack of platform-specific navigation controls. .NET MAUIShell
should be accessible out of the box since it uses platform-specific controls. - Maybe I have implemented something wrong that has a negative impact on the performance, stability, accessibility, or something like that.
See documentation for more information.