Componentes iOS opensource para hacerte la vida más fácil

Cuando empecé en la informática estuve alrededor de 10 años siendo usuario de linux y gran defensor del software libre y, aunque te hagas switcher y pases a usar macs y iphones no dejas de ver la gran ventaja del software libre en algunos aspectos.

Uno de los aspectos en el cual me parece importantísimo el software libre es en el de crear librerías y componentes reutilizables de los cuales podamos aprovecharnos todos. Cada uno tendremos nuestros objetivos para nuestras aplicaciones, pero lo que es indiscutible es que si creamos una gran base de componentes que podamos reutilizar todos y que vayamos mejorando entre todos es seguro que el nivel global del código así como de las aplicaciones subirá rápidamente.

Este fin de semana he estado empezando un proyecto de iOS en el cual requería de algunos componentes como, por ejemplo, un menú lateral de estilo al de la app de facebook o un calendario a pantalla completa en el cual pudiera cambiar el color de las celdas según fecha. Así que lo primero que hice fue buscar en github para ver qué podía encontrar y me ha gustado encontrarme con varios componentes que cumplían (algunos más o menos) los requisitos que tenía, de manera que lo primero que he hecho ha sido ponerme manos a la obra y compartirlos con vosotros 😀

Menú lateral tipo facebook

Este primer componente está realmente bien programado y es muy fácil de integrar en nuestra aplicación. La clave de la sencillez del componente es que se amplia la funcionalidad del UINavigationController a través de una categoría en la cual se le añade la referencia al MFSideMenu. Con lo cual siempre tenemos nuestro navigation al cual podemos acceder para ver el estado del menú, cambiar el icono si fuera necesario o lo que sea.

Enlace github: https://github.com/mikefrederick/MFSideMenu

Calendario a pantalla completa

Calendarios estuve viendo varios y habían algunos muy buenos y muy conocidos como Kal pero al final me decidí por este ios calendar de Vladimir Grichina. Principalmente me decidí por él porque, teniendo casi toda la funcionalidad que necesitaba, es muy sencillo. Lo único que no tiene el calendario es la posibilidad de cambiar el color de fondo de las celdas según la fecha. Para esto me creé un fork del calendario, del cual os pongo enlace también, hice los cambios y ya que estaba le hice un pull request (hay que colaborar también en el software libre 😛 ). La verdad es que hay opciones más chulas que simplemente cambiar el color de la celda, como permitir que a través del delegado se obtenga la celda entera, pero como por ahora me servía no me metí más en harina.

Enlace github: https://github.com/vgrichina/ios-calendar

Enlace fork con cambio de color a través de delegado: https://github.com/dortega/ios-calendar

Panel de información

Este componente me gustó y además funciona bien, pero lo pongo con un poco de reticencia porque al que lo desarrolló se le fue la mano en algún momento y borró las imágenes que usaba.

Aquí, en cualquier caso, os pongo dos imágenes que os pueden servir para el caso de las de fondo, aunque hay que cambiar un poquito el código:

Blue

Red

Simplemente en MKInfoPanel.m buscad el método -(void) setType: y cambiais los capwidth y capheight de las imágenes por 2 en todos los casos.

Las imágenes que no he puesto son las de warning y tick, pero podéis buscar algunas que os cuadren y meterlas.

Enlace github: https://github.com/MugunthKumar/MKInfoPanelDemo

Vista PopOver multidispositivo

Para iPad tenemos el UIPopOverController si queremos añadir una vista que se abra como una capa por encima de la actual. En iPhone no hay nada parecido por defecto, pero para eso nos puede servir esta librería.

Enlace github: https://github.com/takashisite/TSPopover

Badged cell

En iOS es posible generarnos UITableViewCells de multitud de maneras, pero esta implementación nos ayuda con los típicos “badges” para poner un conteo de feeds sin leer en una categoría o cosas parecidas.

Enlace github: https://github.com/tmdvs/TDBadgedCell

Transiciones

Me ha gustado mucho el efecto de plegado y pase de páginas que tiene esta librería de Mark Pospesel. Este tipo de transiciones en nuestras aplicaciones harán que nuestra app tenga un efecto mucho más profesional y, con ayudas de este tipo, no podemos ya negarnos a ponerlas 😀

Enlace github: https://github.com/mpospese/MPFoldTransition

Settings

Esta última librería del post que voy a comentar me ha parecido una muy buena idea. Lo cierto es que es una cosa que habíamos pensado todos alguna vez. ¿Porqué si generamos un Settings.bundle para las configuraciones de nuestra app en settings ese mismo bundle no se usa dentro de nuestra app?

Pues a esa pregunta responde InAppSettings y por lo que he estado probando lo hace de manera bastante acertada. Para mi gusto le faltaría ser un poco más fácil de configurar (al menos colores y tal), pero en principio es totalmente válida para empezar.

https://github.com/kgn/InAppSettings

Otras librerías opensource

Casi para acabar aquí os pongo otras dos librerías opensource que yo suelo utilizar intensivamente y que pueden ayudaros 🙂

AFNetworking: https://github.com/AFNetworking/AFNetworking

JSONKit: https://github.com/johnezang/JSONKit

Chuck Norris

Y ahora sí, por último, la reina de las librerías open source. Aunque no sea una librería de iOS sino de Javascript no podía pasar sin ponerla. ChuckNorrisException, una excepción a la que no lanzas tu, sino que te lanza ella a tí.

La podéis descargar en: https://github.com/criso/ChuckNorrisException

Espero que os sea de ayuda y si conocéis algún otro componente interesante dejádmelo en los comentarios y lo añadiré.

Post a comment

You may use the following HTML:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*