Xamarin.Custom.LoaderEase 1.0.1

dotnet add package Xamarin.Custom.LoaderEase --version 1.0.1                
NuGet\Install-Package Xamarin.Custom.LoaderEase -Version 1.0.1                
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Xamarin.Custom.LoaderEase" Version="1.0.1" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add Xamarin.Custom.LoaderEase --version 1.0.1                
#r "nuget: Xamarin.Custom.LoaderEase, 1.0.1"                
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install Xamarin.Custom.LoaderEase as a Cake Addin
#addin nuget:?package=Xamarin.Custom.LoaderEase&version=1.0.1

// Install Xamarin.Custom.LoaderEase as a Cake Tool
#tool nuget:?package=Xamarin.Custom.LoaderEase&version=1.0.1                

In Xamarin.Forms, a "wait loader" or a loading indicator is typically used to inform the user that a time-consuming operation is in progress, such as data retrieval, processing, or any operation that may cause the UI to freeze or appear unresponsive.

Functions:

  1. Visual Feedback:

    • Purpose: Provide visual feedback to users that a process is in progress.
    • Importance: Users often appreciate knowing that their action has been acknowledged and that the application is actively working on their request.
  2. User Engagement:

    • Purpose: Keep users engaged during potentially lengthy operations.
    • Importance: A loader prevents users from feeling like the application has frozen or become unresponsive. It assures them that something is happening in the background.
  3. Expectation Management:

    • Purpose: Set clear expectations about the duration of the process.
    • Importance: Users are more likely to wait patiently if they have an idea of how long the process might take. A loader manages expectations and reduces perceived waiting time.
  4. Prevent User Interaction:

    • Purpose: Disable or limit user interactions during the process.
    • Importance: Preventing user interactions while a process is ongoing helps avoid unexpected behavior or errors that could result from user input during that time.
  5. Progress Indication:

    • Purpose: Communicate progress if the duration of the process is known.
    • Importance: For processes with a foreseeable duration, a loader can indicate progress, giving users a sense of how much work has been completed and how much is remaining.

Requirements:

  1. Visibility Control:

    • Requirement: The loader should be easily visible when active and hidden when the process is complete.
    • Importance: Users need to know when the application is actively processing their request and when it has completed the task.
  2. Clear Design:

    • Requirement: The loader should have a clear and easily understandable design.
    • Importance: Users should quickly recognize the loader and understand its purpose without confusion.
  3. Performance:

    • Requirement: The loader should not degrade overall application performance.
    • Importance: The loader itself should not contribute to increased loading times or negatively impact the application's responsiveness.
  4. Accessibility:

    • Requirement: The loader should be accessible to users with disabilities.
    • Importance: Ensure that users who rely on assistive technologies can still understand that a process is ongoing.
  5. Configurability:

    • Requirement: The loader should be configurable in terms of appearance and behavior.
    • Importance: Different parts of the application might have different loading requirements; hence, flexibility in configuring the loader is valuable.
  6. Consistency:

    • Requirement: The loader should maintain a consistent appearance and behavior across the application.
    • Importance: Consistency helps users become familiar with the loading experience, fostering a more intuitive and predictable user interface.

Implementing a wait loader effectively requires consideration of these functions and requirements to create a positive user experience and maintain the usability of the application, especially during background processes or network requests.

Here are the steps to use this project:

1, Tutorial video link :"https://youtu.be/42aczF8SYgc"

  1. Installation:

    • Install the NuGet package
  2. Register packages in IOS and Android

    IOS[AppDelegate]=>

    public override bool FinishedLaunching(UIApplication app, NSDictionary options)

    {

     global::Xamarin.Forms.Forms.Init();
    
     Rg.Plugins.Popup.Popup.Init();<----
    
     FFImageLoading.Forms.Platform.CachedImageRenderer.Init();<----
    
     LoadApplication(new App());
    
     return base.FinishedLaunching(app, options);
    

    }

    Android[MainActivity]==>

    protected override void OnCreate(Bundle savedInstanceState)

    {

     base.OnCreate(savedInstanceState);
    
     Rg.Plugins.Popup.Popup.Init(this);<-----
    
     FFImageLoading.Forms.Platform.CachedImageRenderer.Init(true);<-------
    
     Xamarin.Essentials.Platform.Init(this, savedInstanceState);
    
     global::Xamarin.Forms.Forms.Init(this, savedInstanceState);
    
     LoadApplication(new App());
    

    }

  3. Upgrade your "Xamarin.Forms" to version 5.0.0.2622 or later to address the Xamarin.Forms error during package installation.

Product Compatible and additional computed target framework versions.
.NET net5.0 was computed.  net5.0-windows was computed.  net6.0 was computed.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 was computed.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 was computed.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed. 
.NET Core netcoreapp3.0 was computed.  netcoreapp3.1 was computed. 
.NET Standard netstandard2.1 is compatible. 
MonoAndroid monoandroid was computed. 
MonoMac monomac was computed. 
MonoTouch monotouch was computed. 
Tizen tizen60 was computed. 
Xamarin.iOS xamarinios was computed. 
Xamarin.Mac xamarinmac was computed. 
Xamarin.TVOS xamarintvos was computed. 
Xamarin.WatchOS xamarinwatchos was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
1.0.1 212 11/19/2023
1.0.0 153 11/18/2023

All custom loaders will work without creating instance or with dependency injection