More
Construyendo y Usando una Extensión de Flutter DevTools con Back4app
19 min
introducción flutter devtools es un conjunto poderoso para depurar, inspeccionar y perfilar aplicaciones flutter con el marco de extensión dart & flutter devtools, los desarrolladores pueden crear extensiones personalizadas para mejorar sus flujos de trabajo de depuración y desarrollo estas extensiones se pueden construir como aplicaciones web de flutter e integrarse sin problemas en el conjunto de devtools en este tutorial, exploraremos cómo crear una extensión de flutter devtools, integrarla con una aplicación flutter que utiliza back4app para servicios de backend, y depurar la aplicación utilizando la extensión personalizada esto te ayudará a construir herramientas de desarrollo personalizadas que pueden agilizar tu proceso de desarrollo y proporcionar una visión más profunda del comportamiento de tu aplicación requisitos previos para completar este tutorial, necesitarás una cuenta de back4app regístrate para obtener una cuenta gratuita en back4app com https //www back4app com un entorno de desarrollo de flutter configurado en tu máquina local sigue la guía de instalación de flutter https //flutter dev/docs/get started/install si aún no lo has configurado conocimientos básicos de dart, widgets de flutter y uso de flutter devtools paso 1 – configurando tu backend de back4app crea un proyecto de back4app inicia sesión en tu cuenta de back4app https //www back4app com/ y crea un nuevo proyecto crea clases de parse para este tutorial, crea una clase de parse llamada themesettings para almacenar datos de configuración de tema para tu aplicación flutter themename (string) el nombre del tema primarycolor (string) el color principal del tema accentcolor (string) el color de acento del tema poblar la clase con datos de ejemplo agrega varios registros a la themesettings clase para simular configuraciones de tema que tu aplicación flutter utilizará obtén tus credenciales de back4app navega a la configuración de tu proyecto para recuperar tu id de aplicación y clave de cliente, que necesitarás para conectar tu aplicación flutter a back4app paso 2 – creando la extensión de flutter devtools crea un nuevo proyecto de flutter abre tu terminal o símbolo del sistema y ejecuta flutter create theme builder extension configurar el directorio de la extensión navega a tu directorio raíz del proyecto y crea un nuevo directorio para tu extensión de devtools mkdir devtools extension dentro de este directorio, crea un config yaml archivo para almacenar los metadatos requeridos por devtools package name theme builder extension version 1 0 0 issue tracker https //github com/yourusername/theme builder extension/issues material icon assets/icon png agregar dependencias abre pubspec yaml y agrega las siguientes dependencias dependencies flutter sdk flutter devtools extensions latest version devtools app shared latest version ejecuta flutter pub get para instalar estas dependencias creando la extensión devtools en lib/main dart , reemplaza el contenido predeterminado con el siguiente código para envolver tu aplicación web de flutter en un devtoolsextension widget import 'package\ flutter/material dart'; import 'package\ devtools extensions/devtools extensions dart'; import 'package\ devtools app shared/devtools app shared dart'; void main() { runapp(devtoolsextension(child themebuilderapp())); } class themebuilderapp extends statelesswidget { @override widget build(buildcontext context) { return scaffold( appbar appbar(title text('theme builder')), body center( child elevatedbutton( onpressed () { // your extension logic here }, child text('generate theme'), ), ), ); } } esto envuelve tu aplicación en el devtoolsextension widget, que maneja la tematización y la integración con la suite devtools agregando integraciones de devtools modifica tu aplicación para integrar características específicas de devtools, como usar el devtoolsbutton en lugar de un elevatedbutton class themebuilderapp extends statelesswidget { @override widget build(buildcontext context) { return scaffold( appbar appbar(title text('theme builder')), body center( child devtoolsbutton( onpressed () { // your extension logic here }, child text('generate theme'), ), ), ); } } este cambio asegura que la interfaz de usuario de tu extensión se mezcle perfectamente con el resto de la suite de devtools paso 3 – integración con back4app inicializa parse en tu extensión dado que esta extensión interactuará con back4app, inicializa parse en tu extensión 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(devtoolsextension(child themebuilderapp())); } obtén y usa datos de tema usa los datos de back4app en tu extensión para generar y aplicar temas class themebuilderapp extends statelesswidget { @override widget build(buildcontext context) { return scaffold( appbar appbar(title text('theme builder')), body futurebuilder\<list\<parseobject>>( future fetchthemes(), builder (context, snapshot) { if (!snapshot hasdata) { return circularprogressindicator(); } final themes = snapshot data!; return listview\ builder( itemcount themes length, itembuilder (context, index) { final theme = themes\[index]; return listtile( title text(theme get\<string>('themename') ?? 'no name'), subtitle text('primary color ${theme get\<string>('primarycolor')}'), ontap () { // apply theme logic }, ); }, ); }, ), ); } future\<list\<parseobject>> fetchthemes() async { final query = querybuilder\<parseobject>(parseobject('themesettings')); final response = await query query(); if (response success && response results != null) { return response results as list\<parseobject>; } else { throw exception('failed to load themes'); } } } este código obtiene la configuración de temas de back4app y los muestra en una lista seleccionar un tema podría activar lógica adicional para aplicarlo paso 4 – probar tu extensión en un entorno simulado ejecutar la extensión en un entorno simulado para probar tu extensión sin compilarla cada vez, utiliza el entorno simulado de devtools flutter run d chrome dart define=use simulated environment=true flutter run d chrome dart define=use simulated environment=true flutter run d chrome dart define=use simulated environment=true simular la aplicación conectada inicie otra aplicación flutter a la que su extensión se conectará copie y pegue la uri del servicio vm de la aplicación conectada y la uri del servicio dtd en el entorno simulado paso 5 – construyendo y publicando la extensión construir la extensión una vez que esté satisfecho con su extensión, constrúyala para producción flutter pub get flutter build web output=devtools extension/build validar la extensión use el comando de validación de devtools para asegurarse de que su extensión esté configurada correctamente dart run devtools extensions validate publicar la extensión publique su extensión en pub dev para que otros desarrolladores puedan usarla flutter pub publish conclusión en este tutorial, aprendió cómo crear una extensión de flutter devtools, integrarla con back4app para servicios de backend y probarla en un entorno simulado al extender devtools, puede construir herramientas personalizadas que mejoren su productividad y ofrezcan nuevas perspectivas sobre el comportamiento de su aplicación una vez que su extensión esté lista, publicarla en pub dev permite que otros desarrolladores se beneficien de su trabajo para obtener más información sobre el uso de flutter con back4app, consulte la documentación de back4app https //www back4app com/docs y la documentación de flutter devtools https //flutter dev/docs/development/tools/devtools/overview ¡feliz codificación!