Tutorial Apple Watch
0. Índice de contenidos.
1. Entorno
Este tutorial está escrito usando el siguiente entorno:
- Hardware: Portátil Mac Book Pro 15″ (2,5 Ghz Intel Core i7, 16 GB DDR3)
- Sistema Operativo: Mac OS X Yosemite
- Xcode 6.2 beta
2. Introducción
Se acerca el momento de comprar nuestros relojes de la manzana, y no se vosotros pero yo estoy deseando poder probar mis aplicaciones en él.
Con motivo de celebración del primer curso online de Autentia vamos a ver un tutoría de como construir una tabla.
Las tablas en WatchKit están representadas por el objeto WKInterfaceTable , en nuestro Storyboard, cuando arrastramos una tabla al controlador , en la jerarquía de vistas vamos a ver nuestra tabla y dentro un objeto subclase de NSObject que Xcode ha nombrado automáticamente como Table Row Controller, vamos a necesitar generar nuestra subclase de NSObject para manejarlo y un identificador que pondremos en el inspector de atributos del storyboard.
Esta va ser nuestra plantilla para las celdas que generemos bajo el identificador designado, dentro del table row controller, tendremos un objeto WKInterfaceGroup para poder hacer el diseño de la celda a nuestro antojo.
A la hora de indicar cuantas celdas va a disponer nuestra tabla inicialmente tenemos que tener en cuenta Si únicamente vamos a utilizar un tipo de celda, en cuyo caso usaremos la función setNumberOfRows( withRowType:) o, en caso de usar varios tipos de celda usaremos la función setRowTypes() en el que le pasamos un array con los tipos. La longitud de este array equivale al numero de filas que tendrá la tabla coincidiendo cada tipo, con la posición.
Las tablas pueden cambiar su contenido de forma dinámica, es decir, pueden cambiar la información que contienen sus celdas o variar el numero de ellas en tiempo de ejecución.
Las funciones que usaremos para dicha tarea son insertRowsAtIndexes(withRowType) y removeRowsAtIndexes().
3. Desarrollo de la tabla.
Si habéis visto el último tutorial sobre watchKit, ya sabéis como iniciar un nuevo proyecto y añadir el target para nuestra aplicación en WatchKit. Así que creamos un nuevo proyecto en Xcode y añadimos el target.
Vamos a arrastrar una tabla a nuestro interface.storyboard para que nuestro controlador de entrada quede de la siguiente forma:
Ahora vamos a crear una subclase NSObject que llamaremos RowController.
Por ultimo vamos a nuestro storyboard y seleccionamos Table Row Controller,
una vez seleccionado nos vamos al inspector de identidad y le decimos la clase a la que pertenece.
También le damos un identificador en el inspector de atributos:
Vamos a meter un label en nuestra “plantilla” de celda , así que arrastramos un objeto WKInterfaceLabel al group que se encuentra en el RowController;
y conectamos mediante un Outlet a nuestra clase.
Ahora vamos a ir a nuestra clase InterfaceController y creamos la función setUpTable() y la llamamos desde nuestra función awakeWithContext()
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
import WatchKit import Foundation class InterfaceController: WKInterfaceController { override func awakeWithContext(context: AnyObject?) { super.awakeWithContext(context) setUpTable() } func setUpTable() { } } |
Vamos a necesitar un outlet de nuestra tabla así que hacemos la misma operación que con el Label en nuestra clase RowController, creamos el outlet de y lo conectamos en el storyboard
Una vez conectado vamos a nuestro controlador y creamos un Array que nos va a servir de modelo;
1 |
let model = ["celda 1","celda 2","celda 3"] |
Y por ultimo en nuestra función setUpTable() vamos a incluir el siguiente código;
1 2 3 4 5 6 7 8 |
func setUpTable() { table.setNumberOfRows(countElements(model), withRowType: "rowController") for (var i: Int = 0; i < countElements(model); i++) { let row = table.rowControllerAtIndex(i) as RowController row.textLabel.setText(model[i] as String) } } |
Si compilamos y ejecutamos veremos que nuestra pantalla del simulador de Apple Watch mostrará la tabla con 3 celdas.
4. Conclusión
Como veis la creación de una tabla es algo bastante sencillo con WatchKit, pero si queréis aprender más sobre ellas y el resto de componentes que forman esta librería podéis acceder al curso online que hemos preparado en Udemy.