Primera Demo: Hola Mundo · Hacer la demo Hola Mundo con los siguientes cambios:-Al pulsar el...

49
© Santiago Pavón - UPM-DIT Desarrollo de Apps para iOS Primera Demo: Hola Mundo IWEB 2015-2016 Santiago Pavón ver: 2015.09.07 1

Transcript of Primera Demo: Hola Mundo · Hacer la demo Hola Mundo con los siguientes cambios:-Al pulsar el...

Page 1: Primera Demo: Hola Mundo · Hacer la demo Hola Mundo con los siguientes cambios:-Al pulsar el botón Hola: El slider debe ajustarse a 0.5 El mapa debe configurarse en modo híbrido.-Al

© Santiago Pavón - UPM-DIT

Desarrollo de Apps para iOS Primera Demo: Hola Mundo

IWEB 2015-2016Santiago Pavón

ver: 2015.09.07

1

Page 2: Primera Demo: Hola Mundo · Hacer la demo Hola Mundo con los siguientes cambios:-Al pulsar el botón Hola: El slider debe ajustarse a 0.5 El mapa debe configurarse en modo híbrido.-Al

© 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 · Hacer la demo Hola Mundo con los siguientes cambios:-Al pulsar el botón Hola: El slider debe ajustarse a 0.5 El mapa debe configurarse en modo híbrido.-Al

© Santiago Pavón - UPM-DIT

Lanzar XcodeBuscarlo con Spotlight (⌘-Espacio)

Buscarlo con Launchpad:

3

Page 4: Primera Demo: Hola Mundo · Hacer la demo Hola Mundo con los siguientes cambios:-Al pulsar el botón Hola: El slider debe ajustarse a 0.5 El mapa debe configurarse en modo híbrido.-Al

© Santiago Pavón - UPM-DIT

Crear Nuevo Proyecto

También: Menú File > New > New Project

4

Page 5: Primera Demo: Hola Mundo · Hacer la demo Hola Mundo con los siguientes cambios:-Al pulsar el botón Hola: El slider debe ajustarse a 0.5 El mapa debe configurarse en modo híbrido.-Al

© Santiago Pavón - UPM-DIT

5

Page 6: Primera Demo: Hola Mundo · Hacer la demo Hola Mundo con los siguientes cambios:-Al pulsar el botón Hola: El slider debe ajustarse a 0.5 El mapa debe configurarse en modo híbrido.-Al

© Santiago Pavón - UPM-DIT

6

Page 7: Primera Demo: Hola Mundo · Hacer la demo Hola Mundo con los siguientes cambios:-Al pulsar el botón Hola: El slider debe ajustarse a 0.5 El mapa debe configurarse en modo híbrido.-Al

© Santiago Pavón - UPM-DIT

7

Page 8: Primera Demo: Hola Mundo · Hacer la demo Hola Mundo con los siguientes cambios:-Al pulsar el botón Hola: El slider debe ajustarse a 0.5 El mapa debe configurarse en modo híbrido.-Al

© Santiago Pavón - UPM-DIT

8

Page 9: Primera Demo: Hola Mundo · Hacer la demo Hola Mundo con los siguientes cambios:-Al pulsar el botón Hola: El slider debe ajustarse a 0.5 El mapa debe configurarse en modo híbrido.-Al

© 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 · Hacer la demo Hola Mundo con los siguientes cambios:-Al pulsar el botón Hola: El slider debe ajustarse a 0.5 El mapa debe configurarse en modo híbrido.-Al

© Santiago Pavón - UPM-DIT

10

Page 11: Primera Demo: Hola Mundo · Hacer la demo Hola Mundo con los siguientes cambios:-Al pulsar el botón Hola: El slider debe ajustarse a 0.5 El mapa debe configurarse en modo híbrido.-Al

© 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 · Hacer la demo Hola Mundo con los siguientes cambios:-Al pulsar el botón Hola: El slider debe ajustarse a 0.5 El mapa debe configurarse en modo híbrido.-Al

