17
© Santiago Pavón - UPM-DIT Desarrollo de Apps para iOS Playgrounds IWEB 2017-2018 Santiago Pavón ver: 2017.09.04 1

Desarrollo de Apps para iOS Playgroundssantiago/docencia/ios/2016-17/028-Playgrounds... · Se usa para experimentar y probar fragmentos de código. ... y */ pueden tener formato Markdown

Embed Size (px)

Citation preview

© Santiago Pavón - UPM-DIT

Desarrollo de Apps para iOS Playgrounds

IWEB 2017-2018Santiago Pavón

ver: 2017.09.04

1

© Santiago Pavón - UPM-DIT

¿Qué son los Playgrounds?

Es un nuevo tipo de documento introducido en Xcode 6• Extensión de los ficheros: .playground

Se usa para experimentar y probar fragmentos de código.• El código Swift se introduce y se ejecuta cada vez que se hace un cambio.• Muestra el resultado de ejecutar las expresiones existentes.• Se puede acceder a los recursos del proyecto o del sistema (por ejemplo:

imágenes)• Tiene un timeline para visualizar el estado de la ejecución en cualquier

instante de tiempo.

En Xcode 8 se añade la posibilidad de usarlo para crear tutoriales/documentación/ejercicios interactivos.

2

© Santiago Pavón - UPM-DIT

3

© Santiago Pavón - UPM-DIT

Código con el que experimentamos

Resultados

Quick LookMostrar Resultado

Vista en Vivo

4

© Santiago Pavón - UPM-DIT

Mostrar Resultado

Sentencia ejecutada 14 veces

Resultados

Quick Look

5

© Santiago Pavón - UPM-DIT

Xcode 8

6

© Santiago Pavón - UPM-DIT

Quick Look (Xcode 8)

El botón muestra gráficamente el valor de una expresión.

Tipos soportados:• Colores, Strings, Arrays, Diccionarios, Clases, Estructuras, Imágenes,

Views, Bezier paths, Puntos, Dimensiones, Rectángulos, URLs, …

Podemos crear Quick Looks personalizados para subclases de NSObject.• Implementando el método:

func debugQuickLookObject() -> AnyObject? {

return <Color, String, Imagen o Bezier Path>

}

7

© Santiago Pavón - UPM-DIT

Xcode 8

8

© Santiago Pavón - UPM-DIT

Quick Look (Xcode 9)

El botón muestra gráficamente el valor de una expresión.

Tipos soportados:• Colores, Strings, Arrays, Diccionarios, Clases, Estructuras, Imágenes,

Views, Bezier paths, Puntos, Dimensiones, Rectángulos, URLs, …

Podemos crear Quick Looks personalizados para instancias conformes con el protocolo CustomPlaygroundQuickLookable.• Implementando la propiedad:

var customPlaygroundQuickLook: PlaygroundQuickLook { get }

9

© Santiago Pavón - UPM-DIT

Xcode 9

10

© Santiago Pavón - UPM-DIT

Framework PlaygroundSupportProporciona la funcionalidad para interaccionar con los Playgrounds:

import PlaygroundSupport- Acceso al estado de la pagina del Playground.PlaygroundPage.current

- Mostrar views en vivo.PlaygroundPage.current.liveView = ???

- Controlar el tiempo de ejecución o detener la ejecución de la página.PlaygroundPage.current.needsIndefiniteExecution = truePlaygroundPage.current.finishExecution()• La ejecución del playground dura mientras se está ejecutando el código introducido.

- Sin tener en cuenta si existen tareas en background, planificadas para ejecutarse en un futuro, o esperando respuestas de forma asíncrona.

- Si se edita el código, se detiene la ejecución y se empieza a ejecutar todo de nuevo.• Adicionalmente, la ejecución se prolonga por el tiempo indicado por el slider de

timeout existente en el timeline. Por defecto son 30 segundos adicionales.- Estas funciones se usan para indicar (o consultar) si este tiempo adicional de

ejecución debe concederse o no.- . . .

11

© Santiago Pavón - UPM-DIT

Incluir Código y RecursosLos ficheros Playground pueden incluir ahora:• Ficheros .swift con código auxiliar.

- Añadir estos ficheros en la carpeta Sources.• Ficheros con recursos (por ejemplo: imágenes) .

- Añadir estos ficheros en la carpeta Resources.Mostrar el navegador de proyectos para ver estas carpetas.

12

© Santiago Pavón - UPM-DIT

Documentación MarkdownLos comentarios creados con //:, o con /*: y */ pueden tener formato Markdown.• Seleccionar en el menú Editor la opción "Show Rendered Markup".

13

© Santiago Pavón - UPM-DIT

14

© Santiago Pavón - UPM-DIT

Notación Markdown:## Cabecera

### Subcabecera

**Negrita**

*Cursiva*

[Texto de un enlace](url)

![Texto alternativo de imagen](url)

> Anotacion

- Item de una lista

15

© Santiago Pavón - UPM-DIT

LimitacionesNo es válido para analizar las prestaciones del código.

No puede usarse directamente el código existente en la aplicación.

- Hay que copiarlo al playground.

No pueden usarse entitlements.

. . .

16

© Santiago Pavón - UPM-DIT

17