Cómo crear login con usuario y contraseña en AppInventor, parte 1

Tiempo Estimado de Lectura: 5 minutos
imagen destacada del post con un texto en el centro que dice Cómo crear login con usuario y contraseña en AppInventor, parte 1 y abajo del texto aparece el nombre del autor Omar Obando
Rate this post

En el mundo del desarrollo de aplicaciones móviles, la autenticación de usuarios es una de las funcionalidades más solicitadas. Si estás buscando cómo implementar un sistema de login con usuario y contraseña en AppInventor, has llegado al lugar correcto. Este tutorial detallado te guiará paso a paso, desde el diseño de las pantallas hasta la conexión con una base de datos, específicamente FirebaseDB, para almacenar credenciales de manera segura.

AppInventor, la plataforma de desarrollo visual creada por el MIT, es ideal para principiantes y expertos que desean crear aplicaciones funcionales sin necesidad de escribir código complejo. En esta primera parte, nos enfocaremos en el diseño de las interfaces necesarias para el registro e inicio de sesión, sentando las bases para la implementación de la lógica en futuras entregas.

¿Por qué implementar un sistema de login en AppInventor?

Un sistema de autenticación es esencial para aplicaciones que requieren identificar usuarios, personalizar contenido o proteger información sensible. Plataformas como Facebook, Instagram y bancos móviles utilizan este mecanismo para garantizar seguridad y privacidad.

Con AppInventor, puedes crear un sistema similar utilizando componentes visuales y bloques de programación. A continuación, exploraremos los conceptos clave y pasos prácticos para lograrlo.

Pantallas necesarias para el sistema de login

El proyecto constará de cuatro pantallas principales:

  • Pantalla de inicio (Screen1): Contiene botones para "Registrarse" e "Iniciar sesión".
  • Pantalla de registro (Screen2): Permite a los usuarios crear una cuenta con nombre de usuario y contraseña.
  • Pantalla de login (Screen3): Para ingresar credenciales y acceder a la aplicación.
  • Pantalla principal (Screen4): Área restringida que solo aparece tras una autenticación exitosa.

Configuración inicial del proyecto

Antes de comenzar, asegúrate de tener:

  • Una cuenta en AppInventor.
  • Conocimientos básicos de la interfaz (paleta de componentes, visor y bloques).
  • Acceso a Firebase para configurar la base de datos (lo cubriremos en la parte 2).

Diseñando la pantalla de inicio (Screen1)

La primera pantalla es la puerta de entrada a tu aplicación. Sigue estos pasos para crearla:

  1. Abre AppInventor y crea un nuevo proyecto (LoginApp_Parte1).
  2. Desde la paleta "User Interface", arrastra dos componentes Button al visor.
  3. Renómbralos como btnRegistrar y btnIniciarSesion en la pestaña "Properties".
  4. Cambia sus textos a "Registrarse" e "Iniciar sesión" respectivamente.

Consejo profesional: Usa nombres descriptivos para los componentes. Esto facilitará la programación con bloques posterior.

Mejorando el diseño visual

Para un diseño responsive que se adapte a diferentes tamaños de pantalla:

  1. Añade un componente HorizontalArrangement desde la paleta "Layout".
  2. Configura su Width y Height al 100% (usando porcentajes en lugar de píxeles).
  3. Arrastra ambos botones dentro de este arreglo.
  4. Establece AlignHorizontal y AlignVertical en "Center" para centrarlos.

Para personalizar aún más:

  • Cambia el color de fondo (Screen > BackgroundColor).
  • Oculta el título predeterminado (TitleVisible > False).
  • Ajusta fuentes, colores de texto y añade imágenes si lo deseas.

Creando la pantalla de registro (Screen2)

Esta pantalla recopilará las credenciales del usuario. Aquí está el desglose detallado:

Componentes esenciales

  • Label (lblTitulo): Texto "Registrarse en el sistema" (tamaño 24, negrita).
  • TextBox (txtUsuario): Para ingresar el nombre de usuario.
  • TextBox (txtContraseña1 y txtContraseña2): Dos campos para contraseña (el segundo verifica coincidencia).
  • Button (btnRegistrarse): Para enviar los datos.
  • Button (btnVolverInicio): Regresa a Screen1.
  • Label (lblEstado): Muestra mensajes de error/éxito (inicialmente vacío).

Estructura con VerticalArrangement

Organiza todos los componentes dentro de un VerticalArrangement configurado al 100% de ancho/alto. Esto garantiza un diseño ordenado y escalable:

  1. Añade etiquetas descriptivas sobre cada campo (ej: "Usuario:", "Contraseña:").
  2. Para los botones, usa un HorizontalArrangement anidado con ancho al 100%.
  3. Centra todo el contenido vertical y horizontalmente.

Nota de seguridad: En la parte 2, implementaremos validación para que las contraseñas coincidan y cumplan con requisitos mínimos antes de enviarse a Firebase.

Diseñando la pantalla de login (Screen3)