© Santiago Pavón - UPM-DIT

12

Page 13: Primera Demo: Hola Mundo · Hacer la demo Hola Mundo con los siguientes cambios:-Al pulsar el botón Hola: El slider debe ajustarse a 0.5 El mapa debe configurarse en modo híbrido.-Al

© Santiago Pavón - UPM-DIT

Compilar y ejecutar

Probarlo

13

Page 14: Primera Demo: Hola Mundo · Hacer la demo Hola Mundo con los siguientes cambios:-Al pulsar el botón Hola: El slider debe ajustarse a 0.5 El mapa debe configurarse en modo híbrido.-Al

© Santiago Pavón - UPM-DIT

Autolayout

14

Page 15: Primera Demo: Hola Mundo · Hacer la demo Hola Mundo con los siguientes cambios:-Al pulsar el botón Hola: El slider debe ajustarse a 0.5 El mapa debe configurarse en modo híbrido.-Al

© 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

15

Page 16: Primera Demo: Hola Mundo · Hacer la demo Hola Mundo con los siguientes cambios:-Al pulsar el botón Hola: El slider debe ajustarse a 0.5 El mapa debe configurarse en modo híbrido.-Al

© Santiago Pavón - UPM-DIT

¿Qué es IBOutlet?

Es una marca 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.

16

Page 17: Primera Demo: Hola Mundo · Hacer la demo Hola Mundo con los siguientes cambios:-Al pulsar el botón Hola: El slider debe ajustarse a 0.5 El mapa debe configurarse en modo híbrido.-Al

© Santiago Pavón - UPM-DIT

¿Qué es IBAction?

Es una marca 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.

17

Page 18: Primera Demo: Hola Mundo · Hacer la demo Hola Mundo con los siguientes cambios:-Al pulsar el botón Hola: El slider debe ajustarse a 0.5 El mapa debe configurarse en modo híbrido.-Al

© Santiago Pavón - UPM-DIT

Crear IBOutlet para la EtiquetaSeleccionar Assistant Editor:

Izquierda: El storyboardDerecha: El fichero ViewController.swift

18

Page 19: Primera Demo: Hola Mundo · Hacer la demo Hola Mundo con los siguientes cambios:-Al pulsar el botón Hola: El slider debe ajustarse a 0.5 El mapa debe configurarse en modo híbrido.-Al

© Santiago Pavón - UPM-DIT

Control+B1

19

Page 20: Primera Demo: Hola Mundo · Hacer la demo Hola Mundo con los siguientes cambios:-Al pulsar el botón Hola: El slider debe ajustarse a 0.5 El mapa debe configurarse en modo híbrido.-Al

© Santiago Pavón - UPM-DIT

20

Page 21: Primera Demo: Hola Mundo · Hacer la demo Hola Mundo con los siguientes cambios:-Al pulsar el botón Hola: El slider debe ajustarse a 0.5 El mapa debe configurarse en modo híbrido.-Al

© Santiago Pavón - UPM-DIT

21

Page 22: Primera Demo: Hola Mundo · Hacer la demo Hola Mundo con los siguientes cambios:-Al pulsar el botón Hola: El slider debe ajustarse a 0.5 El mapa debe configurarse en modo híbrido.-Al

© Santiago Pavón - UPM-DIT

Crear IBActions para los Controles

Control+B1

22

Page 23: Primera Demo: Hola Mundo · Hacer la demo Hola Mundo con los siguientes cambios:-Al pulsar el botón Hola: El slider debe ajustarse a 0.5 El mapa debe configurarse en modo híbrido.-Al

© Santiago Pavón - UPM-DIT

23

Page 24: Primera Demo: Hola Mundo · Hacer la demo Hola Mundo con los siguientes cambios:-Al pulsar el botón Hola: El slider debe ajustarse a 0.5 El mapa debe configurarse en modo híbrido.-Al

© Santiago Pavón - UPM-DIT

24

