El primer paso es entender el concepto de API (Application Programming Interface). Una API es un sistema que permite que una aplicación se conecte a un servidor de internet para solicitar información. Proceso:
La aplicación envía una solicitud al servidor.
El servidor procesa la solicitud.
Devuelve la información solicitada.
Ejemplo de información que puede devolver una API:
Clima de una ciudad
Hora de un país
Precio de una moneda
Datos científicos
La información que devuelve la API suele venir en formato JSON (JavaScript Object Notation).
JSON es una estructura de datos organizada en forma de:
claves (keys)
valores (values)
Ejemplo simplificado:
{
"current": {
"temperature": 23,
"windspeed": 5
}
}
Para acceder a los datos hay que navegar por esa estructura.
En el ejemplo:
current → temperature
Antes de usar la API en la app, se debe de probar en el navegador. Pasos:
Copiar la URL de la API.
Pegarlo en el navegador.
Ejecutarlo.
Observar los datos JSON que devuelve.
Ejemplo de API usada en el vídeo:
API del clima basada en:
latitud
longitud
Ejemplo:
latitude=19.04
longitude=-98.20
Esto devuelve el clima de Puebla.
Una vez obtenida la respuesta JSON, se analiza su estructura.
Ejemplo de jerarquía:
current
├── temperature_2m
└── windspeed
Para obtener la temperatura se debe acceder a:
current → temperature_2m
En el Designer de App Inventor se añaden los componentes. Componentes utilizados:
Labels (Etiquetas)
Para mostrar:
temperatura
velocidad del viento
hora
Buttons (Botones)
Para iniciar las consultas.
Ejemplo:
Botón Consulta (para obtener clima)
Botón Time (para iniciar relojes)
Se utilizan componentes Web o WebViewer.
Se añade un WebViewer por cada consulta.
Ejemplo:
WebViewer clima Puebla
WebViewer hora Los Ángeles
WebViewer hora Londres
WebViewer hora Hong Kong
Cada uno usará una URL diferente.
Se añade un componente:
Clock
Configuración:
TimerEnabled → false
TimerAlwaysFires → false
TimerInterval → 1000 ms
Esto permite ejecutar acciones cada segundo
Cuando se presiona el botón:
Se establece la URL de la API
Se ejecuta una solicitud GET
Bloques:
Button.Click
set Web.URL
call Web.Get
Esto envía la solicitud al servidor.
Cuando llega la respuesta del servidor se verifica el código HTTP.
Si el código es:
200
significa que la solicitud fue correcta.
Bloque lógico:
if responseCode = 200
La respuesta JSON se convierte en un diccionario dentro de App Inventor.
Bloque utilizado:
decode JSON to dictionary
Esto permite acceder a los datos.
Se crea una lista vacía:
create empty list
Y se guarda allí el diccionario con todos los datos.
Ahora se accede a las claves del JSON.
Ejemplo:
Primero se accede a:
current
Después a:
temperature_2m
Esto devuelve el valor real de la temperatura.
El valor obtenido se envía a un Label.
Ejemplo:
set LabelTemperature.Text
Se hace lo mismo con:
velocidad del viento
otros datos.
Se usa otra API que devuelve:
year
month
day
hour
minute
second
En este caso los datos están en una sola estructura, por lo que es más fácil acceder.
Se crean tres WebViewer:
Los Ángeles
Londres
Hong Kong
Cada uno tiene una URL diferente.
Cada segundo el reloj ejecuta:
Solicitud a la API
Recepción de datos
Extracción de:
hora
minuto
segundo
Los valores obtenidos se combinan:
hora : minuto : segundo
Y se muestran en las etiquetas de la app.
La aplicación permite:
Consultar el clima en tiempo real de una ciudad.
Mostrar la hora de diferentes países.
Actualizar la información automáticamente.
Todo esto se consigue mediante:
APIs de internet
JSON
componentes Web
programación por bloques.