ThXou

Ama la sabiduría. Desea el conocimiento

CocoaPods: Como Integrarlo en Nuestros Proyectos

| Comments

CocoaPods es un herramienta de gestión de dependencias. Normalmente cuando usamos librerías de terceros, debemos copiar todos los ficheros necesarios de la librería directamente dentro de nuestro proyecto para poder utilizarla. Este modo de usar librerías tiene algunos inconvenientes, como por ejemplo que se hace difícil mantener la librería actualizada de nuevos cambios, teniendo que hacer el proceso manualmente cada vez que queramos actualizarla.

CocoaPods soluciona este problema proveyendo un sistema centralizado donde conviven todas las librerías, las trae a tu proyecto a petición y mantiene el entorno adecuado para el correcto control de las dependencias que puedan haber entre librerías y para que tu proyecto pueda compilar sin ningún problema.

Encriptar Strings Usando Encriptación AES-256 en Objective-C

| Comments

Esta semana, mientras trabajaba en una aplicación, tuve la idea de “ocultar” algunos datos en forma de texto que no quería que fuesen vistos. Concretamente trabajaba con Core Data, y pues, para incrementar el nivel de seguridad, decidí encriptar ciertos datos que guardaba en Core Data, por el hecho de que cualquier usuario con Jailbreak puede ver los datos de Core Data que no han sido encriptados sin ningún problema. Esto me llevo a buscar algunas soluciones y pues, di con la encriptación AES256.

AES (Advanced Encryption Standard), es un algoritmo de encriptación de tipo simétrico. Esto quiere decir que se necesita una clave tanto para cifrar como para descifrar los datos encriptados. Esta clave puede ser cualquier texto que no exceda los 256 bits, pero obviamente que mientras más compleja sea la clave, más difícil será de romper mediante ataques fuerza bruta. De cara a que tu aplicación implemente capas de seguridad con cifrado, la elección de la clave es muy importante. Por ejemplo, aplicaciones geniales como 1Password utilizan este tipo de encriptación para sus datos, ya que tratan con datos tan sencibles como las tarjetas de crédito, contraseñas, etc.

Migración Sencilla De Modelos en Core Data

| Comments

Probablemente los que ya habéis usado Core Data en vuestras aplicaciones, os habréis encontrado con que cada vez que modificas el modelo de datos, al volver a instalar la app en el simulador o dispositivo, la aplicación genera una excepción y se cierra. En el entorno de desarrollo, la solución inmediata es borrar la aplicación del simulador o dispositivo y volverla a instalar, no obstante esto no nos sirve de cara a actualizar nuestra app que ya está subida a la App Store, por razones obvias.

El problema!

Sucede que el sistema de almacenamiento en Core Data solo puede ser abierto por el mismo modelo que se ha usado para crearlo, es por eso que cuando cambias el modelo (añades algún atributo, entidad, etc), el modelo modificado deja de ser igual al modelo que se ha usado para crear el almacenamiento, por lo tanto, son incompatibles y el modelo nuevo resulta no apto para llevar a cabo la tarea.

La solución es llevar a cabo una migración entre versiones del modelo (la anterior y la modificada). Para hacer esta migración, Core Data usa un modelo de Mapeo que le permite saber que cambios tiene que realizar para que el nuevo modelo sea capaz de abrir el almacenamiento como lo hacía el modelo anterior.

Poniéndonos ya en materia, existen 2 tipos de migración: la migración automática, de la que hablaremos ahora, y la migración manual. Estas 2 tan solo difieren en una cosa: El modelo de mapeo usado para hacer la migración. Os paso a explicar más detalladamente el tema.

Disponible La Segunda Beta De iOS 7 Para Desarrolladores

| Comments

Ayer salió la segunda beta de iOS 7 para desarrolladores. Como se esperaba, viene con mejoras en el rendimiento y duración de la batería, así como también en el tema de la fluidez que comentaba en la entrada anterior en animaciones como la de la multitarea.

También, a diferencia de la beta 1, esta vez se ha lanzado la versión para iPad y iPad Mini, cubriendo así la totalidad de los dispositivos que faltaban y que se sabía eran compatibles con iOS 7.