Page 25: Primera Demo: Hola Mundo · Hacer la demo Hola Mundo con los siguientes cambios:-Al pulsar el botón Hola: El slider debe ajustarse a 0.5 El mapa debe configurarse en modo híbrido.-Al

© Santiago Pavón - UPM-DIT

Repetimos los mismo con el botón mundo y con el slider.

25

Page 26: Primera Demo: Hola Mundo · Hacer la demo Hola Mundo con los siguientes cambios:-Al pulsar el botón Hola: El slider debe ajustarse a 0.5 El mapa debe configurarse en modo híbrido.-Al

© Santiago Pavón - UPM-DIT

26

Page 27: Primera Demo: Hola Mundo · Hacer la demo Hola Mundo con los siguientes cambios:-Al pulsar el botón Hola: El slider debe ajustarse a 0.5 El mapa debe configurarse en modo híbrido.-Al

© Santiago Pavón - UPM-DIT

27

Page 28: Primera Demo: Hola Mundo · Hacer la demo Hola Mundo con los siguientes cambios:-Al pulsar el botón Hola: El slider debe ajustarse a 0.5 El mapa debe configurarse en modo híbrido.-Al

© 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…

28

Page 29: Primera Demo: Hola Mundo · Hacer la demo Hola Mundo con los siguientes cambios:-Al pulsar el botón Hola: El slider debe ajustarse a 0.5 El mapa debe configurarse en modo híbrido.-Al

© Santiago Pavón - UPM-DIT

29

Page 30: Primera Demo: Hola Mundo · Hacer la demo Hola Mundo con los siguientes cambios:-Al pulsar el botón Hola: El slider debe ajustarse a 0.5 El mapa debe configurarse en modo híbrido.-Al

© Santiago Pavón - UPM-DIT

30

Page 31: Primera Demo: Hola Mundo · Hacer la demo Hola Mundo con los siguientes cambios:-Al pulsar el botón Hola: El slider debe ajustarse a 0.5 El mapa debe configurarse en modo híbrido.-Al

© Santiago Pavón - UPM-DIT

popup

31

Page 32: Primera Demo: Hola Mundo · Hacer la demo Hola Mundo con los siguientes cambios:-Al pulsar el botón Hola: El slider debe ajustarse a 0.5 El mapa debe configurarse en modo híbrido.-Al

© Santiago Pavón - UPM-DIT

popup

32

Page 33: Primera Demo: Hola Mundo · Hacer la demo Hola Mundo con los siguientes cambios:-Al pulsar el botón Hola: El slider debe ajustarse a 0.5 El mapa debe configurarse en modo híbrido.-Al

© Santiago Pavón - UPM-DIT

Control+B1

33

Page 34: Primera Demo: Hola Mundo · Hacer la demo Hola Mundo con los siguientes cambios:-Al pulsar el botón Hola: El slider debe ajustarse a 0.5 El mapa debe configurarse en modo híbrido.-Al

© Santiago Pavón - UPM-DIT

Control+B1

34

Page 35: Primera Demo: Hola Mundo · Hacer la demo Hola Mundo con los siguientes cambios:-Al pulsar el botón Hola: El slider debe ajustarse a 0.5 El mapa debe configurarse en modo híbrido.-Al

© Santiago Pavón - UPM-DIT

El Código de los Métodos

35

Page 36: Primera Demo: Hola Mundo · Hacer la demo Hola Mundo con los siguientes cambios:-Al pulsar el botón Hola: El slider debe ajustarse a 0.5 El mapa debe configurarse en modo híbrido.-Al

© Santiago Pavón - UPM-DIT

Compilar y ejecutar

Probarlo

36

Page 37: Primera Demo: Hola Mundo · Hacer la demo Hola Mundo con los siguientes cambios:-Al pulsar el botón Hola: El slider debe ajustarse a 0.5 El mapa debe configurarse en modo híbrido.-Al

© Santiago Pavón - UPM-DIT

MKMapView

