Amo el código abierto, y aún más a esos desarrolladores que dedican su valioso tiempo libre a crear maravillas. Gracias a ellos por compartir desinteresadamente los frutos de su arduo trabajo. Autores y contribuyentes de código abierto, son increíbles, gracias por todo lo que hacen.

Dado que soy de los que no pueden vivir sin coleccionarlo todo, aquí he seleccionado algunas bibliotecas de código abierto de iOS según mis gustos personales. El orden de estos proyectos es completamente aleatorio, y cada uno es increíble. La mayoría son compatibles con CocoaPods, así que añadirlos a tu proyecto de Xcode es pan comido.

Al final de este artículo puedes encontrar una versión de «texto largo, precaución»: una lista simple solo con títulos y enlaces de proyectos. Si crees que este artículo es útil, compártelo con otros colegas que desarrollen en iOS; hasta el buen vino necesita darse a conocer.

1. DZNEmptyDataSet

DZNEmptyDataSet es una forma bastante estándar integrada en iOS, adecuada para manejar table views y collection views vacías. Por defecto, si tu table view está vacía, la pantalla queda vacía, y así la experiencia del usuario no es ideal.

7916618959919052905

Con esta biblioteca, solo tienes que cumplir algunos protocolos, e iOS automáticamente manejará perfectamente la collection view y mostrará los mensajes al usuario de manera adecuada y atractiva. Cada proyecto de iOS puede manejarse automáticamente, sin tener que preocuparse uno por uno.

2. PDTSimpleCalendar

¿Tu aplicación necesita un componente de calendario simple, bonito y que funcione bien? Ahora lo tienes: PDTSimpleCalendar quizá pueda considerarse el mejor componente de calendario para iOS. Puedes personalizarlo en todos los aspectos, tanto en la lógica de funcionamiento como en la apariencia.

7916687129639967930

3. MagicalRecord

Todos dicen: Core Data es simple y fácil de usar. Luego dicen: es estupendo y muy útil. ¿Ah, de verdad, Apple? La gran cantidad de código repetitivo que se añade a cada proyecto no cumple en absoluto con el estándar de simplicidad y facilidad de uso. Ni hablar de añadir, eliminar y actualizar un montón de entidades, guardar contextos, crear diferentes pilas de Core Data según el entorno, etc. Por supuesto, me encanta Core Data, pero Apple realmente podría simplificarlo mejor: usando el enfoque MagicalRecord.

7917025779221885438

MagicalRecord es como un envoltorio para Core Data, que oculta todo lo irrelevante. Si alguna vez has usado el patrón active record (como en Ruby on Rails), ya sabes de qué hablo. Lo recomiendo encarecidamente; los que usen Core Data en sus aplicaciones definitivamente deben probarlo.

4. Chameleon

Si has llegado hasta aquí, supongo que eres más un mono programador que un león diseñador. Aquí hay algo que te viene muy bien.

7916513406802779586

Chameleon es un framework de colores para iOS. Utiliza colores planos modernos para extender UIColor de forma muy atractiva. También podemos usarlo para crear paletas con colores personalizados. Tiene muchas más funciones; consulta el readme. Si quieres que tu aplicación sea hermosa, definitivamente añade esta biblioteca a tu proyecto.

7916867449546916812

5. Alamofire

Alamofire es una biblioteca de red concisa, escrita en Swift. ¿Has usado alguna vez AFNetworking? Alamofire es su hermano pequeño. Más joven y moderno, claro (AFNetworking está escrito en Objective-C).

7916867449546916814

Si necesitas realizar tareas relacionadas con la red, como descargas, subidas y obtención de JSONs, Alamofire es justo lo que necesitas. Con más de 8000 recomendaciones en GitHub, seguro que no falla.

6. TextFieldEffects

¿No te parece que el UITextField estándar es un poco aburrido? Yo también lo creo: ¡conoce TextFieldEffects! Sin muchas palabras, solo tienes que ver algunos ejemplos:

7916854255407382019

7917016983128864819

