Shell: Login, Onboarding y escenarios similares en Xamarin Forms

Sobre el tema:

Contenido

Estoy trabajando con Xamarin Forms Shell en una pequeña aplicación interna y estaba buscando la manera de hacer la incorporación dentro del mismo archivo AppShell.xaml y encontré cosas locas por ahí, es por eso que escribo este post para usted.

🚨 Lo primero que necesita saber es: no puede administrar inicios de sesión, Onboardings experiences, o experiencias de incorporación, y escenarios similares con Shell. Bueno, todavía no.

Sabiendo esto, podemos continuar y utilizar las herramientas que ya tenemos disponible para lograr el cometido. Este es un método muy simple, no suelo escribir este tipo de artículo porque esto es muy básico, pero he visto mucho esta pregunta y al final terminan haciendo trabajo extra sin necesidad llamando a las malas prácticas.

Onboarding con Xamarin Forms Shell

Actualmente, la estructura Xaml del shell no nos permite construir un proceso de incorporación, pero no importa en absoluto porque podemos usar lo que ya sabemos para lograr nuestro objetivo, ver más abajo.

...
public App()
{
       InitializeComponent();
       
       if (IsFirstTime)
       {
             MainPage = new OnboardingPage();
       }
       else
       {
            MainPage = new AppShell();
       }
}
...

Tenga en cuenta que estamos estableciendo el OnboardingPage como MainPage en nuestro archivo App.xaml.cs como lo hacemos normalmente. Una vez que hagamos esto, vaya a su OnboardingPage busque el botón que desencadenaría la navegación y establecer el MainPage como AppShell con el fin de navegar a la estructura de shell, como se ve a continuación, .

...
public partial class OnboardingPage : ContentPage
{
     ...
     private void navigationButton_Clicked(object sender, System.EventArgs e)
     {
          Application.Current.MainPage = new AppShell();
     }
     ...
}

Con esto tienes tu proceso de incorporación hecho.

Login con Xamarin Forms Shell

Con el fin de establecer el proceso de inicio de sesión en la aplicación con Xamarin Forms Shell vamos a usar el método que usamos antes, pero con un pequeño cambio, vea a continuación.

...
public App()
{
       InitializeComponent();

       if (IsFirstTime)
       {
             MainPage = new OnboardingPage();
       }
       else if (IsLoggedIn)
       {
             MainPage = new AppShell();
       }
       else
       {
            MainPage = new LoginPage();
       }
}
...

Tenga en cuenta que usamos IsLoggedIn para saber si el usuario ya ha iniciado sesión antes en la aplicación, aquí debes usar su propia lógica para establecer esto. Una vez que sepa si su usuario ha iniciado sesión o no simplemente establezca la página adecuada.

Más adelante, si deseas navegar a su shell desde el LoginPage tenemos que establecer Application.Current.MainPage como AppShell, como lo hicimos anteriormente.

...
public partial class LoginPage : ContentPage
{
     ...
     private void navigationButton_Clicked(object sender, System.EventArgs e)
     {
          Application.Current.MainPage = new AppShell();
     }
     ...
}

Con esto usted tiene su proceso de inicio de sesión hecho. ¿Lo ves? muy simple y limpio. Dejen de hacer soluciones alternativa cuando no sea necesario.


Espero que este consejo pueda ayudar a algunos de ustedes. Si crees que esto puede ayudar a otros simplemente compártelo con ellos o dejanos saber tus comentarios 😉

Para pequeños consejos, sígueme en Instagram LinkedIn! ¡Gracias por leer!

¿Qué opinas de este contenido?
 
Luis Matos

Luis Matos

I help professionals and companies to create value solutions. I am a Systems Engineer, blockchain executive, and international mobile application speaker. Founder of the Malla Consulting Agency and several international technology communities.
Suscribirte
Notificar de
0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x

Buscar en el sitio