More
Construyendo una aplicación Flutter con OverlayPortal e integración de Back4app
15 min
introducción en este tutorial, aprenderemos cómo usar overlayportal en flutter para crear superposiciones dinámicas para widgets como tooltips o menús además, integraremos back4app para almacenar y gestionar datos de usuario, como preferencias o acciones realizadas al interactuar con la superposición al final de este tutorial, podrás implementar overlayportal en una aplicación flutter mostrar superposiciones interactivas como menús flotantes o tooltips integrar back4app como el backend para almacenar datos relacionados con la superposición (por ejemplo, preferencias de usuario o acciones) requisitos previos entorno de flutter asegúrate de tener flutter instalado sigue la guía de instalación https //flutter dev/docs/get started/install cuenta de back4app regístrate en back4app https //www back4app com/ para usar como tu backend conocimientos básicos de widgets de flutter familiaridad con widgets comunes de flutter como botones, contenedores y superposiciones paso 1 configuración de back4app 1 1 crear un proyecto en back4app inicia sesión en tu cuenta de back4app https //www back4app com/ y crea un nuevo proyecto llamado overlaydemoapp crea una clase parse llamada overlayactions con los siguientes campos nombre de usuario (string) el nombre del usuario tipodeacción (string) la acción realizada en la superposición (por ejemplo, "abierto", "cerrado", "clicado") marca de tiempo (datetime) el momento en que ocurrió la acción 1 2 obtén tus credenciales de back4app desde el panel de control de back4app, navega a la configuración de tu proyecto y recupera tu id de aplicación y clave de cliente estas credenciales se utilizarán para inicializar back4app en tu aplicación flutter paso 2 configurar el proyecto de flutter 2 1 crear un nuevo proyecto de flutter abre tu terminal y crea un nuevo proyecto de flutter flutter create overlay portal app cd overlay portal app 2 2 agregar dependencias abre el pubspec yaml archivo y agrega las dependencias requeridas para parse sdk y overlayportal dependencies flutter sdk flutter parse server sdk flutter ^latest version overlay portal ^0 1 0 provider ^5 0 0 ejecuta flutter pub get para instalar las dependencias 2 3 inicializar parse sdk en lib/main dart , inicializa el parse sdk con tus credenciales de back4app import 'package\ flutter/material dart'; import 'package\ parse server sdk flutter/parse server sdk flutter dart'; void main() async { widgetsflutterbinding ensureinitialized(); const keyapplicationid = 'your back4app app id'; const keyclientkey = 'your back4app client key'; const keyparseserverurl = 'https //parseapi back4app com'; await parse() initialize( keyapplicationid, keyparseserverurl, clientkey keyclientkey, autosendsessionid true, ); runapp(myapp()); } class myapp extends statelesswidget { @override widget build(buildcontext context) { return materialapp( title 'overlay portal demo', theme themedata(primaryswatch colors blue), home overlayscreen(), ); } } reemplaza your back4app app id y your back4app client key con tus credenciales de back4app paso 3 implementando el overlayportal en flutter 3 1 crear el widget overlayscreen en lib/overlay screen dart , crea el widget principal donde implementaremos el overlayportal import 'package\ flutter/material dart'; import 'package\ overlay portal/overlay portal dart'; import 'package\ parse server sdk flutter/parse server sdk flutter dart'; class overlayscreen extends statefulwidget { @override overlayscreenstate createstate() => overlayscreenstate(); } class overlayscreenstate extends state\<overlayscreen> { final overlayportalcontroller controller = overlayportalcontroller(); bool isoverlayvisible = false; future\<void> logaction(string actiontype) async { // log action to back4app final actionobject = parseobject('overlayactions') set('username', 'player1') // example user set('actiontype', actiontype) set('timestamp', datetime now()); await actionobject save(); } void toggleoverlay() { setstate(() { isoverlayvisible = ! isoverlayvisible; if ( isoverlayvisible) { logaction('opened'); } else { logaction('closed'); } }); controller toggle(); } @override widget build(buildcontext context) { return scaffold( appbar appbar( title text('overlay portal example'), ), body center( child column( mainaxisalignment mainaxisalignment center, children \[ elevatedbutton( onpressed toggleoverlay, child text( isoverlayvisible ? 'hide overlay' 'show overlay'), ), overlayportal( controller controller, overlaychildbuilder (context) => positioned( top 150, left 50, child material( elevation 5 0, borderradius borderradius circular(8), child container( padding edgeinsets all(16 0), color colors blueaccent, child column( mainaxissize mainaxissize min, children \[ text( 'this is an overlay!', style textstyle(color colors white), ), sizedbox(height 10), elevatedbutton( onpressed () { logaction('clicked'); scaffoldmessenger of(context) showsnackbar(snackbar( content text('overlay button clicked!'), )); }, child text('click me'), ), ], ), ), ), ), ), ], ), ), ); } } en esta implementación overlayportal se activa y desactiva con el pulsar de un botón la interacción del usuario (abrir, cerrar o hacer clic) se registra en back4app utilizando el método logaction la superposición contiene un mensaje y un botón que desencadena una acción 3 2 crear la interfaz de usuario la interfaz de usuario contiene un botón que alterna la visibilidad de la superposición la superposición en sí está posicionada usando el positioned widget cuando la superposición es visible, aparece en la pantalla un cuadro flotante con un mensaje y un botón paso 4 ejecutar la aplicación abre la terminal y ejecuta la aplicación usando haz clic en el mostrar superposición botón para alternar la superposición cuando la superposición es visible, haz clic en el botón dentro de la superposición todas las interacciones (abrir, cerrar y hacer clic) se registrarán en back4app paso 5 ver acciones registradas en back4app para verificar que las acciones del usuario están siendo registradas ve a tu panel de control de back4app navega a la overlayactions clase deberías ver registros de las acciones (abiertas, cerradas, clicadas) registradas con marcas de tiempo paso 6 personalizando el overlay puedes personalizar aún más el overlay al cambiar la posición del overlay con el positioned widget agregar widgets más complejos, como formularios o menús, dentro del overlay estilizar el overlay con diferentes colores, bordes y sombras conclusión en este tutorial, aprendiste cómo implementar overlayportal en una aplicación flutter para crear overlays interactivos que se pueden activar y desactivar además, integramos back4app para registrar las interacciones del usuario con el overlay, proporcionando un backend robusto para almacenar datos y mejorar la funcionalidad de la aplicación esta configuración se puede utilizar para construir aplicaciones ricas en características donde las interacciones del usuario con overlays (por ejemplo, tooltips, menús, popups) se almacenan en el backend, ofreciendo información sobre el comportamiento del usuario o facilitando la carga de contenido dinámico basado en datos en tiempo real para más información documentación de flutter overlay portal https //pub dev/packages/overlay portal documentación de back4app https //www back4app com/docs