7917048868966067776

Sí, son controladores drop-in sencillos. Incluso puedes usar IBDesignables en el storyboard.

Desafortunadamente, esta biblioteca no es compatible con CocoaPods (si vienes del futuro y esto cambia algún día, asegúrate de avisarme en Twitter), pero sí es compatible con Carthage. Solo descarga el proyecto desde GitHub y colócalo en tu workspace.

7. GPUImage

¿Has escrito alguna vez una aplicación de cámara? Si no, pronto seguramente te encontrarás con esta biblioteca.

7917025779221884764

GPUImage nos proporciona efectos de cámara acelerados por GPU (compatible con fotos y vídeos), y además procesa a gran velocidad. En la App Store, hay cientos de aplicaciones que usan esta biblioteca. Yo también tengo una aplicación que usa GPUImage. Ha obtenido 8869 estrellas en GitHub y sigue creciendo.

7916491416570287001

8. iRate

¿Cuál es la mejor manera de obtener más reseñas en la App Store? Para responder a esta pregunta carezco de datos concretos, pero si tuviera que adivinar, sugeriría preguntar a los usuarios. Quizás sea un poco clásico: la mayoría de desarrolladores ahora crean alertas personalizadas dentro de la aplicación.

Pero si no tienes tiempo, o no quieres implementarlo desde cero, es mejor usar iRate. Esto es iRate: una biblioteca pequeña que puedes añadir a tu proyecto; olvídate de encuestas y demás. iRate resolverá el problema en el momento adecuado.

9. GameCenterManager

Te guste o no el patrón singleton, gestionar GameCenter es mucho mejor que otros patrones opuestos que conocemos. (Tu juego solo tiene un GameCenter, ¿verdad?)

7917081854314897416

Para ser honesto, gestionar el GameCenter estándar en iOS no es difícil, pero con esta biblioteca es más simple y rápido. ¿No es mejor mejorar lo bueno?

7916999390942818369

He usado esto en uno de mis juegos, y la experiencia es muy buena.

10. PKRevealController 2

¡Atención, esto es realmente genial! Es uno de mis controles favoritos de iOS. PKRevealController es un menú lateral deslizante (puede deslizarse hacia la izquierda, hacia la derecha o hacia ambos lados); basta con un toque ligero del dedo (o pulsar un botón, pero así no es tan elegante al deslizar).

7916931221221331262

He probado otras bibliotecas que ofrecen este tipo de control, y PKRevealController es el mejor. Instalación sencilla, altamente personalizable y con buen reconocimiento de gestos. Puede usarse como un control estándar en el SDK de iOS.

11. SlackTextViewController

¿Has usado alguna vez la aplicación de Slack para iOS? Si trabajas en una gran empresa de software, quizás sí. ¿Y para los que no la han usado? Slack es emocionante. Las aplicaciones que usan Slack también lo son, especialmente cuando se utiliza como un excelente control de entrada de texto personalizado. Aquí tienes un código listo para usar en tu aplicación.

¿Zonas de texto adaptables? Pruébalo.

¿Reconocimiento de gestos, autocompletado, fusión multimedia? Pruébalo.

¿Soluciones drop-in rápidas? Pruébalo.

¿Qué más quieres?

12. RETableViewManager

RETableViewManager te ayuda a crear y gestionar table views dinámicamente. Nos proporciona celdas predefinidas (bool, texto, fecha, etc. — mira las capturas de abajo), pero también puedes crear vistas personalizadas y usarlas junto con las vistas predeterminadas.

7916702522802756705

¡La captura de la izquierda se ve muy anticuada! Sin esta biblioteca en el storyboard, esto es todo lo que puedes hacer, pero a veces el código es mejor que un editor visual.

13. PermissionScope

Con esta biblioteca puedes informar al usuario sobre los permisos del sistema necesarios antes de preguntarle, ofreciendo una mejor experiencia. Mayor aceptación —> más usuarios activos -> mayor retención -> mejores datos -> más descargas. Recomiendo encarecidamente este pod.

