Sigue estas guías para el diseño de complementos y mejora 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 programar un complemento, determina qué cuenta debe ser propietaria del proyecto y qué cuenta actuará como su publicador. También debes determinar qué cuentas actuarán como colaboradores y asegurarte 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 poco probable que los complementos que solo replican la funcionalidad que ya existe en la aplicación o los que no mejoran significativamente un flujo de trabajo pasen la revisión de complementos para su publicación.
Mantén los permisos limitados
Cuando definas tus alcances de forma explícita, elige siempre el conjunto de alcances menos permisivo posible. Por ejemplo, no solicites acceso completo al Calendario del usuario con el alcance https://www.googleapis.com/auth/calendar si tu complemento solo necesita acceso de lectura. Para el acceso de solo lectura, usa el permiso 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 lentamente de lo que lo haría si todo el código de Apps Script estuviera contenido en un solo proyecto de secuencia de comandos. Si bien las bibliotecas de Apps Script funcionan en los complementos, es posible que experimentes una reducción del 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 libremente bibliotecas de JavaScript del cliente, como jQuery, sin experimentar 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 un 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 devolverlo. Esto te permite volver a generar 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 de tarjetas grandes 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 se pudo conectar 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 a fondo todos los complementos que crees. Crea funciones de prueba que creen tarjetas y widgets con datos de prueba, y, luego, verifica que los objetos se creen según lo esperado.
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 publicada para poder probarlo.
Usa datos de prueba adecuados para cada aplicación host que extiende 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 proporcione contenido de mensaje diferente. Puedes obtener el ID de un mensaje determinado enumerando los mensajes con el método Gmail APIusers.messages.list o usando el servicio de Gmail de Apps Script.
Prácticas recomendadas para las conferencias de Calendario
Si tu complemento integra opciones de conferencias de calendario de terceros en el Calendario de Google, sigue estas prácticas recomendadas adicionales:
Mantén la luz de onCreateFunction
Cada onCreateFunction que defines 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 realizas demasiadas acciones en estas funciones, es posible que tu complemento tenga una experiencia del usuario lenta.
Usa los campos ConferenceData adecuados para los datos de la conferencia
Cuando compilas objetos ConferenceData, puedes propagarlos con detalles sobre la conferencia (códigos de acceso, números de teléfono, PIN, URIs, etcétera). Asegúrate de usar el campo EntryPoint correspondiente para esta información. No incluyas estos detalles en el campo de notas de ConferenceData.
No se agregan detalles de la conferencia 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.