48
© Santiago Pavón - UPM-DIT Desarrollo de Apps para iOS Primera Demo: Hola Mundo IWEB,LSWC 2013-2014 Santiago Pavón ver: 2014.02.11 1

Primera Demo: Hola Mundo - UPM€¦ · © Santiago Pavón - UPM-DIT Desarrollo de Apps para iOS Primera Demo: Hola Mundo IWEB,LSWC 2013-2014! Santiago Pavón!! ver: 2014.02.11 1

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Primera Demo: Hola Mundo - UPM€¦ · © Santiago Pavón - UPM-DIT Desarrollo de Apps para iOS Primera Demo: Hola Mundo IWEB,LSWC 2013-2014! Santiago Pavón!! ver: 2014.02.11 1

© Santiago Pavón - UPM-DIT

Desarrollo de Apps para iOS Primera Demo: Hola Mundo

IWEB,LSWC 2013-2014!Santiago Pavón!!

ver: 2014.02.11

1

Page 2: Primera Demo: Hola Mundo - UPM€¦ · © Santiago Pavón - UPM-DIT Desarrollo de Apps para iOS Primera Demo: Hola Mundo IWEB,LSWC 2013-2014! Santiago Pavón!! ver: 2014.02.11 1

© 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 - UPM€¦ · © Santiago Pavón - UPM-DIT Desarrollo de Apps para iOS Primera Demo: Hola Mundo IWEB,LSWC 2013-2014! Santiago Pavón!! ver: 2014.02.11 1

© Santiago Pavón - UPM-DIT

Lanzar XcodeBuscarlo con Spotlight (⌘-Espacio)!!

!

!

Buscarlo con Launchpad:

3

Page 4: Primera Demo: Hola Mundo - UPM€¦ · © Santiago Pavón - UPM-DIT Desarrollo de Apps para iOS Primera Demo: Hola Mundo IWEB,LSWC 2013-2014! Santiago Pavón!! ver: 2014.02.11 1

© Santiago Pavón - UPM-DIT

Crear Nuevo Proyecto

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

4

Page 5: Primera Demo: Hola Mundo - UPM€¦ · © Santiago Pavón - UPM-DIT Desarrollo de Apps para iOS Primera Demo: Hola Mundo IWEB,LSWC 2013-2014! Santiago Pavón!! ver: 2014.02.11 1

© Santiago Pavón - UPM-DIT

5

Page 6: Primera Demo: Hola Mundo - UPM€¦ · © Santiago Pavón - UPM-DIT Desarrollo de Apps para iOS Primera Demo: Hola Mundo IWEB,LSWC 2013-2014! Santiago Pavón!! ver: 2014.02.11 1

© Santiago Pavón - UPM-DIT

6

Page 7: Primera Demo: Hola Mundo - UPM€¦ · © Santiago Pavón - UPM-DIT Desarrollo de Apps para iOS Primera Demo: Hola Mundo IWEB,LSWC 2013-2014! Santiago Pavón!! ver: 2014.02.11 1

© Santiago Pavón - UPM-DIT

7

Page 8: Primera Demo: Hola Mundo - UPM€¦ · © Santiago Pavón - UPM-DIT Desarrollo de Apps para iOS Primera Demo: Hola Mundo IWEB,LSWC 2013-2014! Santiago Pavón!! ver: 2014.02.11 1

© Santiago Pavón - UPM-DIT

8

Page 9: Primera Demo: Hola Mundo - UPM€¦ · © Santiago Pavón - UPM-DIT Desarrollo de Apps para iOS Primera Demo: Hola Mundo IWEB,LSWC 2013-2014! Santiago Pavón!! ver: 2014.02.11 1

© Santiago Pavón - UPM-DIT

Crear GUIClick en el fichero MainStoryboard.storyboard!

- Se abre en el editor (Interface Builder)!

Mostrar el inspector.!

No usar Autolayout.!

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 - UPM€¦ · © Santiago Pavón - UPM-DIT Desarrollo de Apps para iOS Primera Demo: Hola Mundo IWEB,LSWC 2013-2014! Santiago Pavón!! ver: 2014.02.11 1

© Santiago Pavón - UPM-DIT

No usar Autolayout

10

Page 11: Primera Demo: Hola Mundo - UPM€¦ · © Santiago Pavón - UPM-DIT Desarrollo de Apps para iOS Primera Demo: Hola Mundo IWEB,LSWC 2013-2014! Santiago Pavón!! ver: 2014.02.11 1

© Santiago Pavón - UPM-DIT

11

Page 12: Primera Demo: Hola Mundo - UPM€¦ · © Santiago Pavón - UPM-DIT Desarrollo de Apps para iOS Primera Demo: Hola Mundo IWEB,LSWC 2013-2014! Santiago Pavón!! ver: 2014.02.11 1