Vuelve la aplicación de grabación de notas de voz retirada por Apple en la primera beta. Con la interfaz adaptada para iOS 7 y una nueva organización de las opciones que hacen un poco más fácil que antes el hecho de ver y manipular nuestras grabaciones y su duración.

Puedes descargarte la beta 2 de iOS 7 desde el la web de desarrolladores de Apple y directamente desde el dispositivo si ya tienes instalada la beta 1 a través de OTA entrando en Ajustes > General > Actualización de Software.

Un Vistazo Al Nuevo iOS 7

| Comments

El pasado lunes 10, como ya sabéis, “tito Tim” lanzó el nuevo sistema operativo iOS 7, junto con un buen puñado de novedades entre la que destaca la completamente renovada interfaz gráfica (ver imagen superior) y un conjunto de nuevas funciones que pretenden hacernos la vida más fácil a los usuarios.

Hubiera escrito antes este resumen, pero he preferido pasar unos días trasteando con la primera beta para ver que tal y poder dar una opinión más consistente sobre el nuevo OS. Así que sin mayor dilación paso a describir algunos aspectos.

La “fluidez” del SO y la suerte de ser la beta 1

Si hay algo que tienen las betas es que puedes mostrar al público un trasto inútil y quedarte tan ancho mientras recibes feedback. Yo soy de los que me comí las 2 horas de Keynote y también vi cuan fluido iba todo en el iPhone de pruebas, mientras mostraban el Safari, el scrolling, acceso a multitarea, etc etc., pues definitivamente ellos no tenían instalada la misma beta que el mortal desarrollador de apps se puede descargar. Hay cocas no tan fluidas como me esperaba, como el hecho de abrir y cerrar la multitarea o las carpetas, que son cosas básicas y deberían de ir bien sobre todo ejecutadas en un iPhone 5, pero bueno, por suerte es una primera beta y yo supongo que los de Apple ya habrán tomado nota de fallos como estos.

Lo que si hay que rescatar es la notable mejora en el encendido del dispositivo, el SO carga muy rápido en comparación con sus predecesores.

Literales en Objective-C

| Comments

Los literales son simplemente unos valores que los programadores podemos escribir “tal cual” en el código. En Objective-C (y por lo tanto en C) ya conocemos algunos ejemplos de esto con los valores primitivos:

1
2
float altura = 23.5;
int piezas = 20;

Estos son: un literal float y un literal int respectivamente. Estos literales son comunes en la mayoría de los lenguajes, no obstante Objective-C tiene sus propios literales a parte de los mencionados, concretamente los que están basados en objetos:

1
NSString *tarea = @”Buscar piso;

Claro, a simple vista podemos decir: Vaya chorrada, lo he usado mil veces!, pero detente un momento a pensar en el ahorro que implica en líneas de código el hecho de tenerlos: como escribirías un número “sin números”?, algo aún más terrorífico, plantearse escribir un string de miles de caracteres “sin strings”.

Dicho esto, es fácil darse cuenta de que los literales son una pieza fundamental de cualquier lenguaje por lo que nos ahorran, a parte de por los casos vistos, por la legibilidad en el código, así que vamos a conocer unos cuantos más pero específicos de Objective-C.

NSNotificationCenter Y Las Notificaciones

| Comments

Vuelvo a la carga con los tutes sobre iOS después de un tiempo ausente por proyectos personales.

Esta vez os voy a hablar sobre otro tipo de notificaciones, diferentes a las notificaciones locales que vimos hace un tiempo. Estas nuevas notificaciones básicamente encapsulan información acerca de algún tipo de evento. Hay objetos que registran estas notificaciones en lo que podemos llamar una “tabla de notificaciones”, esta tabla está administrada por un centro de notificaciones, que es un objeto NSNotificationCenter. Luego tenemos objetos que se registran como “Observadores” de estas notificaciones, de manera de que cuando una de estas notificaciones es lanzada, todos los observadores “se enteran” de esto y normalmente llevan a cabo alguna acción.

