agi18n agimagechecker amazonaws android arc autolayout blog building cache calabash certificates clean code cocoa cocoapods data binding debugging deployment target drm ebs ec2 errors facebook fix git i18n images instruments interface builder ios iosx enterpise summit ipad iphone iphone5 kotlin libraries like button linking links llvm memory management method swizzling mobile model mvc mvvm nil objective-c optimizations patch patterns performance presentation provisioning profiles restkit runtime rxjava rxswift security shadows streaming svn swift testing tools tutorials uikit uistackview video view xcode

Subscribe to this blog

Latest posts

Restkit addition: Cache-Control

Angel G. Olloqui 15 August, 2012

Today I am not going to explain anything new but to add a small patch to RestKit. If you still haven’t worked with RestKit before give it a try. It is a very useful library to manage connection to external APIs.
RestKit, between many other things, have a feature to set the cache policy that you want to use when interacting with the external WebServices. However, if you take a look to the defined policies, you may see (if nothing has changed since I wrote this post) that none of them give you the option to read the “Cache-Control” header of the HTTP response. And that is exactly what I have added in my pull request https://github.com/RestKit/RestKit/pull/888. Nevertheless, the pull request has not been merged yet, so here you have a temporary solution:

Tags: restkit, libraries, patch, ios, cache


CocoaPods: a great tool for library dependency management

Angel G. Olloqui 05 July, 2012

Have you ever needed to use a third party library which needs other third party libraries and wondered why the hell they are so complicated to integrate within your iOS project? well, if that is your case then you will like this post and you will love CocoaPods.
But first, let me tell you that before writting this article I have worked with it for a couple of months in real projects. Thus, it is long enough to write some experiences that I had with it, but let’s start from the beginning.

What is CocoaPods?

CocoaPods is a tool written in Ruby that allows you to manage library dependencies in Objective-C projects. It is very simple to use, specially if you are used to Ruby Gems. The only thing you have to do is install it in your machine and then create a file called Podfile in your project, which will contain a list with the project dependencies to other libraries. For example:

Tags: ios, cocoapods, libraries, tools


Advance debugging in XCode

Angel G. Olloqui 02 June, 2012

Today I am going to talk about advanced debugging techniques in XCode. I am not going to spend much time on explaining the different options that you can find in the IDE, how to set breakpoints, or stuff like that. You can find basic techniques in many resources on the Internet.
But before starting, I want to remark two things:
  • This is a real example, where the standard breakpoints and console outputs are not enough to detect where the bug is. I haven’t activated the Exception Breakpoint because this option sometimes destroys the only information we have of the stack trace. My suggestion is to give it a try, but if you can not find your bug with it then disable it and continue reading this post. You will find a different way of debuging and you need as much information as possible. 

  • There are many debugging techniques. Do not blame me if I am doing something in a way slightly more difficult or different to “your way”. It is not a guide of how to do it right, but how to get the information we need in some easy steps.
So, having said that, let's start!

Tags: xcode, debugging, tutorials, llvm


Method Swizzling

Angel G. Olloqui 18 May, 2012

Hoy voy a hablar sobre methodSwizzling, para mí una de las técnicas más apasionantes de Objective-C. Eso sí, aviso para navegantes, estas técnicas son complejas y, según el uso que les des, pueden también ser peligrosas. Vamos a verlo!

Qué es MethodSwizzling?

Probablemente nunca hayas oído hablar de MethodSwizzling antes, o si lo habías hecho, no sepas exactamente qué es o para qué puede servir. Pues bien, ese nombre se usa para referirse simplemente a la técnica de intercambiar métodos en runtime.
Es decir, se trata de que métodos que ya existan sean cambiados por otros nuevos durante ejecución, incluso en clases que no has prgramado tú (del sistema por ejemplo). A nivel conceptual puedes entenderlo como una category o una herencia que reemplaza métodos del padre, pero el MethodSwzzling, al ser en runtime, va mucho mas allá. Ahora veremos por qué....

Tags: objective-c, runtime, ios, method swizzling



Angel G. Olloqui 13 May, 2012

Hace ya mucho que no escribo, y la verdad es que después de todo este tiempo tengo una larga lista de temas. Por eso, he decidido empezar con un tema no muy técnico como este para ir calentando motores :)

Principales diferencias entre GIT y SVN

Antes de nada, tengo que advertir que todavía soy principiante en GIT, ya que lo he estado usando durante los ultimos 3 meses nada más, y tampoco tengo experiencia con otros SCM como Mercurial o CVS. No obstante, creo que dispongo de una visión suficiente como para escribir algunas de las cosas que, acostumbrado a SVN, me han chocado en mi cambio, así como algunas de las ventajas de este nuevo sistema de control de versiones. 
Os advierto que, aunque parezca que no, hay mucha chicha que contar y explicar.  Por eso no me voy a entretener con información de background  ni tampoco va a ser un tutorial para iniciarse (puedes buscar en Google para esto que hay muchos y muy buenos tutoriales). Voy directo a discutir algunas de las mayores diferencias:

Tags: svn, git