Documentación
Qué es un Proyecto, una App, un Sitio web y cómo se usa cada uno de sus componentes y funciones en K-ode.
General
Qué es Kodi
El asistente de IA de K-ode.
Controles
Lo que puedes poner en una pantalla.
Controles de App
Layout
Google AdMob
Contenedor
Agrupa otros componentes en fila o columna (se elige en Layout). Es el bloque básico para armar cualquier pantalla: casi todo lo demás va dentro de uno o varios
Mosaico de imágenes
Portada
🧭 Navegación
Zona (entrar / salir)
Le pide al TELÉFONO que vigile un círculo (un punto y un radio) y corre tus pasos cuando la persona ENTRA o SALE de él. Lo vigila el sistema (Android / iOS) con
Guías
Tutoriales paso a paso.
Controles de Web
Funciones
Qué puede hacer tu lógica, paso a paso.
Básicos
Unity Ads
Panel deslizable
Un panel que el usuario sube y baja con el dedo desde su barrita y que SE QUEDA donde lo suelte, como la información del chofer en Uber: abajo solo se ve la par
Carrusel de imágenes
Características
💬 Interfaz
Obtener mi ubicación (get geolocation)
Lee la ubicación actual del dispositivo, UNA vez.
Entradas:
• Precisión — Normal (rápida, ahorra batería) o Alta (usa el GPS, más exacta pero más lenta).
SALI
App
Pantallas, componentes y lógica.
Formulario
Agora
Swiper
Un contenedor con varias PÁGINAS que se deslizan de lado, como un carrusel: banners, pasos de bienvenida, galerías, fichas de productos…
Cómo se arma: agrega p
Texto
Servicios
🔤 Variables
Escuchar mi ubicación (cada movimiento)
Empieza a seguir la ubicación del dispositivo y corre los pasos de «Cada vez que me muevo» cada vez que la persona se mueve lo que tú pidas. Registra sus pasos:
Datos
Tarjetas
Una pila de TARJETAS como en Tinder: se ve la de arriba, se arrastra con el dedo y, si la sueltas lejos hacia un lado, sale volando y corre el evento de esa dir
Título
Portafolio / Proyectos
🔀 Lógica
Rastrear y guardar mi ubicación (tracking)
COLECCIONES: son los grupos de puntos que rastreas (conductores, repartidores, zonas…). Las creas tú en el menú «Geolocalización» y aquí escribes su nombre (o e
Componentes de API
Texto
Cualquier texto de la pantalla: un título, un subtítulo o un párrafo — se elige con "Estilo". Los títulos ya van en negrita; "Negrita" se la pone a los demás es
Imagen
Productos
🔔 Alertas
Dejar de escuchar / rastrear
Detiene una escucha de ubicación, un rastreo o una escucha de puntos que iniciaste antes, usando el nombre que les pusiste. Con el nombre vacío detiene TODOS lo
Botón
Un botón que el usuario toca o hace clic. Puedes cambiar el color de fondo y del texto (sin elegir, usa el del "Estilo"); también se pueden cambiar desde un flu
Calificación
Testimonios
🎛 Controles
Distancia entre dos puntos (get distance)
Calcula la distancia en línea recta entre dos puntos de la Tierra (fórmula de la esfera, exacta para distancias de app).
Entradas: latitud y longitud del punto
Campo
Un campo donde el usuario captura un dato, y que se transforma según el "Tipo de campo": texto, texto largo, número, contraseña, correo, teléfono, fecha (calend
Colores
Preguntas frecuentes
✂️ Texto
Guardar punto (set geofire)
COLECCIONES: son los grupos de puntos que rastreas (conductores, repartidores, zonas…). Las creas tú en el menú «Geolocalización» y aquí escribes su nombre (o e
Imagen
Muestra una imagen. Puedes elegirla de tu Storage, usar una Variable de imagen (se reemplaza en un solo lugar y cambia en todas partes), subir una nueva o pegar
Variaciones
Lista personalizada
🧱 Objetos
Borrar punto (delete geofire)
COLECCIONES: son los grupos de puntos que rastreas (conductores, repartidores, zonas…). Las creas tú en el menú «Geolocalización» y aquí escribes su nombre (o e
Ícono
Un ícono de la librería (más de 2000: casa, usuario, carrito, flechas, etc.). Se elige con el buscador, que entiende español e inglés. Cambia su tamaño, color y
Animación Lottie
Quiénes somos
⏱ Tiempo
Obtener un punto por su clave
COLECCIONES: son los grupos de puntos que rastreas (conductores, repartidores, zonas…). Las creas tú en el menú «Geolocalización» y aquí escribes su nombre (o e
Animación Lottie
Muestra una animación Lottie (esas animaciones vectoriales ligeras de LottieFiles y de diseñadores: un cohete, un check, un cargando, un personaje…) en cualquie
Video
Llamado a la acción
🧰 Utilidades
¿Coordenada dentro de un polígono?
Dice si una coordenada está dentro de una zona dibujada con puntos (una colonia, una zona de servicio, una geocerca).
Entradas:
• Latitud y longitud del punto
Cámara
Vista en vivo de la cámara del dispositivo: se ve en pantalla lo que la cámara está viendo. Al abrir la pantalla, la app pide permiso de cámara al usuario (una
Botón
Contacto
📱 Phone APIs
Buscar puntos cercanos (get all en un radio)
COLECCIONES: son los grupos de puntos que rastreas (conductores, repartidores, zonas…). Las creas tú en el menú «Geolocalización» y aquí escribes su nombre (o e
Video
Reproduce un video (una URL pública, o uno que subiste a tu Storage). A diferencia de un reproductor normal, ESTE COMPONENTE NO TIENE CONTROLES dibujados (ni pl
Campo
Mapa
➗ Matemáticas
Escuchar puntos en un radio (en vivo)
COLECCIONES: son los grupos de puntos que rastreas (conductores, repartidores, zonas…). Las creas tú en el menú «Geolocalización» y aquí escribes su nombre (o e
Vista web
Muestra una página web dentro de tu app, como una ventana al navegador. Escribe la dirección (si omites https:// se lo pongo). Puedes usar {{variables}} en la d
Espacio
Texto libre
🔌 API
Buscar dispositivos cercanos (BLE scan)
Busca dispositivos Bluetooth de bajo consumo (BLE) cercanos y avisa de cada uno que encuentra.
Entradas:
• Nombre — para detenerla con «Dejar de buscar / escuc
Gráfico
Dibuja un gráfico (barras, líneas, área, circular o dona) con los datos que tú le des. Los datos van en «Datos (JSON)»: puede ser un arreglo de objetos como [{"
Línea
Sección en blanco
🗄 Datos locales
Conectar a un dispositivo
Se conecta a un dispositivo BLE que ya encontraste con «Buscar dispositivos cercanos» (usa su id).
Si ya estabas conectado a ese mismo id, no vuelve a conectar
Anuncio (AdMob)
Un anuncio de Google AdMob dentro de tu app: así monetizas con tu propia cuenta de AdMob (los ingresos son tuyos). Mientras el «Modo de prueba» esté activado se
Anuncio (AdSense)
☁️ Base de datos
Desconectar
Cierra la conexión con un dispositivo BLE conectado. Si no estaba conectado, no pasa nada.
Anuncio (Unity Ads)
Un anuncio de Unity Ads dentro de tu app, con tu propia credencial (App Key + Ad Unit ID de banner, se administran en «Google APIs» → pestaña Unity Ads) — a dif
Swiper
📣 Notificaciones
Leer una característica
Lee el valor actual de una característica de un dispositivo YA CONECTADO (con «Conectar a un dispositivo»).
El UUID del servicio y de la característica los da
Transmisión en vivo
Transmisión en vivo DE VERDAD con Agora. Rol «Transmitir»: enciende tu cámara/micrófono y se une como transmisor al canal (normalmente el que dejó el paso «Inic
Contenedor
👤 Usuario
Escribir una característica
Envía un valor a una característica de un dispositivo YA CONECTADO — por ejemplo, mandarle a una impresora BLE los bytes de lo que va a imprimir, o a un sensor
Walkie-talkie (PTT)
Walkie-talkie DE VERDAD con Agora (solo voz, sin componente visual aparte): al aparecer en pantalla se une solo al Canal (mudo por defecto); al desaparecer, se
Secciones
📍 Ubicación
Suscribirse a una característica
Escucha en VIVO una característica de un dispositivo YA CONECTADO: cada vez que el aparato manda un valor nuevo por su cuenta (notificación BLE, ej. una báscula
Chat
Chat DE VERDAD con Agora Chat: lista de mensajes + campo de texto + botón enviar, ya armado (no personalizable por ahora). Necesita que la credencial de Agora t
📶 Bluetooth
Dejar de buscar / escuchar
Detiene una búsqueda de dispositivos o una suscripción a una característica, por el nombre que le pusiste. Con el nombre vacío detiene TODAS las que estén activ
Separador
Una línea para separar visualmente dos bloques de contenido (por ejemplo, un formulario de sus botones). Horizontal (de lado a lado) o vertical (de arriba a aba
🏷️ NFC
Leer etiqueta NFC
Espera a que se acerque una etiqueta NFC al teléfono y la lee.
Entradas:
• Duración — segundos que espera antes de avisar error (0 = espera hasta que canceles
Mapa
Un mapa centrado en una latitud/longitud. Proveedor: «Google Maps» u «Mapbox» (los dos necesitan una credencial del proyecto, sección "Google APIs" del menú) u
📣 Anuncios
Escribir etiqueta NFC
Espera a que se acerque una etiqueta NFC al teléfono y escribe un valor en ella (la reemplaza: una etiqueta solo guarda un valor a la vez).
Texto lee/escribe u
📞 Llamadas
Cancelar espera de NFC
Cancela una «Leer etiqueta NFC» o «Escribir etiqueta NFC» que esté esperando que acerques una etiqueta. Si no había ninguna esperando, no pasa nada.
🫧 Flotantes
Mostrar intersticial (Unity Ads)
Carga y muestra un anuncio a pantalla completa (intersticial) con Unity Ads, y espera a que la persona lo cierre.
Entradas:
• Nombre de la credencial — escribe
🎵 Audio / Música
Mostrar recompensado (Unity Ads)
Carga y muestra un anuncio con recompensa (la persona elige verlo completo a cambio de algo que tú defines dentro de tu app, ej. monedas o un intento extra).
E
🛢️ SQL
Cronómetro
Un cronómetro con nombre. Cada acción hace UNA cosa clara, así no hay dudas de qué pasa si ya estaba prendido:
• Iniciar — lo pone a correr. Si ya estaba corri
🐞 Depuración
Concat (unir textos)
Une textos en uno solo. Empieza con dos campos y puedes agregar todos los que quieras con «+ Agregar texto»; se unen en el orden en que están.
Entradas:
• Text
🏬 Tienda (Play Store)
Conditional (si…)
Pregunta si algo se cumple y sigue por UNA de dos salidas:
• Verdadero (true) — cuando SÍ se cumple.
• Falso (false) — cuando NO se cumple.
Entradas:
• Valor —
Debounce (esperar a que se calme)
Espera un tiempo antes de ejecutar algo y, si lo vuelven a llamar antes de que pase, EMPIEZA DE NUEVO. Sirve, por ejemplo, para buscar mientras alguien escribe:
Generate random number
Genera un número al azar DENTRO de un rango: nunca sale uno menor que «Desde» ni mayor que «Hasta» (los dos límites sí pueden salir). Por ejemplo, entre 1 y 50
Generate UUID
Genera un identificador único (UUID v4), por ejemplo «3f2b8c1e-…». Sirve para darle un id a un registro nuevo sin que se repita.
Resultado: el UUID (menú ▾ → «
Range iteration (recorrer un rango)
Recorre una lista de números en orden: empieza en «Desde», avanza de «Intervalo» en «Intervalo» y termina en «Hasta» (incluido). Por ejemplo Desde 0, Hasta 10 e
Object keys (claves de un objeto)
Te da la LISTA de las propiedades (claves) de un objeto, no sus valores. Solo las del primer nivel: las que lo componen directamente, sin entrar a los objetos d
Object build (armar un objeto)
Arma un objeto desde cero, propiedad por propiedad: una clave y su valor (type → pedro, nombre → juan…) y «+ Agregar propiedad» para más.
Una clave puede lleva
Object concat (unir objetos)
Junta varios objetos en uno solo. Empieza con dos y puedes agregar más. Si dos objetos tienen la misma clave, gana el que va después.
• Superficial — la clave
Object delete (borrar una propiedad)
Quita una propiedad de un objeto y te da el objeto sin ella.
Una clave puede llevar puntos para llegar a lo de adentro: «type.color» es la propiedad «color» de
Object set (poner un valor)
Pone un valor en una clave de un objeto y te da el objeto actualizado (lo contrario de «Object delete»). Si la clave ya existía, se reemplaza; si no, se crea.
Value is invalid (¿tiene valor?)
Revisa si un valor de verdad TIENE algo (una variable, un objeto, el resultado de una Petición HTTP…) y sigue por UNA de dos salidas:
• Es válido (isValid) — ti
Regex text (patrón de texto)
Revisa un texto contra un patrón de expresión regular (regex) y sigue por UNA de dos salidas:
• Coincide (match) — el texto cumple el patrón.
• No coincide — no
Search in object (buscar un valor)
Busca un valor DENTRO de un objeto o lista completos —recorre TODO, sin que tengas que saber la ruta— y te dice dónde apareció.
Entradas:
• Objeto o lista — el
Set timeout (esperar una vez)
Espera un tiempo y luego corre sus pasos UNA sola vez, como una alarma. Si lo vuelves a llamar con el MISMO nombre antes de que suene, la espera anterior se can
Set interval (repetir cada tanto)
Corre sus pasos una y otra vez, cada tanto tiempo, hasta que lo detengas con «Stop interval» — como un reloj. Llamarlo de nuevo con el MISMO nombre reinicia el
Stop interval
Detiene un «Set interval» o un «Set timeout» que tenga este mismo nombre y que todavía no haya sonado. Si no hay ninguno con ese nombre, no pasa nada (no es un
String interpolation (texto con datos)
Escribe un texto libre y, donde pongas ${nombre}, se crea un campo para decirle de dónde sale ese dato; el resultado es el texto con todos los ${…} ya sustituid
Reproducir video (play)
Empieza (o continúa) a reproducir un componente Video de esta pantalla.
Entrada:
• Video — el componente Video a controlar.
El componente Video no trae contro
Detener video (stop)
Pausa un componente Video de esta pantalla, en el punto donde va.
Entrada:
• Video — el componente Video a controlar.
Si ya estaba detenido, no pasa nada. No
Copiar al portapapeles
Copia un texto al portapapeles del dispositivo, para que la persona lo pueda pegar donde quiera (por ejemplo, un código de referido o el número de una orden).
Hacer una llamada
Abre el marcador del teléfono con el número ya escrito, listo para llamar (la persona todavía tiene que tocar «Llamar»: por seguridad, ninguna app puede marcar
Reproducir un sonido (tono)
Reproduce un sonido corto una sola vez (un tono, un "ding", un efecto) — NO es música de fondo: no se puede pausar ni tiene lista. Para música en segundo plano
Descargar archivo
Descarga un archivo desde una dirección web al dispositivo.
Entradas:
• Archivo — la dirección (URL) del archivo a descargar (debe empezar con https://).
• Nom
Tomar foto
Abre la cámara del dispositivo a pantalla completa para tomar UNA foto (con la interfaz nativa: enfocar, disparar, revisar y repetir si hace falta).
Entrada:
•
Grabar video
Abre la cámara del dispositivo a pantalla completa para grabar UN video (con la interfaz nativa: grabar, detener, revisar y repetir si hace falta).
Entradas:
•
Escanear código (QR / barras)
Abre la cámara a pantalla completa, lista para leer un código QR o de barras (reconoce el tipo solo: QR, EAN-13, Code128, UPC…).
En cuanto detecta un código vá
Elegir un contacto
Abre la lista de contactos del dispositivo para que la persona elija UNO, con su propia interfaz nativa de buscar y desplazarse (no hace falta pedir permiso de
Autenticación biométrica (huella / rostro)
Pide a la persona desbloquear con lo que su dispositivo tenga configurado (huella digital, Face ID o reconocimiento facial de Android) — útil antes de una acció
Agregar evento al calendario
Agrega un evento al calendario del dispositivo (pide permiso de calendario la primera vez).
Entradas:
• Título, Inicio, Fin, Notas, Ubicación — los datos del e
Reproducir canción (play)
Reproduce una canción de inmediato, en segundo plano (sigue sonando con la app minimizada). Si ya sonaba algo (suelto o de la lista), lo reemplaza.
Entradas:
•
Pausar
Pausa lo que esté sonando ahora mismo, en el punto donde va (se puede continuar después con «Reanudar»). Si no había nada sonando, no pasa nada. No tiene salida
Reanudar (play de nuevo)
Continúa la canción pausada, justo donde se quedó.
SALIDAS: «Éxito» y «Error» (no hay ninguna canción pausada para reanudar — usa «Reproducir canción» o «Repro
Detener
Detiene del todo lo que esté sonando y suelta el reproductor — a diferencia de «Pausar», se pierde el punto donde iba. La lista de reproducción NO se vacía (sig
Agregar canción a la lista
Agrega una canción al FINAL de la lista de reproducción, sin interrumpir lo que esté sonando ahora (para eso está «Reproducir canción»).
Usa «Reproducir la lis
Reproducir la lista
Empieza a reproducir la lista de reproducción: desde la primera canción si es la primera vez, o desde donde se había quedado si ya se estaba usando (por ejemplo
Siguiente canción
Pasa a la siguiente canción de la lista (si estaba en la última, vuelve a la primera).
SALIDAS: «Éxito» y «Error» (la lista está vacía).
Canción anterior
Regresa a la canción anterior de la lista (si estaba en la primera, va a la última).
SALIDAS: «Éxito» y «Error» (la lista está vacía).
Cambiar el volumen
Cambia el volumen de la música de fondo (0 = mudo, 100 = normal). Se queda así para la siguiente canción que suene, hasta que se vuelva a cambiar. No afecta a «
Ejecutar SQL
Corre una consulta SQL de verdad contra una base de datos Postgres o MySQL que diste de alta en «Base de datos» → Conexiones SQL (tu Supabase principal solo cue
Ir a pantalla
Navega a otra pantalla de la app.
Entrada:
• Pantalla — elige una pantalla fija de la lista, o usa el ícono 🔗 para que el destino dependa de una variable (por
Push screen (apilar pantalla)
Abre otra pantalla ENCIMA de la actual: la pantalla de la que sales NO se cierra, se queda debajo (se van apilando) y puedes volver a ella con «Return to last s
Replace screen (reemplazar todas)
Abre otra pantalla y CIERRA todas las demás: ya no hay pantallas debajo ni forma de volver atrás. Sirve, por ejemplo, para pasar del login a la pantalla princip
Replace top screen (reemplazar la de arriba)
Cambia SOLO la pantalla de arriba (la que se ve) por otra. Las que estaban debajo se quedan, así que al volver atrás regresas a la que estaba antes de la reempl
Return to last screen (volver a la anterior)
Cierra la pantalla de arriba y vuelve a la anterior, que sigue viva tal como la dejaste. Si la usas varias veces se va regresando pantalla por pantalla. Si ya e
Show image viewer
Muestra una imagen a PANTALLA COMPLETA, sobre todo lo demás, con un botón para cerrarla.
Entrada:
• Imagen — la dirección de la imagen (una URL que empiece con
Show file browser
Abre el selector del teléfono (o del navegador, en la Vista previa) para que la persona elija uno o varios archivos.
Dónde elegir:
• Explorador de archivos — e
Upload file
Sube un archivo a la nube de TU CLIENTE: al Storage de su Supabase o al Firebase Storage de su Firebase (según lo que el proyecto usa para los datos en «Base de
Mostrar aviso (toast)
Muestra un aviso pasajero en pantalla (unos segundos) con el texto que pongas, con un color según su gravedad.
Entradas:
• Mensaje — el texto del aviso; puede
Agregar lista (colección)
Convierte un Contenedor de tu pantalla en una LISTA dinámica: repite un diseño por cada elemento de un JSON. Sirve para catálogos, chats, historiales… donde los
Agregar swiper (colección)
Llena un SWIPER con datos: crea una PÁGINA por cada elemento de un JSON, repitiendo el diseño de la página plantilla. Sirve para carruseles de productos, fichas
Panel deslizable (abrir / cerrar)
Abre, cierra o mueve un PANEL DESLIZABLE de esta pantalla (el que sube desde abajo, como la información del chofer en Uber), con animación.
• Abrir del todo: l
Cambiar tema (claro / oscuro)
Cambia entre el modo claro y el modo oscuro de la app, al instante.
• Alternar: si estaba claro pasa a oscuro y al revés (ideal para un botón sol/luna).
• Pone
Cambiar idioma
Pone el idioma ACTIVO de la app (el que usan todos los textos con «{{languages.id}}»), al instante. Escribe el mismo código que le pusiste a ese idioma en la pe
Menú lateral (abrir / cerrar)
Abre, cierra o alterna el MENÚ LATERAL de la app (el que se desliza desde un lado, con el botón de hamburguesa). El menú se diseña una sola vez, como un compone
Loader (cargando)
Pone (o quita) un «cargando» que cubre toda la pantalla: la app se oscurece, no se puede tocar nada de atrás y en el centro aparece una animación. Úsalo antes d
Cambiar variable
Cambia el valor de una variable de la app o de esta pantalla.
Entradas:
• Variable — cuál variable cambiar (siempre de la lista, no admite texto libre).
• Acci
Enviar alerta
Muestra una alerta real en el dispositivo, con título, subtítulo e imagen.
Entradas:
• Título
• Subtítulo
• Imagen (URL)
Es asíncrona y NO espera respuesta: e
Confirmation alert
Muestra una alerta con DOS botones y espera a que la persona elija uno. Sigue por UNA de dos salidas:
• Aceptó — tocó el botón de aceptar.
• Canceló — tocó el d
Input dialog
Muestra una alerta con un CAMPO DE TEXTO para que la persona escriba algo, y espera a que acepte o cancele. Sigue por UNA de dos salidas:
• Aceptó — tocó el bot
Revisar actualización (Play Store)
Consulta de verdad a Google Play si hay una versión más nueva publicada que la que tienes instalada. Sigue por UNA de tres salidas:
• Hay actualización — ya emp
Completar actualización (Play Store)
Reinicia la app para terminar de instalar una actualización que YA se descargó con «Revisar actualización». Si todavía no hay nada descargado, este paso simplem
Pedir reseña (Play Store)
Abre el diálogo REAL de reseña de Play Store (In-App Review de Google) para que la persona califique la app sin salir de ella. Sigue por UNA de dos salidas:
• M
Crear cuenta (registrar usuario)
Crea la cuenta de una persona en tu app o landing con SUPABASE AUTH (la Supabase que conectaste en «Base de datos»): K-ode no maneja contraseñas, lo hace Supaba
Iniciar sesión (correo y contraseña)
Inicia la sesión de una persona que ya tiene cuenta, con su correo y su contraseña, usando SUPABASE AUTH de tu proyecto. La sesión se queda guardada en el dispo
Cerrar sesión
Cierra la sesión del usuario en este dispositivo. Después {{user.…}} queda vacío y «¿Hay sesión?» dice que no. No borra la cuenta.
SALIDAS: «Sesión cerrada» (n
¿Hay sesión iniciada? (isLogin)
Comprueba si hay un usuario con la sesión iniciada. Confirma con Supabase que la sesión siga vigente (si venció, la cierra); si no hay internet, confía en la se
Recuperar contraseña
Pide a Supabase que envíe a ese correo un enlace para crear una contraseña nueva (el correo lo envía TU Supabase, con el texto y el remitente que hayas configur
Actualizar datos del usuario (correo, nombre…)
Cambia los datos del usuario que tiene la sesión iniciada.
Solo se cambia lo que llenes: un campo vacío se deja como estaba. Correo, nombre, teléfono, foto y c
Iniciar sesión con Google
Abre una ventana para que la persona entre con su cuenta de Google y, al terminar, deja la sesión iniciada — igual que «Iniciar sesión (correo y contraseña)» pe
Iniciar sesión con Facebook
Abre una ventana para que la persona entre con su cuenta de Facebook y, al terminar, deja la sesión iniciada — igual que «Iniciar sesión (correo y contraseña)»
Switch (comparar valor)
Compara un valor contra las opciones que tú definas, y sigue solo por la salida que coincida.
Entrada:
• Valor a revisar — el valor que se compara contra cada
Code compute (JavaScript)
Escribe código de JavaScript para hacer lógica: cálculos, revisar datos, decidir qué hacer. NO puede modificar controles, ni pedir datos a internet, ni usar «im
Code compute (Python)
Escribe código de Python para hacer lógica: cálculos, revisar datos, decidir qué hacer. NO puede modificar controles, ni pedir datos a internet, ni usar «import
Modificar control
Cambia una propiedad de un control de la pantalla MIENTRAS la app corre: el texto de un Texto, el color de fondo de un Contenedor, mostrar u ocultar algo, etc.
Animar control
Anima UN control de la pantalla, una sola vez, cuando tú lo decidas: al tocar un botón, al cargar la pantalla, cuando llega un dato…
Entradas:
• Control — cuál
Operación aritmética
Hace una cuenta con números.
Entradas:
• Valor 1 — el primer número.
• Operación + Valor 2 — elige qué hacer (sumar, restar, multiplicar, dividir, residuo o po
Petición HTTP
Hace una petición a una API (un servicio en internet) y guarda lo que responde para usarlo en los pasos que siguen.
Configuración:
• Método — GET (leer), POST
Guardar fila
Guarda una fila NUEVA en una tabla local del dispositivo (las que armas en «Base de datos → En el dispositivo»). La información se queda en el teléfono o navega
Consultar filas
Lee filas de una tabla local del dispositivo.
Configuración:
• Tabla — la tabla a leer.
• Condiciones — opcionales; todas deben cumplirse («y»). Cada una compa
Actualizar filas
Cambia valores de las filas de una tabla local que cumplan las condiciones.
Configuración:
• Tabla y Condiciones — cuáles filas cambiar. OJO: sin condiciones s
Borrar filas
Borra las filas de una tabla local que cumplan las condiciones. No se puede deshacer.
Configuración:
• Tabla y Condiciones — cuáles filas borrar. OJO: sin cond
Guardar documento (local)
Crea un documento NUEVO en una colección local del dispositivo — no hace falta crearla antes, se crea sola al guardar el primero. Igual espíritu que «Guardar fi
Consultar documentos (local)
Lee documentos de una colección local del dispositivo. Condiciones: solo comparar (es igual/distinto/mayor/menor), igual que la Firestore real.
Resultado: la l
Actualizar documentos (local)
Cambia documentos de una colección local que cumplan las condiciones. OJO: sin condiciones cambia TODOS los documentos de esa colección.
Resultado: cuántos doc
Borrar documentos (local)
Borra documentos de una colección local que cumplan las condiciones. No se puede deshacer; sin condiciones borra TODOS los documentos de esa colección.
Resulta
Guardar valor (local, árbol)
Agrega o reemplaza un valor en una RUTA del árbol JSON local de este dispositivo (ej. «usuarios» o «pedidos/123») — igual espíritu que «Guardar fila (Realtime)»
Consultar valores (local, árbol)
Lee lo que haya en una ruta del árbol JSON local. Si esa ruta tiene varios hijos, se entregan como filas (uno por hijo, con su clave como id); si es un solo val
Actualizar valores (local, árbol)
Mezcla valores nuevos en una ruta del árbol JSON local, SIN borrar lo que ya hubiera ahí que no toques (solo cambia los campos que agregues). Para reemplazar to
Borrar valores (local, árbol)
Borra lo que haya en una ruta del árbol JSON local (esa ruta y todo lo que tenga debajo). No se puede deshacer.
Resultado: ok.
Guardar fila (Supabase)
Guarda una fila NUEVA en una tabla de tu Supabase — SIEMPRE Supabase, sin importar qué tengas elegido en «Base de datos» (para cuando el proyecto usa las dos nu
Consultar filas (Supabase)
Lee filas de una tabla de tu Supabase — SIEMPRE Supabase, sin importar «Base de datos». Condiciones, Ordenar por y Máximo de filas: con TODOS los operadores (Su
Actualizar filas (Supabase)
Cambia filas de tu Supabase que cumplan las condiciones — SIEMPRE Supabase. OJO: sin condiciones cambia TODAS las filas visibles.
Dos SALIDAS: «Éxito» (cuántas
Borrar filas (Supabase)
Borra filas de tu Supabase que cumplan las condiciones — SIEMPRE Supabase. No se puede deshacer; sin condiciones borra TODAS las filas visibles.
Dos SALIDAS: «
Guardar fila (Firestore)
Crea un documento NUEVO en una colección de tu Firestore — SIEMPRE Firestore, sin importar «Base de datos». Escribe el nombre de la colección tal cual está en t
Consultar filas (Firestore)
Lee documentos de una colección de tu Firestore — SIEMPRE Firestore. Condiciones: solo comparar (es igual/distinto/mayor/menor) — Firestore no tiene «contiene»/
Actualizar filas (Firestore)
Cambia documentos de tu Firestore que cumplan las condiciones — SIEMPRE Firestore. Primero CONSULTA cuáles cumplen y los cambia uno por uno (Firestore no tiene
Borrar filas (Firestore)
Borra documentos de tu Firestore que cumplan las condiciones — SIEMPRE Firestore. No se puede deshacer; primero consulta cuáles cumplen y borra uno por uno.
Do
Guardar fila (Realtime)
Agrega un hijo NUEVO bajo una ruta de tu Realtime Database (Firebase le pone la clave, como un id) — SIEMPRE Realtime Database.
Configuración:
• Ruta — dónde a
Consultar filas (Realtime)
Lee lo que haya en una ruta de tu Realtime Database — SIEMPRE Realtime Database. Sin condiciones (aquí no hay «tabla»: es un árbol, la ruta ES la búsqueda). Si
Actualizar filas (Realtime)
Cambia SOLO los campos que le des en una ruta de tu Realtime Database, sin tocar lo demás que haya ahí — SIEMPRE Realtime Database. A diferencia de Supabase/Fir
Borrar filas (Realtime)
Borra una ruta ENTERA de tu Realtime Database (y todo lo que tenga debajo) — SIEMPRE Realtime Database. No se puede deshacer.
Dos SALIDAS: «Éxito» y «Error» (e
Enviar notificación
Muestra una NOTIFICACIÓN del sistema: aparece arriba de la pantalla aunque el usuario esté en otra app o con la pantalla apagada, con un título, un texto y hast
Enviar notificación push
Manda una notificación push DE VERDAD a otro(s) usuario(s) de tu app — le(s) llega aunque tengan la app cerrada o en segundo plano (a diferencia de «Enviar noti
Iniciar llamada
Inicia una llamada de voz o video DE VERDAD con uno o varios usuarios de tu app (varios ids = llamada grupal). Registra la llamada y avisa a cada destinatario —
Colgar llamada
Cuelga una llamada en curso por su canal (ej. el RESULTADO que dejó «Iniciar llamada») — la pantalla de llamada de K-ode Play ya trae su propio botón de colgar;
Iniciar transmisión
Empieza una transmisión en vivo DE VERDAD — registra el canal para que los espectadores la encuentren (con «Consultar filas» sobre la tabla de transmisiones, st
Terminar transmisión
Marca una transmisión como terminada por su canal (ej. el RESULTADO que dejó «Iniciar transmisión») y corta tu cámara/micrófono.
Sin salidas: el flujo sigue co
Enviar mensaje de chat
Manda un mensaje de chat DE VERDAD desde la LÓGICA — sin necesitar el componente «Chat» abierto en pantalla (útil para un bot de bienvenida, un aviso automático
Mostrar burbuja
Muestra la burbuja flotante de Android ahora mismo, sin esperar a que la app pase a segundo plano (útil para mostrarla solo si, por ejemplo, una variable dice q
Ocultar burbuja
Oculta la burbuja flotante si está visible. Sin salidas: el flujo sigue con el siguiente paso.
Solo corre de verdad en K-ode Play.
Mostrar pantalla superpuesta
Muestra una pantalla «Superpuesta» de la app flotando sobre otras apps, con contenido real (no solo un ícono como la burbuja) — ej. un aviso de "viaje entrante"
Ocultar pantalla superpuesta
Oculta la pantalla superpuesta si está visible. Sin salidas: el flujo sigue con el siguiente paso.
Solo corre de verdad en K-ode Play.
Ciclo (for / para cada)
Repite unos pasos muchas veces. Es el «for» de la lógica: para cada elemento de una lista, N veces, en un rango de números o mientras algo se cumpla.
Se arma e
Detener ciclo (break)
Corta el ciclo AQUÍ: no se hacen más vueltas (las que ya están en marcha, si es un ciclo «A la vez», terminan) y corre «Al detener» en vez de «Al terminar». Es
Siguiente vuelta (continue)
Salta a la SIGUIENTE vuelta: lo que falte de esta vuelta no corre y el ciclo sigue con la próxima. Es el «continue» del for. Solo sirve dentro de «Cada elemento
Agregar resultado de la vuelta
Agrega un valor al RESULTADO DEL CICLO — úsalo cuando quieras que «Al terminar»/«Al detener» sepan qué pasó en CADA vuelta (no solo cuántas corrieron). Puedes u
Devolver valor
El último paso de un VALOR CALCULADO: termina el cálculo y devuelve el valor que pongas aquí a quien lo pidió (el campo donde armaste el valor con «Complejas»).
Log
Muestra un valor completo, en un recuadro copiable dentro de la tarjeta de este mismo paso — para ver qué trae de verdad el resultado de un paso anterior (una P
Devolver (callback)
Termina la función AQUÍ MISMO devolviendo un callback (un resultado, ej. «then» o «error»): quien llamó a la función sigue por ese callback, con el dato de reto
Agregar tarjetas (colección)
Llena un componente TARJETAS (estilo Tinder) con datos: crea una tarjeta por cada elemento de un JSON, repitiendo el diseño de la tarjeta plantilla.
Funciona i
