Swift Playground to iOS Project

2 minutos

En /swift/learning/sphero/sphero-primeros-pasos/ os comenté que jugaría con el playground disponible en https://developer.apple.com/swift/blog/?id=38 para ver cómo se comunicaba con el Sphero. Para ello, mi idea es crear una app en iOS con el código del playground, ya que:

Así pues, vamos a crear una app con el código del playground.

Bundle

Un playground no es más que un bundle, un directorio con un conjunto de recursos que se muestra por el Finder como un fichero simple. Una aplicación en macOS, por ejemplo, es un bundle.

Un truco para saber si un ítem del Finder es un bundle es comprobar si aparece Mostrar contenido del paquete en el menú contextual, tal y como muestra la imagen

show package contents

Formato del Playground Book

Si abrimos el contenido del paquete del playground disponible en https://developer.apple.com/swift/blog/?id=38 veremos algo así como la imagen siguiente:

playground book

Parece sencillo, ¿verdad? un par de apuntes:

  • Chapters contiene los capítulos o apartados del book. Dentro esta el fichero Manifest.plist con los metadatos del book (capítulos, etc.).
  • Resources contiene los recursos generales de todo el book (imágenes, vídeos, etc.).

Cada capítulo es una carpeta con:

  • Carpeta Pages con carpetas para cada página del capítulo.
  • Carpeta Sources con código fuente común al capítulo (aka las librerías).
  • Fichero Manifest.plist con metadatos del capítulo (páginas, etc).

Cada página es una carpeta con:

  • Fichero Contents.swift con el código que se visualiza (y ejecuta) en la página.
  • Carpeta Resources con recursos de la página (imágenes, vídeos, etc.).
  • Fichero Manifest.plist con metadatos de la página (cómo debe visualizarse, etc.).

La especificación completa del formato la podréis encontrar en https://developer.apple.com/library/content/documentation/Xcode/Conceptual/swift_playgrounds_doc_format/index.html

Así pues, todo lo que hay en la/s carpeta/s Sources y en los ficheros Contents.swift conforma el codebase del proyecto. Para nuestro objetivo, la chicha se encuentra en el capitulo Sphero.playgroundchapter.

Licencia

El código del playground tiene licencia “AS IS”, así que en principio se puede usar. De todas maneras, si hay alguno experto en derecho es un buen momento para manifestarse.

Extra

Hemos visto cómo está formado un playground. Alguno de vosotros habrá pensado en crear sus propios playgrounds (total, son cuatro ficheros con un par de metadatos). Si estaís interesados, os recomiendo el post de Ash Furrow Building Swift Playground Books

Siguientes pasos

Una vez tenga claro el aspecto legal (básicamente si la licencia permite usar el código fuente, que creo que ) adaptaré el código en un proyecto iOS.

Deja un comentario