37

Page 38: Primera Demo: Hola Mundo · Hacer la demo Hola Mundo con los siguientes cambios:-Al pulsar el botón Hola: El slider debe ajustarse a 0.5 El mapa debe configurarse en modo híbrido.-Al

© 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

38

Page 39: Primera Demo: Hola Mundo · Hacer la demo Hola Mundo con los siguientes cambios:-Al pulsar el botón Hola: El slider debe ajustarse a 0.5 El mapa debe configurarse en modo híbrido.-Al

© Santiago Pavón - UPM-DIT

39

Page 40: Primera Demo: Hola Mundo · Hacer la demo Hola Mundo con los siguientes cambios:-Al pulsar el botón Hola: El slider debe ajustarse a 0.5 El mapa debe configurarse en modo híbrido.-Al

© 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.

Desde mundoPressed ponemos las coordenadas de Teleco en el mapa.

Hay que importar el framework MapKit:

import MapKit

Teleco

40

Page 41: Primera Demo: Hola Mundo · Hacer la demo Hola Mundo con los siguientes cambios:-Al pulsar el botón Hola: El slider debe ajustarse a 0.5 El mapa debe configurarse en modo híbrido.-Al

© Santiago Pavón - UPM-DIT

Control+B1

41

Page 42: Primera Demo: Hola Mundo · Hacer la demo Hola Mundo con los siguientes cambios:-Al pulsar el botón Hola: El slider debe ajustarse a 0.5 El mapa debe configurarse en modo híbrido.-Al

© Santiago Pavón - UPM-DIT

42

Page 43: Primera Demo: Hola Mundo · Hacer la demo Hola Mundo con los siguientes cambios:-Al pulsar el botón Hola: El slider debe ajustarse a 0.5 El mapa debe configurarse en modo híbrido.-Al

© 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.

43

Page 44: Primera Demo: Hola Mundo · Hacer la demo Hola Mundo con los siguientes cambios:-Al pulsar el botón Hola: El slider debe ajustarse a 0.5 El mapa debe configurarse en modo híbrido.-Al

© Santiago Pavón - UPM-DIT

44

Page 45: Primera Demo: Hola Mundo · Hacer la demo Hola Mundo con los siguientes cambios:-Al pulsar el botón Hola: El slider debe ajustarse a 0.5 El mapa debe configurarse en modo híbrido.-Al

© Santiago Pavón - UPM-DIT

45

Page 46: Primera Demo: Hola Mundo · Hacer la demo Hola Mundo con los siguientes cambios:-Al pulsar el botón Hola: El slider debe ajustarse a 0.5 El mapa debe configurarse en modo híbrido.-Al

© Santiago Pavón - UPM-DIT

46

Page 47: Primera Demo: Hola Mundo · Hacer la demo Hola Mundo con los siguientes cambios:-Al pulsar el botón Hola: El slider debe ajustarse a 0.5 El mapa debe configurarse en modo híbrido.-Al

© Santiago Pavón - UPM-DIT

Autolayout

47

Page 48: Primera Demo: Hola Mundo · Hacer la demo Hola Mundo con los siguientes cambios:-Al pulsar el botón Hola: El slider debe ajustarse a 0.5 El mapa debe configurarse en modo híbrido.-Al

© Santiago Pavón - UPM-DIT

Práctica 1

Hacer la demo Hola Mundo con los siguientes cambios:

- Al pulsar el botón Hola:

El slider debe ajustarse a 0.5

El mapa debe configurarse en modo híbrido.

- Al pulsar el botón Mundo:

El mapa debe configurarse en modo satélite.

- Añadir otro botón para mostrar las pirámides de Egipto.

48

Page 49: Primera Demo: Hola Mundo · Hacer la demo Hola Mundo con los siguientes cambios:-Al pulsar el botón Hola: El slider debe ajustarse a 0.5 El mapa debe configurarse en modo híbrido.-Al

© Santiago Pavón - UPM-DIT

49