Hello friends and welcome!
Today we will be looking at 15 must have nuget packages for Xamarin forms and what it takes to implement them. Without wasting time, let’s get started.
1. POPUP – RG.PLUGINS.POPUP
A lot of times when developing your applications, you are required to create a kind of popup as a message box or confirmation dialog. The best plugin I have seen and used over time is the Rg.Plugins.Popup.
This plugin is a cross platform plugin that allows you to open pages as popup in your Android, iOS and UWP projects.
Before you can use this plugin, you have to do some initialization in each platform you are targeting. This initialization must come before the initialization of Xamarin.Forms.
To see how to implement this plugin, click here.
2. ESSENTIALS – XAMARIN.ESSENTIALS
There are basic and essential implementations that are required for your application to work seamlessly such as checking for connectivity, getting device information, geolocation and lots more.
The folks at Microsoft have made all these possible in a single plugin called Xamarin Essentials. You get this plugin by default every time you create a new project.
For example, see how easy it is to get geolocation from the device with few lines of code. The only extra step is to set the permission required for the features you are implementing.
To see how implement geolocation and use it with a map, click here.
3. MODEL-VIEW-VIEWMODEL – MVVM HELPER
The Model-View-ViewModel (MVVM) pattern helps to cleanly separate the business and presentation logic of an application from its user interface (UI).
Maintaining a clean separation between application logic and the UI helps to address numerous development issues and sometimes implementing this pattern can prove difficult and mundane for both new and experience developers.
MVVM Helpers make the implementation of MVVM pattern easy and less time consuming so that you can focus more on the business logic.
An example of the helper I commonly use is the is the SetPropery & GetProperty helpers which takes away the stress of implementing INotifyPropertyChanged.
Check out this video here detailing how to implement MVVM Helpers.
4. IMAGE LOADING – FFIMAGELOADING
FFImageLoading is a cross platform image library for loading images quickly and easily. It supports image file formats such as GIF, SVG and WebP.
One interesting feature of this plugin is caching. If you have multiple image controls that are using the same image source, the plugin will load the source image once and use the cached version for the rest thereby reducing data consumption of the app.
You can perform some fade-in animations with your images and also apply transformations such as crop, blur, grayscale, round corner, flip and rotation.
5. MONETIZATION – IN-APP BILLING PLUGIN
Often times you need to integrate monetization into your mobile apps in order to generate revenue. This is usually by introducing in-app purchases in form of remove ads feature, buying in-game currency or upgrading to the Pro version of the app.
The In-App Billing Plugin supports three types of in-app purchase. Consumables, Non-Consumables and Subscriptions.
• Consumables can be described as any one-time service within the app. For example, in-game currency or extra health.
• Non-Consumables are items that can only be purchased once such as removing ads, books, game levels, and additional app functionality
• Subscriptions are auto-renewable payments which can be monthly or yearly and non-renewable subscription that expires after a set amount of time.
6. CRASH REPORT – APP CENTER
App Center contains a lot of features to help you with your mobile app development. The two major features I have used over the years are App Center Crashes and App Center Analytics.
App Center Crashes will automatically generate a crash log every time your app crashes. Collecting crashes work for apps in beta and live apps.
To implement crash reporting and analytics, you need app secrets which you can get by registering on App Center Website. Note that if you are targeting more than one platform, you will need to create the application for each platform to get app secrets for each platform.
In order to use App Center Plugin, you have to install the plugin into your projects and then proceed to your App.xaml.cs to initialize the plugin by supplying the app secret for each platform.
You can start tracking errors like this within your code.
7. CACHING – MONKEY CACHE
Monkey Cache provides easy ways to cache any data structure for a specific amount of time. For example, you are making a web request and you get some response back from the server, you want the ability to cache this data in case you go offline, but also you need it to expire after a certain number of minutes or hours. Monkey Cache provides you with these capabilities.
To set up Monkey Cache, first, select an implementation of Monkey Cache that you would like (LiteDB, SQLite, or FileStore). Install the specific NuGet for that implementation, which will also install the base MonkeyCache library.
You will require to set a custom Application ID for your application so that the Cache engine can uniquely identify your application.
8. AUDIO & VIDEO – MEDIA MANAGER PLUGIN
Media content is the future of content and there is a need to put this into consideration when developing mobile applications.
MediaManager Plugin is a cross platform Xamarin plugin that simplifies access to the device’s native media functions and make it easy for your user to interact with audio and video in your mobile apps.
The features include native playback of media files from both local and remote sources, notifications, media controls and playback status. It also allows you to add multiple media items for sequential playback.
This plugin requires initialization in each of the platform you are targeting.
9. ANIMATION – XAMARIN.FORMS.LOTTIE
Lottie is a cross platform library, which allows you to run animations within your applications.
These animations are defined in a JSON file containing all the details of colors, shapes and transforms. You need Adobe After Effects in order to create these JSON files, however, there are lots of free lottie animation out there that are shared by designers.
To get started, first install the Nuget package to your projects and then initialize it in your respective projects. In order to show an animation, you need to put the After Effects JSON file in your Assets (Android) or Resources (iOS) folder and then load it into the animation view.
10. GRADIENT & CURVED LAYOUT – PANCAKE VIEW
App designs usually contain views with gradients, borders, rounded corners and shadows. Developers implementing these designs in Xamarin Forms require layouts that support these specifications.
Pancake View is a plugin that supports gradients, borders, rounded corners and shadows. Implementing Pancake View is very simple and straightforward. First, install the plugin in your projects and then tell your XAML page where it can find the Pancake View by adding the namespace to your XAML code.
You can now call the Pancake View Control and add properties the suits the design you are working with.
11. CONTENT ANIMATION – SHARED TRANSITION ANIMATION
Animation has a way of spicing up the user experience of your mobile application. Micro-interactions, transitions, and in-app animations are usually used to explain the logic of an app to a user and improve the overall app usability.
Shared Transition Plugin allows you to implement shared element transitions by connecting common elements from one page to another. A shared element transition determines how elements that are present in two pages transition between them.
12. FILE PICKER
Your application may require the use of file from the user’s device for viewing, editing and other file operations.
File Picker Plugin is a simple cross platform plugin that allows you to pick files and work with them. You can select any file type or set the allowed type in order to limit the files that can be selected.
13. FINGERPRINT AUTHENTICATION – FINGERPRINT PLUGIN
Fingerprint authentication provide applications with an alternative to the conventional username and password method used for user authentication and makes it possible for your application to implement security that is less intrusive.
A fingerprint must already be enrolled with the device for the user to be authenticated successfully.
Xamarin Fingerprint Plugin is a cross platform plugin that allows you to authenticate users with the enrolled fingerprint on their devices. To start using the plugin, you must initialize and request the necessary permissions in all the platforms you are targeting.
14. CHARTS – MICROCHARTS PLUGIN
Chart in mobile applications is a great way to present a clear overview of numerical data and show the relationship of such data. Microcharts is a selection of common charts that are easy to use, visually pleasing, and provides ready-to-use charts in your Xamarin Forms Applications.
There is a wide range of charts included in Microcharts Plugin for you to choose from such as the Bar Chart, Pie Chart, Line Chart, Point Chart and others. You can select the chart that best fit your data within your application.
BONUS: MATHEMATICS – CSHARP MATH
Has there ever been a need to display mathematical formulae in your application but cannot find any tool to help you? CSharp Math is what you are looking for. This is a library that allows you to display mathematical expressions within your mobile applications.
It makes use of LaTeX engine to convert plain text into high-quality mathematical expression for display on your mobile app screen.
It works perfectly in both XAML and C# code.
15. GRAPHICS – SKIASHARP PLUGIN
Many apps require special controls that are not part of the native kit and to achieve this, there is a need to render 2D graphics directly and natively on the app.
SkiaSharp is a cross platform library that allows to directly draw on the UI canvas and makes it possible to create complete custom controls. It is a 2D graphics library that provides a rich API to basically draw fancy things on the UI canvas.
Questions of the Day.
1. What other nuget packages do you use that are not mentioned? Let me know in the comments below.
2. Which of these nuget package would you like me to implement in a future video? Let me know in the comments below.