© Santiago Pavón - UPM-DIT

Cambiar atributos

Seleccionar cada view y cambiar el aspecto usando el inspector

12

Page 13: Primera Demo: Hola Mundo - UPM€¦ · © Santiago Pavón - UPM-DIT Desarrollo de Apps para iOS Primera Demo: Hola Mundo IWEB,LSWC 2013-2014! Santiago Pavón!! ver: 2014.02.11 1

© Santiago Pavón - UPM-DIT

13

Page 14: Primera Demo: Hola Mundo - UPM€¦ · © Santiago Pavón - UPM-DIT Desarrollo de Apps para iOS Primera Demo: Hola Mundo IWEB,LSWC 2013-2014! Santiago Pavón!! ver: 2014.02.11 1

© Santiago Pavón - UPM-DIT

Compilar y ejecutar

Probarlo

14

Page 15: Primera Demo: Hola Mundo - UPM€¦ · © Santiago Pavón - UPM-DIT Desarrollo de Apps para iOS Primera Demo: Hola Mundo IWEB,LSWC 2013-2014! Santiago Pavón!! ver: 2014.02.11 1

© Santiago Pavón - UPM-DIT

Añadiremos a la clase HMViewControler:!- un IBoutlet para la Label!

es una propiedad que apunta a la UILabel creada.!- dos IBactions para atender pulsaciones de los

botones!son 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 - UPM€¦ · © Santiago Pavón - UPM-DIT Desarrollo de Apps para iOS Primera Demo: Hola Mundo IWEB,LSWC 2013-2014! Santiago Pavón!! ver: 2014.02.11 1

© Santiago Pavón - UPM-DIT

¿Qué es IBOutlet?

Es una marca que reconoce Interface Builder!- Indica que la propiedad marcada con IBOutlet

apuntará 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.!

Es un define a vacío.

16

Page 17: Primera Demo: Hola Mundo - UPM€¦ · © Santiago Pavón - UPM-DIT Desarrollo de Apps para iOS Primera Demo: Hola Mundo IWEB,LSWC 2013-2014! Santiago Pavón!! ver: 2014.02.11 1

© Santiago Pavón - UPM-DIT

¿Qué es IBAction?

Es una marca que usa el Interface Builder!- Indica que el método marcado con IBAction es

el target de algún control creado con Interface Builder.!

No especificaremos el target con código.!

Usaremos Interface Builder para conectar el control y el método.!

Es un define a void.

17

Page 18: Primera Demo: Hola Mundo - UPM€¦ · © Santiago Pavón - UPM-DIT Desarrollo de Apps para iOS Primera Demo: Hola Mundo IWEB,LSWC 2013-2014! Santiago Pavón!! ver: 2014.02.11 1

© Santiago Pavón - UPM-DIT

Crear IBOutlet para la Etiqueta

18

Page 19: Primera Demo: Hola Mundo - UPM€¦ · © Santiago Pavón - UPM-DIT Desarrollo de Apps para iOS Primera Demo: Hola Mundo IWEB,LSWC 2013-2014! Santiago Pavón!! ver: 2014.02.11 1

© Santiago Pavón - UPM-DIT

19

Page 20: Primera Demo: Hola Mundo - UPM€¦ · © Santiago Pavón - UPM-DIT Desarrollo de Apps para iOS Primera Demo: Hola Mundo IWEB,LSWC 2013-2014! Santiago Pavón!! ver: 2014.02.11 1

© Santiago Pavón - UPM-DIT

Control+B1

20

Page 21: Primera Demo: Hola Mundo - UPM€¦ · © Santiago Pavón - UPM-DIT Desarrollo de Apps para iOS Primera Demo: Hola Mundo IWEB,LSWC 2013-2014! Santiago Pavón!! ver: 2014.02.11 1

© Santiago Pavón - UPM-DIT

21

Page 22: Primera Demo: Hola Mundo - UPM€¦ · © Santiago Pavón - UPM-DIT Desarrollo de Apps para iOS Primera Demo: Hola Mundo IWEB,LSWC 2013-2014! Santiago Pavón!! ver: 2014.02.11 1

© Santiago Pavón - UPM-DIT

22

Page 23: Primera Demo: Hola Mundo - UPM€¦ · © Santiago Pavón - UPM-DIT Desarrollo de Apps para iOS Primera Demo: Hola Mundo IWEB,LSWC 2013-2014! Santiago Pavón!! ver: 2014.02.11 1

© Santiago Pavón - UPM-DIT

Crear IBActions para los Controles

23

