primera demo: hola mundo - upm2019/10/17  · al pulsar el botón mundo quiero ver donde está...

49
© Santiago Pavón - UPM-DIT Desarrollo de Apps para iOS Primera Demo: Hola Mundo IWEB 2019-2020 Santiago Pavón ver: 2019.10.17 1

Upload: others

Post on 02-Jan-2021

5 views

Category:

Documents


0 download

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

© 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

© 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

© 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

© 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

© 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

© 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

© 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

© 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

© 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

© 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

© 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

© 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

© 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

© 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

© 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

© 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

© 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

© 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

© 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

© 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

© 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

© 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

© 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

© 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

© 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

© 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

© 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

© 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

© 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

© 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

© 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

© 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

© 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

© 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

© 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

© 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

© 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

© 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

© 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

© 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

© 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

© 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

© 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

© 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

© 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

© 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

© 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

© 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

© Santiago Pavón - UPM-DIT

49