Prácticas recomendadas

Sigue estas guías de diseño de complementos para mejorar la experiencia general de los usuarios.

Prácticas recomendadas generales

Te recomendamos que uses las siguientes prácticas recomendadas para todos los complementos que desarrolles.

Determina la propiedad del complemento antes de comenzar

Los complementos se definen mediante proyectos de Apps Script, que deben ser propiedad de una cuenta específica o colocarse en una unidad compartida. Antes de codificar un complemento, determina qué cuenta debe ser propietaria del proyecto y qué cuenta actúa como su publicador. También determina qué cuentas actuarán como colaboradores y asegúrate de que tengan acceso al proyecto de secuencia de comandos y a su proyecto de Google Cloud asociado.

Extiende Google Workspace, no lo repliques

Los complementos están diseñados para proporcionar nuevas capacidades a las aplicaciones de Google Workspace que extienden o para automatizar tareas complejas. Es probable que los complementos que solo replican la funcionalidad que ya está dentro de la aplicación o los que no realizan mejoras significativas en un flujo de trabajo no pasen la revisión de complementos para su publicación.

Mantén los alcances limitados

Cuando definas tus alcances de forma explícita, elige siempre el conjunto de alcances menos permisivo posible. Por ejemplo, no hagas que tu complemento solicite acceso completo al Calendario del usuario con el alcance https://www.googleapis.com/auth/calendar si solo necesita acceso de lectura. Para el acceso de solo lectura, usa el alcance https://www.googleapis.com/auth/calendar.readonly.

Evita depender demasiado de las bibliotecas

El uso de bibliotecas de Apps Script puede hacer que tu complemento se ejecute más lento que si todo el código de Apps Script estuviera contenido en un solo proyecto de secuencia de comandos. Aunque las bibliotecas de Apps Script funcionan en complementos, es posible que experimentes reducciones de rendimiento si las usas. Evita incluir bibliotecas innecesarias en tu proyecto y considera formas de reducir la dependencia de tu complemento en ellas.

La latencia descrita anteriormente solo se aplica a los proyectos de Apps Script que se usan como bibliotecas del servidor. Puedes usar bibliotecas de JavaScript del cliente, como jQuery, libremente sin encontrar esta latencia.

Prácticas recomendadas para los complementos de Google Workspace

Las siguientes prácticas recomendadas solo se aplican a los complementos de Google Workspace y al uso del servicio de tarjetas.

Usa solo algunas tarjetas

Si el complemento usa demasiadas tarjetas, la configuración de navegación se vuelve compleja y difícil de administrar.

Evita el impulso de crear más tarjetas de las necesarias.

Usa funciones de creación de widgets

Cuando escribas código que cree una Card o cualquier otro objeto de IU complejo, considera colocar ese código en su propia función. Esta función de creación solo debe compilar el objeto y mostrarlo. Esto te permite regenerar rápidamente ese objeto cada vez que se debe actualizar la IU. Recuerda llamar a build() después de usar las clases de compilador en el servicio de tarjetas.

Mantén las tarjetas simples

Si una tarjeta determinada tiene demasiados widgets, puede ocupar demasiado espacio en la pantalla y volverse menos útil. Si bien las secciones grandes de tarjetas se renderizan como elementos de IU contraíbles, esto oculta información al usuario. Intenta optimizar tu complemento y proporcionar exactamente lo que el usuario necesita y nada más.

Usa tarjetas de error

Crea tarjetas para las condiciones de error. Si tu complemento produce un error, debe mostrar una tarjeta con la información del error y las instrucciones para corregirlo, si es posible. Por ejemplo, si tu complemento no pudo conectarse a un servicio que no es de Google porque falló la autorización, muestra una tarjeta que indique esto y pídele al usuario que verifique la información de la cuenta que se está usando.

Escribe pruebas y mensajes de prueba

Debes probar minuciosamente todos los complementos que crees. Compila funciones de prueba que creen tarjetas y widgets con datos de prueba y, luego, verifica que los objetos se creen según lo previsto.

Cuando usas funciones de devolución de llamada de acción, por lo general , debes construir un objeto de respuesta. Puedes usar instrucciones como las siguientes para verificar que las respuestas se construyan correctamente:

    Logger.log(response.printJson());

Ejecuta las funciones de prueba que crees directamente desde el editor de Apps Script con el menú Ejecutar. Cuando tengas un complemento viable en funcionamiento, asegúrate de instalar la versión no publicadapara poder probarlo.

Usa datos de prueba adecuados para cada aplicación host que extienda el complemento. Por ejemplo, si el complemento extiende Gmail, es probable que necesites algunos correos electrónicos de prueba y sus IDs de mensaje para asegurarte de que el complemento funcione según lo previsto cuando se le proporciona contenido de mensaje diferente. Para obtener el ID de mensaje de un mensaje determinado, puedes enumerar mensajes con el método API de Gmail users.messages.list o usar el servicio Gmail de Apps Script.

Prácticas recomendadas para las reuniones de Calendario

Si tu complemento integra opciones de reuniones de calendario de terceros conferencias en el Calendario de Google, sigue estas prácticas recomendadas adicionales:

Mantén tu onCreateFunction luz

Each onCreateFunction que definas en tu manifiesto se llama de forma síncrona cuando un usuario intenta crear una solución de conferencia de ese tipo. Asegúrate de que estas funciones solo realicen el trabajo mínimo necesario para crear la conferencia. Si haces demasiado en estas funciones, la experiencia del usuario de tu complemento puede ser lenta.

Usa los campos ConferenceData adecuados para los datos de la conferencia

Cuando compilas ConferenceData objetos, puedes propagarlos con detalles sobre la conferencia (códigos de acceso, números de teléfono, PINs, URIs, etcétera). Asegúrate de usar el campo EntryPoint correspondiente para esta información. No coloques estos detalles en el campo de notas ConferenceData.

No agregues detalles de la reunión al evento de Calendario

Tu complemento no necesita agregar información sobre las conferencias de terceros creadas a la descripción del evento de Calendario. Calendario lo hace automáticamente cuando es necesario.