Page 24: Primera Demo: Hola Mundo - UPM€¦ · © Santiago Pavón - UPM-DIT Desarrollo de Apps para iOS Primera Demo: Hola Mundo IWEB,LSWC 2013-2014! Santiago Pavón!! ver: 2014.02.11 1

© Santiago Pavón - UPM-DIT

Control+B1

24

Page 25: Primera Demo: Hola Mundo - UPM€¦ · © Santiago Pavón - UPM-DIT Desarrollo de Apps para iOS Primera Demo: Hola Mundo IWEB,LSWC 2013-2014! Santiago Pavón!! ver: 2014.02.11 1

© Santiago Pavón - UPM-DIT

25

Page 26: Primera Demo: Hola Mundo - UPM€¦ · © Santiago Pavón - UPM-DIT Desarrollo de Apps para iOS Primera Demo: Hola Mundo IWEB,LSWC 2013-2014! Santiago Pavón!! ver: 2014.02.11 1

© Santiago Pavón - UPM-DIT

26

Page 27: Primera Demo: Hola Mundo - UPM€¦ · © Santiago Pavón - UPM-DIT Desarrollo de Apps para iOS Primera Demo: Hola Mundo IWEB,LSWC 2013-2014! Santiago Pavón!! ver: 2014.02.11 1

© Santiago Pavón - UPM-DIT

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

27

Page 28: Primera Demo: Hola Mundo - UPM€¦ · © Santiago Pavón - UPM-DIT Desarrollo de Apps para iOS Primera Demo: Hola Mundo IWEB,LSWC 2013-2014! Santiago Pavón!! ver: 2014.02.11 1

© Santiago Pavón - UPM-DIT

28

Page 29: Primera Demo: Hola Mundo - UPM€¦ · © Santiago Pavón - UPM-DIT Desarrollo de Apps para iOS Primera Demo: Hola Mundo IWEB,LSWC 2013-2014! Santiago Pavón!! ver: 2014.02.11 1

© Santiago Pavón - UPM-DIT

29

Page 30: Primera Demo: Hola Mundo - UPM€¦ · © Santiago Pavón - UPM-DIT Desarrollo de Apps para iOS Primera Demo: Hola Mundo IWEB,LSWC 2013-2014! Santiago Pavón!! ver: 2014.02.11 1

© Santiago Pavón - UPM-DIT

Conectar IBOutlet y IBActionExisten varias formas de conectar los Outlets y Actions:!

- En las transparencias anteriores hemos conectado un outlet usando Ctrl+Boton1.!Desde un elemento del IB hasta el @interface del fichero .m. !

- Se crea una propiedad.!

- En las transparencias anteriores hemos conectado una action usando Ctrl+Boton1.!Desde un control del IB hasta el @implementation del fichero .m. !

- Se crea un método.!

Otras formas de conectar:!

- Seleccionando algún control en el IB, y conectando los eventos desde el inspector de conexiones.!

- Usando el modo asistente, desde el editor de código de los ficheros .h o .m hasta 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.!

- Pulsando Control y arrastrando botón 1 del ratón entre elementos en el editor IB.!

- etc…

30

Page 31: Primera Demo: Hola Mundo - UPM€¦ · © Santiago Pavón - UPM-DIT Desarrollo de Apps para iOS Primera Demo: Hola Mundo IWEB,LSWC 2013-2014! Santiago Pavón!! ver: 2014.02.11 1

© Santiago Pavón - UPM-DIT

31

Page 32: Primera Demo: Hola Mundo - UPM€¦ · © Santiago Pavón - UPM-DIT Desarrollo de Apps para iOS Primera Demo: Hola Mundo IWEB,LSWC 2013-2014! Santiago Pavón!! ver: 2014.02.11 1

© Santiago Pavón - UPM-DIT

32

Page 33: Primera Demo: Hola Mundo - UPM€¦ · © Santiago Pavón - UPM-DIT Desarrollo de Apps para iOS Primera Demo: Hola Mundo IWEB,LSWC 2013-2014! Santiago Pavón!! ver: 2014.02.11 1

© Santiago Pavón - UPM-DIT

popup

popup

33

Page 34: Primera Demo: Hola Mundo - UPM€¦ · © Santiago Pavón - UPM-DIT Desarrollo de Apps para iOS Primera Demo: Hola Mundo IWEB,LSWC 2013-2014! Santiago Pavón!! ver: 2014.02.11 1

© Santiago Pavón - UPM-DIT

popup

34

Page 35: Primera Demo: Hola Mundo - UPM€¦ · © Santiago Pavón - UPM-DIT Desarrollo de Apps para iOS Primera Demo: Hola Mundo IWEB,LSWC 2013-2014! Santiago Pavón!! ver: 2014.02.11 1