7916854255407382018

14. SVProgressHUD

Esta imagen se carga con normalidad, sin esperar demasiado ni refrescar la página. Así es como se comporta SVProgressHUD en tu aplicación. Si necesitas un indicador de espera personalizable, este es el indicado (quizás el mejor).

7916702522802756704

15. FontAwesomeKit

Font Awesome es increíble; con él puedes añadir fuentes a tu proyecto fácilmente, con multitud de usos.

7916764095453912512
 

16. SnapKit

¿Te gusta Auto Layout? ¡Por supuesto que sí!Al menos cuando lo creas en el storyboard. Crear constraints manualmente en código es muy doloroso, pero afortunadamente tenemos SnapKit; úsalo en el storyboard y podrás escribirlos de forma simple e intuitiva.

7916762995942284689
 

17. MGSwipeTableCell

Este es otro componente de UI común en muchas aplicaciones. Apple debería considerar añadir algo similar al SDK estándar de iOS. Celdas de tabla deslizables son la mejor descripción de este pod, y también es el mejor.

55ae0953304a9

55ae09e206728

55ae09eeebdf6

Estos son solo tres de los tipos de animación; hay muchas más variaciones, consulta el readme.

18. Quick

Para pruebas unitarias en Swift (también se puede usar con Objective-C), integrado con Xcode. Si eres fan de Objective-C, te sugiero usar Specta en lugar de este, pero para usuarios de Swift, Quick es la mejor opción.

7916762995942284684
 
7916702522802756700
 

19. IAPHelper

Las compras dentro de la aplicación nos dan mucho código de muestra, pero esta biblioteca se deshace de ese código y envuelve de manera simple la mayoría de las tareas comunes relacionadas con transacciones de dinero.

20. ReactiveCocoa

Bueno, esta es una pequeña bestia.

ReactiveCocoa no es como las otras bibliotecas de la lista; no es un proyecto drop-in pequeño. ReactiveCocoa nos trae un estilo y una estructura de programación muy diferentes; se basa en señales y flujos de datos. Primero necesitas olvidar todo lo que sabes para entender su forma de trabajar. Es muy difícil, pero de gran valor.

7917081854314897412
 

Enseñar ReactiveCocoa aquí no es apropiado, pero si te interesa, proporcionaré algunas buenas fuentes:

  • Getting Started with ReactiveCocoa
  • Mattt Thompson:Reactive​Cocoa
  • ReactiveCocoa Tutorial – The Definitive Introduction: Part 1/2

Nota: para los amigos de nuestra comunidad de desarrollo iOS, esto será una tarea con un poco más de contenido técnico.

21. SwiftyJSON

Hace que el análisis de JSON en Swift sea simple.

22. Spring

Mejora las animaciones en simplicidad, encadenabilidad y declaratividad.

7916931221221331258
 

23. FontBlaster

Simplifica la carga de fuentes personalizadas.

24. TAPromotee

La promoción cruzada de aplicaciones es una de las mejores estrategias de marketing que puedes implementar de forma gratuita. Usar esta biblioteca es tan sencillo que es imposible no hacerlo: añade TAPromotee a tu podfile, configura gratis y disfruta de más descargas.

7916702522802756701
 

25. Concorde

¿Cargas un montón de jpeg en tu aplicación? Con Concorde, puedes resolverlo de una manera mucho mejor; es un gran avance.

7916764095453912513
 

26. KeychainAccess

Un pequeño asistente para gestionar el acceso a Keychain.

7916762995942284690
 

27. iOS-charts

El último, pero no por ello menos importante: ¡una biblioteca de gráficos para iOS! Muy útil y hermosa, no necesito decir más. Mira hacia abajo y verás lo que puedes hacer con ella.

7916854255407382020
 

Así es, todo se convierte en componentes drop-in (o quizás componentes "code-in").

7917016983128864820
 
7917048868966067777
 

Desafortunadamente, todavía no es compatible con CocoaPods, así que tendrás que arrastrarlo manualmente a tu workspace de Xcode.