async void ErrorMessage(Custom.AppEntry field, Label label, string errorMessage)
        {
            field.Text        = string.Empty;
            field.BorderColor = Color.Red;

            label.Text = errorMessage;

            label.Opacity = 0;
            await label.FadeTo(1, 300);
        }
 async Task ErrorAnimation(Custom.AppEntry field, Label label) // Animacja wibracji okna wpisywania w przypadku bledu
 {
     if (label.Opacity == 0)
     {
         await Task.WhenAll(
             Vibration(field),
             label.FadeTo(1, 300));
     }
     else
     {
         await Vibration(field);
     }
 }
 async Task ErrorAnimation(Custom.AppEntry field, Label label)
 {
     if (label.Opacity == 0)
     {
         await Task.WhenAll(
             Vibration(field),
             label.FadeTo(1, 300));
     }
     else
     {
         await Vibration(field);
     }
 }
        async Task Vibration(Custom.AppEntry field)
        {
            const uint animateTime = 60;
            Easing     easing      = Easing.BounceOut;

            await field.TranslateTo(2, 0, animateTime, easing);

            await field.TranslateTo(-2, 0, animateTime, easing);

            await field.TranslateTo(1, 0, animateTime, easing);

            await field.TranslateTo(-1, 0, animateTime, easing);

            await field.TranslateTo(0, 0, animateTime, easing);
        }
        async void ErrorMessage(Custom.AppEntry field, Label label, string errorMessage) // Wypisuje blad i tworzy animacje wibracji okna
        {
            field.Text        = string.Empty;
            field.BorderColor = Color.Red;
            label.Text        = errorMessage;

            char[] delimiters = new char[] { ' ', '\r', '\n' };
            int    count      = errorMessage.Length;

            if (count > 40)
            {
                label.HeightRequest = 8 + 7 * ((count / 40) - 1);
            }

            await ErrorAnimation(field, label);
        }