Podría parecer un poco chungo, pero no lo es para nada. Te pongo un ejemplo práctico. Imagina un portal de noticias. Los usuarios entran a este portal y pueden suscribirse a las categorías de noticias que ellos prefieran. Una vez sale una noticia relacionada con categoría a la que el usuario se ha suscrito, entonces le llega un correo electrónico avisándole que hay una nueva noticia, así el usuario puede decidir que hacer en ese momento. Pues bien, si hacemos una comparación sacamos que el usuario que se suscribe a las noticias es el “Observador”, el portal de noticias sería el “centro de notificaciones” (NSNotificationCenter) y el correo electrónico sería la notificación lanzada por el centro de notificaciones.

Trabajando Con El Social Framework: SLRequest, Publicar en Twitter Y Obtener El Timeline

| Comments

Seguint amb els tutorials sobre iOS 6, avui ens toca Twittear (o com s’escrigui) i mostrar el nostre timeline de Twitter en una aplicació.

Abans quan volíem comunicar-nos amb Twitter i obtenir dades i actualitzar-los calia fer una connexió a través de OAuth amb uns tokens i secret-keys, això normalment es podia digerir millor usant algun framework o classe externa que servia d’interfície de connexió entre el client i el servei. Des de l’arribada del framework de Twitter i la integració amb iOS 5 les coses es van posar extraordinàriament més fàcils, això ens va permetre l’intercanvi de dades amb Twitter en tan sol pocs passos.

En el Social *Framework tenim una classe anomenada SLRequest, molt similar a TWRequest del framework de twitter. Aquesta classe encapsula les propietats d’una petició HTTP en mètodes fàcils d’utilitzar, amb els quals enviem peticions a Twitter per poder obtenir i actualitzar dades dels nostres comptes configurats en el dispositiu.

Bàsicament enviem una petició HTTP amb uns paràmetres que configuren el que volem dur a terme en el servei, si Twitter diu que no hi ha problema, rebem una resposta amb unes dades que hem de manipular i mostrar a l’usuari, en cas contrari rebem una informació d’error.

Trabajando Con El Social Framework De iOS 6: Publicar en Twitter Y Facebook

| Comments

Aquí les traigo un tutorial bastante fresco sobre el recién nacido iOS 6. Como sabéis cada nuevo iOS trae consigo muchas novedades y este no va a ser la excepción, tenemos cientos de nuevas APIs y cambios con respecto a iOS 5, y por si fuera poco también tenemos 3 nuevos frameworks para estudiar e implementar en nuestras apps. Queda aún trabajo por hacer.

Hoy voy a comenzar con el primero de una serie de tutoriales para ir introduciéndonos en el mundillo de iOS 6 poco a poco. Empezaré con uno de los 3 nuevos frameworks que incluye este nuevo iOS: el Social Framework.

Este framework reemplaza al de Twitter y se hace más generico para ser compatible con las redes sociales de Facebook y Sina Weibo (la de los chinos). Lo genial es que implementarlo en nuestras apps es sencillo, nosotros de momento vamos a publicar nuestro estado en Twitter y Facebook a través de la interfaz nativa del framework. Tiene otras aplicaciones como mostrar el timeline y hacer follows en Twitter y cosas así, pero estas las veremos más adelante ya que son un poco (y solo un poco) más complejas.

Una de las 2 clases que componen el Social Framework es SLComposeViewController, esta clase te permite mostrar una vista al usuario desde la cual el puede componer y publicar un mensaje en cualquiera de las redes sociales mencionadas arriba, incluyendo una imagen o URL con el mensaje.

iOS 6 Golden Master Ya Disponible Para Los Desarrolladores

| Comments

Tal y como se esperaba, hoy ha habido keynote y con muchas novedades interesantes: iPhone 5, nuevo iPod Nano, iOS 6, etc. Para todos los desarrolladores también ha salido la versión Golden Master del iOS 6 y la pueden descargar desde ya.

Para los que no lo saben, una versión Golden Master es una versión “casi” final, osea que es muy probable que la versión final sea similar o igual a esta.

Según Apple, la versión final de iOS 6 estará viendo la luz el 19 de setiembre y estará disponible únicamente para el iPhone 3GS, iPhone 4, iPhone 4S, iPod Touch 4G, iPad 2 y el nuevo iPad.

Aquí en el blog presentaremos tutoriales sobre iOS 6 el mismo día de la salida de la versión final, por lo tanto si eres desarrollador y quieres ir estando al tanto de lo nuevo de este OS, no olvides volver periódicamente.