primera demo: hola mundo - upm2019/10/17 · al pulsar el botón mundo quiero ver donde está...
TRANSCRIPT
![Page 1: Primera Demo: Hola Mundo - UPM2019/10/17 · Al pulsar el botón Mundo quiero ver donde está Teleco en el mapa. Creamos un outlet al mapa y lo conectamos.-Ya sabemos hacerlo. Es](https://reader034.vdocumento.com/reader034/viewer/2022052616/60a094daee983479917ce531/html5/thumbnails/1.jpg)
© Santiago Pavón - UPM-DIT
Desarrollo de Apps para iOS Primera Demo: Hola Mundo
IWEB 2019-2020Santiago Pavón
ver: 2019.10.17
1
![Page 2: Primera Demo: Hola Mundo - UPM2019/10/17 · Al pulsar el botón Mundo quiero ver donde está Teleco en el mapa. Creamos un outlet al mapa y lo conectamos.-Ya sabemos hacerlo. Es](https://reader034.vdocumento.com/reader034/viewer/2022052616/60a094daee983479917ce531/html5/thumbnails/2.jpg)
© Santiago Pavón - UPM-DIT
Contenido
Familiarizarse con el entorno Xcode:
- editor, simulador, depurador, ...
Crear una app sencilla:
- GUI: botones, etiquetas, mapas, ...
- Conceptos: IBOutlet, IBAction
2
![Page 3: Primera Demo: Hola Mundo - UPM2019/10/17 · Al pulsar el botón Mundo quiero ver donde está Teleco en el mapa. Creamos un outlet al mapa y lo conectamos.-Ya sabemos hacerlo. Es](https://reader034.vdocumento.com/reader034/viewer/2022052616/60a094daee983479917ce531/html5/thumbnails/3.jpg)
© Santiago Pavón - UPM-DIT
Lanzar XcodeBuscarlo con Spotlight (⌘-Espacio)
Buscarlo con Launchpad:
3
![Page 4: Primera Demo: Hola Mundo - UPM2019/10/17 · Al pulsar el botón Mundo quiero ver donde está Teleco en el mapa. Creamos un outlet al mapa y lo conectamos.-Ya sabemos hacerlo. Es](https://reader034.vdocumento.com/reader034/viewer/2022052616/60a094daee983479917ce531/html5/thumbnails/4.jpg)
© Santiago Pavón - UPM-DIT
Crear Nuevo Proyecto
También: Menú File > New > New Project
Xcode 11
4
![Page 5: Primera Demo: Hola Mundo - UPM2019/10/17 · Al pulsar el botón Mundo quiero ver donde está Teleco en el mapa. Creamos un outlet al mapa y lo conectamos.-Ya sabemos hacerlo. Es](https://reader034.vdocumento.com/reader034/viewer/2022052616/60a094daee983479917ce531/html5/thumbnails/5.jpg)
© Santiago Pavón - UPM-DIT
5
![Page 6: Primera Demo: Hola Mundo - UPM2019/10/17 · Al pulsar el botón Mundo quiero ver donde está Teleco en el mapa. Creamos un outlet al mapa y lo conectamos.-Ya sabemos hacerlo. Es](https://reader034.vdocumento.com/reader034/viewer/2022052616/60a094daee983479917ce531/html5/thumbnails/6.jpg)
© Santiago Pavón - UPM-DIT
Xcode 11
6
![Page 7: Primera Demo: Hola Mundo - UPM2019/10/17 · Al pulsar el botón Mundo quiero ver donde está Teleco en el mapa. Creamos un outlet al mapa y lo conectamos.-Ya sabemos hacerlo. Es](https://reader034.vdocumento.com/reader034/viewer/2022052616/60a094daee983479917ce531/html5/thumbnails/7.jpg)
© Santiago Pavón - UPM-DIT
7
![Page 8: Primera Demo: Hola Mundo - UPM2019/10/17 · Al pulsar el botón Mundo quiero ver donde está Teleco en el mapa. Creamos un outlet al mapa y lo conectamos.-Ya sabemos hacerlo. Es](https://reader034.vdocumento.com/reader034/viewer/2022052616/60a094daee983479917ce531/html5/thumbnails/8.jpg)
© Santiago Pavón - UPM-DIT
8
![Page 9: Primera Demo: Hola Mundo - UPM2019/10/17 · Al pulsar el botón Mundo quiero ver donde está Teleco en el mapa. Creamos un outlet al mapa y lo conectamos.-Ya sabemos hacerlo. Es](https://reader034.vdocumento.com/reader034/viewer/2022052616/60a094daee983479917ce531/html5/thumbnails/9.jpg)
© Santiago Pavón - UPM-DIT
Crear GUIClick en el fichero Main.storyboard
- Se abre en el editor (Interface Builder)
Mostrar el inspector.
- Seleccionar la Librería de Objetos
Desde la Librería de Objetos arrastrar hasta la vista del ViewController:
- una UILabel- dos UIButton- un UISlider
9
![Page 10: Primera Demo: Hola Mundo - UPM2019/10/17 · Al pulsar el botón Mundo quiero ver donde está Teleco en el mapa. Creamos un outlet al mapa y lo conectamos.-Ya sabemos hacerlo. Es](https://reader034.vdocumento.com/reader034/viewer/2022052616/60a094daee983479917ce531/html5/thumbnails/10.jpg)
© Santiago Pavón - UPM-DIT
10
![Page 11: Primera Demo: Hola Mundo - UPM2019/10/17 · Al pulsar el botón Mundo quiero ver donde está Teleco en el mapa. Creamos un outlet al mapa y lo conectamos.-Ya sabemos hacerlo. Es](https://reader034.vdocumento.com/reader034/viewer/2022052616/60a094daee983479917ce531/html5/thumbnails/11.jpg)
© Santiago Pavón - UPM-DIT
Cambiar atributos
Seleccionar cada una de las views añadidas y cambiar su aspecto usando el inspector.
- O de forma interactiva en el editor (Interface Builder).
11
![Page 12: Primera Demo: Hola Mundo - UPM2019/10/17 · Al pulsar el botón Mundo quiero ver donde está Teleco en el mapa. Creamos un outlet al mapa y lo conectamos.-Ya sabemos hacerlo. Es](https://reader034.vdocumento.com/reader034/viewer/2022052616/60a094daee983479917ce531/html5/thumbnails/12.jpg)
© Santiago Pavón - UPM-DIT
12
![Page 13: Primera Demo: Hola Mundo - UPM2019/10/17 · Al pulsar el botón Mundo quiero ver donde está Teleco en el mapa. Creamos un outlet al mapa y lo conectamos.-Ya sabemos hacerlo. Es](https://reader034.vdocumento.com/reader034/viewer/2022052616/60a094daee983479917ce531/html5/thumbnails/13.jpg)
© Santiago Pavón - UPM-DIT
Compilar y ejecutar
Probarlo
13
![Page 14: Primera Demo: Hola Mundo - UPM2019/10/17 · Al pulsar el botón Mundo quiero ver donde está Teleco en el mapa. Creamos un outlet al mapa y lo conectamos.-Ya sabemos hacerlo. Es](https://reader034.vdocumento.com/reader034/viewer/2022052616/60a094daee983479917ce531/html5/thumbnails/14.jpg)
© Santiago Pavón - UPM-DIT
Springs y Structs
14
![Page 15: Primera Demo: Hola Mundo - UPM2019/10/17 · Al pulsar el botón Mundo quiero ver donde está Teleco en el mapa. Creamos un outlet al mapa y lo conectamos.-Ya sabemos hacerlo. Es](https://reader034.vdocumento.com/reader034/viewer/2022052616/60a094daee983479917ce531/html5/thumbnails/15.jpg)
© Santiago Pavón - UPM-DIT
Autolayout
15
![Page 16: Primera Demo: Hola Mundo - UPM2019/10/17 · Al pulsar el botón Mundo quiero ver donde está Teleco en el mapa. Creamos un outlet al mapa y lo conectamos.-Ya sabemos hacerlo. Es](https://reader034.vdocumento.com/reader034/viewer/2022052616/60a094daee983479917ce531/html5/thumbnails/16.jpg)
© Santiago Pavón - UPM-DIT
Añadiremos a la clase ViewControler:- un IBOutlet para la Label
es una propiedad que apunta a la UILabel creada.- dos IBActions para atender pulsaciones de los
botonesson los métodos que se ejecutarán al pulsar los botones.
- una IBAction para atender cambios en el Slider.es el método que se ejecutará al mover el slider.
Comportamiento
16
![Page 17: Primera Demo: Hola Mundo - UPM2019/10/17 · Al pulsar el botón Mundo quiero ver donde está Teleco en el mapa. Creamos un outlet al mapa y lo conectamos.-Ya sabemos hacerlo. Es](https://reader034.vdocumento.com/reader034/viewer/2022052616/60a094daee983479917ce531/html5/thumbnails/17.jpg)
© Santiago Pavón - UPM-DIT
¿Qué es IBOutlet?
Es una marca en el código que reconoce Interface Builder
- Indica que la propiedad marcada con IBOutlet apunta a un objeto que se ha creado con el Interface Builder.
No vamos a crear el objeto mediante código.
Usaremos Interface Builder para conectar la propiedad y el objeto.
Crearemos IBOutlets para los elementos creados con IB que queramos manipular desde el código.
- Para manipularlos necesitamos una propiedad que los apunte.
17
![Page 18: Primera Demo: Hola Mundo - UPM2019/10/17 · Al pulsar el botón Mundo quiero ver donde está Teleco en el mapa. Creamos un outlet al mapa y lo conectamos.-Ya sabemos hacerlo. Es](https://reader034.vdocumento.com/reader034/viewer/2022052616/60a094daee983479917ce531/html5/thumbnails/18.jpg)
© Santiago Pavón - UPM-DIT
¿Qué es IBAction?
Es una marca en el código que reconoce el Interface Builder
- Indica que el método marcado con IBAction puede ser la acción que ejecutará algún control.
La conexión entre el control y la acción se hace sin necesidad de usar código.
Usaremos Interface Builder para conectar el control y el método.
18
![Page 19: Primera Demo: Hola Mundo - UPM2019/10/17 · Al pulsar el botón Mundo quiero ver donde está Teleco en el mapa. Creamos un outlet al mapa y lo conectamos.-Ya sabemos hacerlo. Es](https://reader034.vdocumento.com/reader034/viewer/2022052616/60a094daee983479917ce531/html5/thumbnails/19.jpg)
© Santiago Pavón - UPM-DIT
Crear IBOutlet para la EtiquetaSeleccionar Assistant Editor:
Izquierda: Main.storyboardDerecha: ViewController.swift
19
![Page 20: Primera Demo: Hola Mundo - UPM2019/10/17 · Al pulsar el botón Mundo quiero ver donde está Teleco en el mapa. Creamos un outlet al mapa y lo conectamos.-Ya sabemos hacerlo. Es](https://reader034.vdocumento.com/reader034/viewer/2022052616/60a094daee983479917ce531/html5/thumbnails/20.jpg)
© Santiago Pavón - UPM-DIT
Control+B1
20
![Page 21: Primera Demo: Hola Mundo - UPM2019/10/17 · Al pulsar el botón Mundo quiero ver donde está Teleco en el mapa. Creamos un outlet al mapa y lo conectamos.-Ya sabemos hacerlo. Es](https://reader034.vdocumento.com/reader034/viewer/2022052616/60a094daee983479917ce531/html5/thumbnails/21.jpg)
© Santiago Pavón - UPM-DIT
21
![Page 22: Primera Demo: Hola Mundo - UPM2019/10/17 · Al pulsar el botón Mundo quiero ver donde está Teleco en el mapa. Creamos un outlet al mapa y lo conectamos.-Ya sabemos hacerlo. Es](https://reader034.vdocumento.com/reader034/viewer/2022052616/60a094daee983479917ce531/html5/thumbnails/22.jpg)
© Santiago Pavón - UPM-DIT
22
![Page 23: Primera Demo: Hola Mundo - UPM2019/10/17 · Al pulsar el botón Mundo quiero ver donde está Teleco en el mapa. Creamos un outlet al mapa y lo conectamos.-Ya sabemos hacerlo. Es](https://reader034.vdocumento.com/reader034/viewer/2022052616/60a094daee983479917ce531/html5/thumbnails/23.jpg)
© Santiago Pavón - UPM-DIT
Crear IBActions para los Controles
Control+B1
23
![Page 24: Primera Demo: Hola Mundo - UPM2019/10/17 · Al pulsar el botón Mundo quiero ver donde está Teleco en el mapa. Creamos un outlet al mapa y lo conectamos.-Ya sabemos hacerlo. Es](https://reader034.vdocumento.com/reader034/viewer/2022052616/60a094daee983479917ce531/html5/thumbnails/24.jpg)
© Santiago Pavón - UPM-DIT
24
![Page 25: Primera Demo: Hola Mundo - UPM2019/10/17 · Al pulsar el botón Mundo quiero ver donde está Teleco en el mapa. Creamos un outlet al mapa y lo conectamos.-Ya sabemos hacerlo. Es](https://reader034.vdocumento.com/reader034/viewer/2022052616/60a094daee983479917ce531/html5/thumbnails/25.jpg)
© Santiago Pavón - UPM-DIT
25
![Page 26: Primera Demo: Hola Mundo - UPM2019/10/17 · Al pulsar el botón Mundo quiero ver donde está Teleco en el mapa. Creamos un outlet al mapa y lo conectamos.-Ya sabemos hacerlo. Es](https://reader034.vdocumento.com/reader034/viewer/2022052616/60a094daee983479917ce531/html5/thumbnails/26.jpg)
© Santiago Pavón - UPM-DIT
Repetimos los mismo con el botón mundo y con el slider.
26
![Page 27: Primera Demo: Hola Mundo - UPM2019/10/17 · Al pulsar el botón Mundo quiero ver donde está Teleco en el mapa. Creamos un outlet al mapa y lo conectamos.-Ya sabemos hacerlo. Es](https://reader034.vdocumento.com/reader034/viewer/2022052616/60a094daee983479917ce531/html5/thumbnails/27.jpg)
© Santiago Pavón - UPM-DIT
27
![Page 28: Primera Demo: Hola Mundo - UPM2019/10/17 · Al pulsar el botón Mundo quiero ver donde está Teleco en el mapa. Creamos un outlet al mapa y lo conectamos.-Ya sabemos hacerlo. Es](https://reader034.vdocumento.com/reader034/viewer/2022052616/60a094daee983479917ce531/html5/thumbnails/28.jpg)
© Santiago Pavón - UPM-DIT
28
![Page 29: Primera Demo: Hola Mundo - UPM2019/10/17 · Al pulsar el botón Mundo quiero ver donde está Teleco en el mapa. Creamos un outlet al mapa y lo conectamos.-Ya sabemos hacerlo. Es](https://reader034.vdocumento.com/reader034/viewer/2022052616/60a094daee983479917ce531/html5/thumbnails/29.jpg)
© Santiago Pavón - UPM-DIT
Conectar IBOutlet y IBActionExisten varias formas de conectar los Outlets y Actions:
- En las transparencias anteriores hemos conectado los outlets y las Actions usando Ctrl+Botón1 desde un elemento del IB hasta el fichero .swift.
- Seleccionamos IBOutlet para crear una propiedad.- Seleccionamos IBAction para crear un método.
Otras formas de conectar:
- Seleccionando algún control en el IB, y conectando los eventos desde el inspector de conexiones.
- En el modo asistente, desde el editor con el código del fichero swift, hasta los elementos en el editor IB.
Usando los círculos situados en margen izquierdo del editor de código.
- Desde los menús popup que muestran los elementos en el editor IB.
- Usando Ctrl-Botón1 entre elementos en el editor IB.
- etc…
29
![Page 30: Primera Demo: Hola Mundo - UPM2019/10/17 · Al pulsar el botón Mundo quiero ver donde está Teleco en el mapa. Creamos un outlet al mapa y lo conectamos.-Ya sabemos hacerlo. Es](https://reader034.vdocumento.com/reader034/viewer/2022052616/60a094daee983479917ce531/html5/thumbnails/30.jpg)
© Santiago Pavón - UPM-DIT
30
![Page 31: Primera Demo: Hola Mundo - UPM2019/10/17 · Al pulsar el botón Mundo quiero ver donde está Teleco en el mapa. Creamos un outlet al mapa y lo conectamos.-Ya sabemos hacerlo. Es](https://reader034.vdocumento.com/reader034/viewer/2022052616/60a094daee983479917ce531/html5/thumbnails/31.jpg)
© Santiago Pavón - UPM-DIT
31
![Page 32: Primera Demo: Hola Mundo - UPM2019/10/17 · Al pulsar el botón Mundo quiero ver donde está Teleco en el mapa. Creamos un outlet al mapa y lo conectamos.-Ya sabemos hacerlo. Es](https://reader034.vdocumento.com/reader034/viewer/2022052616/60a094daee983479917ce531/html5/thumbnails/32.jpg)
© Santiago Pavón - UPM-DIT
popup
32
![Page 33: Primera Demo: Hola Mundo - UPM2019/10/17 · Al pulsar el botón Mundo quiero ver donde está Teleco en el mapa. Creamos un outlet al mapa y lo conectamos.-Ya sabemos hacerlo. Es](https://reader034.vdocumento.com/reader034/viewer/2022052616/60a094daee983479917ce531/html5/thumbnails/33.jpg)
© Santiago Pavón - UPM-DIT
popup
33
![Page 34: Primera Demo: Hola Mundo - UPM2019/10/17 · Al pulsar el botón Mundo quiero ver donde está Teleco en el mapa. Creamos un outlet al mapa y lo conectamos.-Ya sabemos hacerlo. Es](https://reader034.vdocumento.com/reader034/viewer/2022052616/60a094daee983479917ce531/html5/thumbnails/34.jpg)
© Santiago Pavón - UPM-DIT
Control+B1
34
![Page 35: Primera Demo: Hola Mundo - UPM2019/10/17 · Al pulsar el botón Mundo quiero ver donde está Teleco en el mapa. Creamos un outlet al mapa y lo conectamos.-Ya sabemos hacerlo. Es](https://reader034.vdocumento.com/reader034/viewer/2022052616/60a094daee983479917ce531/html5/thumbnails/35.jpg)
© Santiago Pavón - UPM-DIT
Control+B1
35
![Page 36: Primera Demo: Hola Mundo - UPM2019/10/17 · Al pulsar el botón Mundo quiero ver donde está Teleco en el mapa. Creamos un outlet al mapa y lo conectamos.-Ya sabemos hacerlo. Es](https://reader034.vdocumento.com/reader034/viewer/2022052616/60a094daee983479917ce531/html5/thumbnails/36.jpg)
© Santiago Pavón - UPM-DIT
El Código de los Métodos
36
![Page 37: Primera Demo: Hola Mundo - UPM2019/10/17 · Al pulsar el botón Mundo quiero ver donde está Teleco en el mapa. Creamos un outlet al mapa y lo conectamos.-Ya sabemos hacerlo. Es](https://reader034.vdocumento.com/reader034/viewer/2022052616/60a094daee983479917ce531/html5/thumbnails/37.jpg)
© Santiago Pavón - UPM-DIT
Compilar y ejecutar
Probarlo
37
![Page 38: Primera Demo: Hola Mundo - UPM2019/10/17 · Al pulsar el botón Mundo quiero ver donde está Teleco en el mapa. Creamos un outlet al mapa y lo conectamos.-Ya sabemos hacerlo. Es](https://reader034.vdocumento.com/reader034/viewer/2022052616/60a094daee983479917ce531/html5/thumbnails/38.jpg)
© Santiago Pavón - UPM-DIT
MKMapView
38
![Page 39: Primera Demo: Hola Mundo - UPM2019/10/17 · Al pulsar el botón Mundo quiero ver donde está Teleco en el mapa. Creamos un outlet al mapa y lo conectamos.-Ya sabemos hacerlo. Es](https://reader034.vdocumento.com/reader034/viewer/2022052616/60a094daee983479917ce531/html5/thumbnails/39.jpg)
© Santiago Pavón - UPM-DIT
Si la aplicación se llama Hola Mundo, entonces quiero ver el mundo.
Desde la librería de objetos añadimos un MKMapView a la vista.
Ver el mundo
39
![Page 40: Primera Demo: Hola Mundo - UPM2019/10/17 · Al pulsar el botón Mundo quiero ver donde está Teleco en el mapa. Creamos un outlet al mapa y lo conectamos.-Ya sabemos hacerlo. Es](https://reader034.vdocumento.com/reader034/viewer/2022052616/60a094daee983479917ce531/html5/thumbnails/40.jpg)
© Santiago Pavón - UPM-DIT
40
![Page 41: Primera Demo: Hola Mundo - UPM2019/10/17 · Al pulsar el botón Mundo quiero ver donde está Teleco en el mapa. Creamos un outlet al mapa y lo conectamos.-Ya sabemos hacerlo. Es](https://reader034.vdocumento.com/reader034/viewer/2022052616/60a094daee983479917ce531/html5/thumbnails/41.jpg)
© Santiago Pavón - UPM-DIT
Al pulsar el botón Mundo quiero ver donde está Teleco en el mapa.
Creamos un outlet al mapa y lo conectamos.
- Ya sabemos hacerlo.Es igual que con la UILabel.
En el método updateMundo ponemos las coordenadas de Teleco en el mapa.
Hay que importar el framework MapKit:
import MapKit
Teleco
41
![Page 42: Primera Demo: Hola Mundo - UPM2019/10/17 · Al pulsar el botón Mundo quiero ver donde está Teleco en el mapa. Creamos un outlet al mapa y lo conectamos.-Ya sabemos hacerlo. Es](https://reader034.vdocumento.com/reader034/viewer/2022052616/60a094daee983479917ce531/html5/thumbnails/42.jpg)
© Santiago Pavón - UPM-DIT
Control+B1
42
![Page 43: Primera Demo: Hola Mundo - UPM2019/10/17 · Al pulsar el botón Mundo quiero ver donde está Teleco en el mapa. Creamos un outlet al mapa y lo conectamos.-Ya sabemos hacerlo. Es](https://reader034.vdocumento.com/reader034/viewer/2022052616/60a094daee983479917ce531/html5/thumbnails/43.jpg)
© Santiago Pavón - UPM-DIT
43
![Page 44: Primera Demo: Hola Mundo - UPM2019/10/17 · Al pulsar el botón Mundo quiero ver donde está Teleco en el mapa. Creamos un outlet al mapa y lo conectamos.-Ya sabemos hacerlo. Es](https://reader034.vdocumento.com/reader034/viewer/2022052616/60a094daee983479917ce531/html5/thumbnails/44.jpg)
© Santiago Pavón - UPM-DIT
Al incluir la sentencia import MapKit en el fichero ViewController.swift:
- Se importan las cabeceras del framework MapKit, haciendo que el tipo MKMapView sea conocido.
- Al construir el ejecutable de la aplicación, se enlaza con el framework MapKit.
Nota: sin la sentencia import, el framework MapKit debería añadirse al proyecto manualmente.
44
![Page 45: Primera Demo: Hola Mundo - UPM2019/10/17 · Al pulsar el botón Mundo quiero ver donde está Teleco en el mapa. Creamos un outlet al mapa y lo conectamos.-Ya sabemos hacerlo. Es](https://reader034.vdocumento.com/reader034/viewer/2022052616/60a094daee983479917ce531/html5/thumbnails/45.jpg)
© Santiago Pavón - UPM-DIT
45
![Page 46: Primera Demo: Hola Mundo - UPM2019/10/17 · Al pulsar el botón Mundo quiero ver donde está Teleco en el mapa. Creamos un outlet al mapa y lo conectamos.-Ya sabemos hacerlo. Es](https://reader034.vdocumento.com/reader034/viewer/2022052616/60a094daee983479917ce531/html5/thumbnails/46.jpg)
© Santiago Pavón - UPM-DIT
46
![Page 47: Primera Demo: Hola Mundo - UPM2019/10/17 · Al pulsar el botón Mundo quiero ver donde está Teleco en el mapa. Creamos un outlet al mapa y lo conectamos.-Ya sabemos hacerlo. Es](https://reader034.vdocumento.com/reader034/viewer/2022052616/60a094daee983479917ce531/html5/thumbnails/47.jpg)
© Santiago Pavón - UPM-DIT
47
![Page 48: Primera Demo: Hola Mundo - UPM2019/10/17 · Al pulsar el botón Mundo quiero ver donde está Teleco en el mapa. Creamos un outlet al mapa y lo conectamos.-Ya sabemos hacerlo. Es](https://reader034.vdocumento.com/reader034/viewer/2022052616/60a094daee983479917ce531/html5/thumbnails/48.jpg)
© Santiago Pavón - UPM-DIT
Retocar el Autolayout o las máscarasde Autoresizing
48
![Page 49: Primera Demo: Hola Mundo - UPM2019/10/17 · Al pulsar el botón Mundo quiero ver donde está Teleco en el mapa. Creamos un outlet al mapa y lo conectamos.-Ya sabemos hacerlo. Es](https://reader034.vdocumento.com/reader034/viewer/2022052616/60a094daee983479917ce531/html5/thumbnails/49.jpg)
© Santiago Pavón - UPM-DIT
49