Targets — Concepto
¿Para qué sirven los targets?
Muchas veces nos hemos enfrentado al reto de diseñar interfaces que se acoplen a diferentes dispositivos ya sea en landscape o portrait. Al tratar de realizar este diseño, se requiere el uso de constraint que traten en lo posible de hacer que la interfaz se vea de la manera que se espera. Sin embargo, en ocasiones el diseño de una aplicación en iPad puede llegar a ser diferente a un dispositivo como un iPhoneX. Para enfrentarse a este reto, una de las posibilidades que tienen los desarrolladores es hacer uso de los Targets(elemento principal de este Blog), o utilizar Vary For Traits.
El campo de aplicabilidad es un poco más grande para los Targets, el cual cumple verdaderamente su objetivo (opinión personal) en el momento que comenzamos a pensar en generar diferentes aplicativos a partir de un mismo código. Para entender un poco mejor de lo que hago referencia, estudiemos el siguiente ejemplo:
Muchos de nosotros nos enfrentamos en situaciones laborales a desarrollar apps, y en muchas de esas situaciones debemos hacer una aplicación que pueda ser personalizable para diferentes clientes, pero en realidad todo parte del mismo código, solo que los recursos (colores, textos, imágenes), build variants, nombre de la aplicación (bundle id), entre otros, son los que terminan diferenciando una aplicación de otra.
Es así como en ese pequeño Blog, vamos a ver cómo hacer posible lo mencionado anteriormente mediante Targets.
Lo primero que debemos hacer es definir nuestro elemento base (código base) con el cual vamos a generar los demás apps:
Una vez tengamos definido lo anterior lo único que debemos realizar es duplicar el Target de Xcode, para ello tener en cuenta lo siguiente:
- editar el nombre del Target (schema) anteriormente creado con un nombre alusivo a la aplicación que se va a generar o crear
- cambiar el nombre del info.plist y configurarlo en la pantalla de buildSettings
- definir el nombre, bundleID, versión, certificados, etc. Correspondiente a l nuevo Target que se creo
Por último, un aspecto que hay que tener en cuenta para que la aplicación funcione correctamente es que cada archivo que se encuentre en la aplicación solo pertenezca a un Target definido, a no ser que para un determinado archivo no se requiera ser creado para el Target en especifico.
¿Cómo hacerlo desde Xcode?

lo primero que tenemos que tener en cuenta es ubicarnos en la vista donde se encuentran definidos los Target del proyecto.
Luego duplicamos nuestro Target tal y como se muestra en la siguiente imagen, ya sea presionando click derecho o command +D

Al hacer lo siguiente Xcode nos crea todo lo necesario para comenzar a trabajar con Targets; Observemos en la siguiente imagen como quedaría nuestro proyecto

En esta imagen vemos nuestro Target ya editado, al cual le decimos definir el nombre de TargetNuevo en cada tres diferentes partes: primero en los targets, luego en los esquemos y por último en el infoPlist.
Recuerden al editar el nombre del Info.plist que se creo en su con su target, deben cambiar en la pestaña de Build de su proyecto.
Ya casi terminamos.
Al momento de crear entonces un nuevo archivo que solo debería pertenecer al Target que acabamos de crear debemos solo marcar la casilla al Target Correspondiente de lo contrario nuestro proyecto no compilara.

Con lo anterior hemos logrado conocer cómo empezar a trabajar con Targets de un ambiente como lo Xcode (flavors en Android) y ya pueden realizar los desarrollos que se les ocurra.
Aprender no es cosa de un día :)