© Santiago Pavón - UPM-DIT

Control+B1

Control+B1

35

Page 36: Primera Demo: Hola Mundo - UPM€¦ · © Santiago Pavón - UPM-DIT Desarrollo de Apps para iOS Primera Demo: Hola Mundo IWEB,LSWC 2013-2014! Santiago Pavón!! ver: 2014.02.11 1

© Santiago Pavón - UPM-DIT

Control+B1

Control+B1 Control+B1

36

Page 37: Primera Demo: Hola Mundo - UPM€¦ · © Santiago Pavón - UPM-DIT Desarrollo de Apps para iOS Primera Demo: Hola Mundo IWEB,LSWC 2013-2014! Santiago Pavón!! ver: 2014.02.11 1

© Santiago Pavón - UPM-DIT

El Código de los Métodos

37

Page 38: Primera Demo: Hola Mundo - UPM€¦ · © Santiago Pavón - UPM-DIT Desarrollo de Apps para iOS Primera Demo: Hola Mundo IWEB,LSWC 2013-2014! Santiago Pavón!! ver: 2014.02.11 1

© Santiago Pavón - UPM-DIT

Salvar, compilar y ejecutar

Probarlo

38

Page 39: Primera Demo: Hola Mundo - UPM€¦ · © Santiago Pavón - UPM-DIT Desarrollo de Apps para iOS Primera Demo: Hola Mundo IWEB,LSWC 2013-2014! Santiago Pavón!! ver: 2014.02.11 1

© Santiago Pavón - UPM-DIT

MKMapView

39

Page 40: Primera Demo: Hola Mundo - UPM€¦ · © Santiago Pavón - UPM-DIT Desarrollo de Apps para iOS Primera Demo: Hola Mundo IWEB,LSWC 2013-2014! Santiago Pavón!! ver: 2014.02.11 1

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

Hay que importar el framework MapKit

Ver el mundo

40

Page 41: Primera Demo: Hola Mundo - UPM€¦ · © Santiago Pavón - UPM-DIT Desarrollo de Apps para iOS Primera Demo: Hola Mundo IWEB,LSWC 2013-2014! Santiago Pavón!! ver: 2014.02.11 1

© Santiago Pavón - UPM-DIT

41

Page 42: Primera Demo: Hola Mundo - UPM€¦ · © Santiago Pavón - UPM-DIT Desarrollo de Apps para iOS Primera Demo: Hola Mundo IWEB,LSWC 2013-2014! Santiago Pavón!! ver: 2014.02.11 1

© Santiago Pavón - UPM-DIT

42

Page 43: Primera Demo: Hola Mundo - UPM€¦ · © Santiago Pavón - UPM-DIT Desarrollo de Apps para iOS Primera Demo: Hola Mundo IWEB,LSWC 2013-2014! Santiago Pavón!! ver: 2014.02.11 1

© Santiago Pavón - UPM-DIT

43

Page 44: Primera Demo: Hola Mundo - UPM€¦ · © Santiago Pavón - UPM-DIT Desarrollo de Apps para iOS Primera Demo: Hola Mundo IWEB,LSWC 2013-2014! Santiago Pavón!! ver: 2014.02.11 1

© Santiago Pavón - UPM-DIT

44

Page 45: Primera Demo: Hola Mundo - UPM€¦ · © Santiago Pavón - UPM-DIT Desarrollo de Apps para iOS Primera Demo: Hola Mundo IWEB,LSWC 2013-2014! Santiago Pavón!! ver: 2014.02.11 1

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

- Sabemos hacerlo.!Es igual que con la UILabel.!

Desde mundoPressed ponemos las coordenadas del aula en el mapa.!

No olvidar incluir:!

#import <MapKit/MapKit.h>

Teleco

45

Page 46: Primera Demo: Hola Mundo - UPM€¦ · © Santiago Pavón - UPM-DIT Desarrollo de Apps para iOS Primera Demo: Hola Mundo IWEB,LSWC 2013-2014! Santiago Pavón!! ver: 2014.02.11 1

© Santiago Pavón - UPM-DIT

46

Page 47: Primera Demo: Hola Mundo - UPM€¦ · © Santiago Pavón - UPM-DIT Desarrollo de Apps para iOS Primera Demo: Hola Mundo IWEB,LSWC 2013-2014! Santiago Pavón!! ver: 2014.02.11 1

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

47

Page 48: Primera Demo: Hola Mundo - UPM€¦ · © Santiago Pavón - UPM-DIT Desarrollo de Apps para iOS Primera Demo: Hola Mundo IWEB,LSWC 2013-2014! Santiago Pavón!! ver: 2014.02.11 1

© Santiago Pavón - UPM-DIT

48