desarrollo de apps para ios playgroundssantiago/docencia/ios/2016-17/028-playgrounds... · se usa...
TRANSCRIPT
© 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
Código con el que experimentamos
Resultados
Quick LookMostrar Resultado
Vista en Vivo
4
© 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
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
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
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