Similar a Screen2 pero más simple, ya que solo requiere:

  • Label (lblTitulo): "Iniciar sesión" (tamaño 24, negrita).
  • TextBox (txtLoginUsuario): Para el nombre de usuario.
  • PasswordTextBox (txtLoginContraseña): Oculta caracteres ingresados.
  • Button (btnIniciarSesion): Valida credenciales.
  • Button (btnVolver): Regresa a Screen1.

Usa la misma estructura de VerticalArrangement y HorizontalArrangement para los botones, manteniendo coherencia visual en toda la aplicación.

Pantalla principal post-login (Screen4)

Esta pantalla solo será accesible tras una autenticación exitosa. Por ahora, añade:

  • Label (lblBienvenida): "Sesión iniciada" (tamaño 40, negrita).
  • Espacio para futuros componentes según tu aplicación (ej: menú, opciones).

Conectando pantallas mediante navegación

Para que los botones "Volver" y las transiciones funcionen:

  1. En Screen1, programa los botones para abrir Screen2 y Screen3 usando bloques open another screen.
  2. En Screen2 y Screen3, configura los botones "Volver" para regresar a Screen1.
  3. El botón "Iniciar sesión" en Screen3 abrirá Screen4 (por ahora; luego añadiremos validación).

¿Prefieres una demostración visual? El video anterior muestra el proceso de diseño paso a paso, incluyendo tips adicionales para personalizar tu aplicación.

Terminología clave explicada

FirebaseDB

Firebase Realtime Database es un servicio de Google que almacena datos en la nube en formato JSON y los sincroniza en tiempo real con todos los clientes conectados. En nuestro contexto, será donde guardaremos de forma segura los nombres de usuario y contraseñas (hash) de los registros.

Componente PasswordTextBox

Variante de TextBox en AppInventor que oculta los caracteres ingresados con puntos (•••••). Es esencial para campos de contraseña, evitando que sean visibles a personas cercanas al usuario.

Disposiciones (Arrangements)

Los arreglos (Horizontal, Vertical, Table) en AppInventor son contenedores que organizan componentes hijos en layouts específicos. Su uso es crucial para diseños responsive que se adapten a diferentes tamaños y orientaciones de pantalla.

Tabla comparativa: Tipos de autenticación

Método Ventajas Desventajas Recomendación
Usuario/Contraseña Sencillo de implementar, familiar para usuarios Requiere contraseñas seguras Ideal para aplicaciones estándar
Autenticación social (Google, Facebook) Sin registro manual, mayor conversión Dependencia de terceros Apps que buscan crecimiento rápido
Biometría (huella, rostro) Máxima comodidad, alta seguridad Soporte limitado en dispositivos Aplicaciones bancarias o de salud

Preguntas frecuentes (FAQ)

1. ¿Puedo usar otra base de datos que no sea Firebase?

Sí, AppInventor soporta TinyDB (almacenamiento local) y otras alternativas como MySQL mediante APIs. Sin embargo, Firebase es la opción más sencilla para principiantes por su integración directa.

2. ¿Cómo aseguro que las contraseñas sean seguras?

En la parte 2 implementaremos validación para exigir: 8+ caracteres, mayúsculas, números y símbolos. Nunca almacenes contraseñas en texto plano; Firebase maneja hashing automático.

3. ¿Por qué usar porcentajes en lugar de píxeles para los layouts?

Los porcentajes (100% width/height) hacen que tu diseño sea responsive, adaptándose automáticamente a diferentes tamaños de pantalla (móviles, tablets). Los píxeles fijos pueden causar desbordamientos o espacios vacíos.

4. ¿Cómo recupero contraseñas olvidadas?

Requiere un sistema adicional con verificación por email (lo cubriremos en tutoriales avanzados). Firebase Auth ofrece esta funcionalidad lista para usar.

5. ¿Puedo añadir un botón "Ver contraseña"?

Sí, añadiendo un CheckBox que modifique la propiedad PasswordVisible del TextBox. Esto mejora la usabilidad permitiendo verificar lo ingresado.

6. ¿Qué pasa si dos usuarios eligen el mismo nombre?

Firebase permite verificar unicidad. En la parte 2 programaremos esta validación mostrando un mensaje en lblEstado cuando el usuario ya exista.

7. ¿Cómo cambio el teclado para campos específicos?

En las propiedades de TextBox, ajusta TextInputType (ej: "Email" para usuarios con @, "Number" para códigos PIN).

8. ¿Es posible usar huella digital en AppInventor?

Sí, mediante extensiones como Fingerprint de Thunkable. Requiere dispositivos con sensor y Android 6+.

9. ¿Cómo evito que usuarios modifiquen la aplicación para saltarse el login?

AppInventor genera código compilado, pero para mayor seguridad, usa Firebase Rules para proteger datos y considera ofuscar tu código antes de publicar.

10. ¿Puedo añadir un temporizador para bloqueos tras intentos fallidos?

Sí, con variables que cuenten intentos y bloqueen temporalmente el acceso usando el componente Clock de AppInventor.