Variables de inicio para tu aplicación iOS – Swift (Settings)

Standard

 

Una de las opciones para almacenar las preferencias de usuario es utilizar “Settings Bundle”. Implementar Settings Bundle te permite manejar tus preferencias desde las configuraciones propias de la app.

En el siguiente tutorial les mostraré como crear una aplicación sencilla iOS que te permitirá cambiar el color de fondo según la preferencia del usuario.

Screen Shot 2016-06-13 at 6.28.27 PM

Para el tutorial estaré trabajando con Xcode Versión 7.2

Al final del tutorial podrás consultar una url de donde podrás descargar el proyecto.

Continue reading

Memorias de la conferencia: “Best practices for great iOS UI Design”

Standard

Hola a todos.

La semana pasada gracias a una invitación que llegó a Hunabsys tuve la oportunidad asistir a una conferencia impartida por el señor Rodrigo Gómez, Senior Systems Engineer de Apple México. La conferencia trató sobre algunas buenas prácticas de diseño de interfaces de usuario para iOS.

Éstas buenas prácticas que se describieron en la conferencia nos sirven para contrarrestar muchos de los errores o dificultades con los que comúnmente nuestra aplicación móvil puede toparse.

El día de hoy les compartiré el listado de esas dificultades y una serie de tips que nos ayudarán a evitarlas.

Continue reading

Pruebas Automáticas de UI en Xcode 7

Standard

Hola, el día de hoy voy a ampliar un poco más el tema de las pruebas automáticas, ya que en Hunabsys estamos ampliando más la práctica como parte de los mecanismos de validación que estamos implementando en nuestros proyectos.

¿Qué son las Pruebas de UI?

Las Pruebas de UI son pruebas para validar la interfaz del usuario. No es que sea nuevo, ya lo hacemos todo el tiempo para validar nuestros proyectos, de manera manual, en las apps lo hacemos haciendo taps sobre los diferentes elementos de la pantalla.

Pero las pruebas manuales para realizar las regresiones es aburrido. Además de que tienes que recordar el probar todos los pasos para validar que no hayamos introducido algún error en cada iteración.

Hacer Pruebas Unitarias de clases Swift es relativamente sencillo: podemos probar “unidades” (leer una “clase”) a través de su interfaz de programación, así que escribimos código para asegurarnos que hace lo que se supone programamos.

En el caso de las Pruebas Automáticas de UI no es tan sencillo: debemos pretender que alguien está haciendo tap sobre la pantalla y arrastrando e interactuando con tu app para que haya cambios en la interfaz, debe de haber mecanismos para poder “ver” si la UI cambió de acuerdo a lo esperado.

Continue reading

Mostrar una Vista de Cargando en mi App de iOS (Loading View)

Standard

Introducción.

Cuando estás esperando porque se carguen datos de internet, necesitas mostrar una vista que indique que está esperando por los datos. La recomendación sería utilizar un “spinner” básico (UIActivityIndicatorView) para asegurar que la aplicación continúa en ejecución, y se puede acompañar de algún texto como “Loading …”.
A pesar de que es un comportamiento común en las aplicaciones, no es un control estándar y debe ser construido manualmente.

Aplicación de Muestra

A continuación les comparto un ejemplo del uso que se le puede dar a LoadingView.
Loading View

Continue reading

Conectando IOS + SWIFT + BLE Sensor Tag + Acelerómetro

Standard

Buen día, hoy veremos un tema que tuvimos que atacar recientemente.

Por requerimientos de un cliente necesitamos conectar una aplicación hecha en Swift para IOS con un dispositivo BLE 4.0 para poder obtener los datos del acelerómetro.

 

Antes de empezar pondré el link de la página donde saqué la biblioteca para convertir los datos:

https://github.com/StevenRudenko/BleSensorTag

Ahora sí comencemos.

Lo primero es crear un proyecto IOS. Continue reading

Cocoa Pods

Standard

Después de algunos años de resistencia a implementar Cocoa Pods, me vi casi obligado a cambiar mi proyecto actual a esa modalidad por un componente de Gráficas que al final, terminé por no usar por cierto.

¿Por qué me resistía? Porque CocoaPods tiene una manera muy particular de trabajar, mientras que en otros ambientes de desarrollo como Rails, Java, NodeJS por citar algunos, tu instalas tu dependencia y se integra de manera natural en tu proyecto, CocoaPods te genera un workspace, que es un integrador de proyectos. Este workspace integra tu(s) proyecto(s) y agrega otro proyecto con los Pods.

Pero dada la popularidad de CocoaPods, muchos sitios que publican sus componentes solo incluyen el pod que tienes que instalar para empezar a usarlos. Ya se imaginaran en las que me vi para sacarle la vuelta.

Desde el punto de vista de Arquitectura no se me hace un proceso natural, pero en la práctica es muy sencillo de utilizar, y si obviamos ese punto, podemos tener un manejo de dependencias muy dinámico, escalable y es amigable con el control de versiones.
Continue reading