49. ¿Qué son las librerías y las APIs?

Transcripción

Librería y API son conceptos bastante parecidos, pero diferentes entre sí, vamos a verlo de una forma fácil y simple para distinguirlos.

Qué son las librerías

Una librería no es más que una serie de código de programación, un conjunto de código que alguien ha hecho para que tú puedes reutilizar dentro de tus proyectos. El objetivo es sencillo, hacer más fácil y rápido el desarrollo de ciertas funciones dentro de tu app.

Normalmente las librerías están enfocadas a solucionar problemas concretos, es decir no te van a hacer un proyecto entero, pero sí que te van a ayudar con ciertas partes de ese proyecto; vamos a ver un ejemplo que siempre queda más claro y se ve de una forma más nítida.

Imaginemos que tenemos una aplicación de una tienda online y lo que queremos hacer es mostrar todos los productos, la información, imágenes que hay en la web pero en nuestra aplicación móvil.

Una de las tareas que tenemos que hacer es la de mostrar las imágenes de los productos que hay en nuestro servidor, para hacer esto tendríamos dos opciones.

Una es hacerlo desde cero, es decir, tendríamos que empezar a programar en Android y tendríamos que seguir una serie de pasos, por ejemplo primero tendríamos que pedir la imagen al servidor. Después tendríamos que obtener todos los datos de esta imagen, guardarlos en local y finalmente mostrar la imagen donde la queramos enseñar, donde queramos mostrar al usuario nuestra interfaz.

Aunque estos pasos los mencionemos de esta forma rápida y parezcan sencillos, tienen su complejidad y tienen sus problemas. Normalmente no es tan fácil como estos cuatro pasos, sino que cada paso tiene sus pasos intermedios.

La otra manera que tenemos que hacerlo es a través de una librería, cómo sería hacer esto con una librería, sería mucho más simple, sería como decirle: librería, cárgame esta imagen que tengo en este servidor, en esta URL, en este lugar de mi interfaz y ya está.

Te olvidas de descargar tu imagen, de guardarla localmente, de cogerla de donde está guardado localmente tu dispositivo y mostrar.

Es simple y llanamente, reducir los pasos que tienes que hacer para conseguir algo, vamos a verlo de otra manera: vamos a hacer una analogía con un concepto más de la vida real del día a día porque siempre se siente mucho mejor. Imaginemos el hecho de hacer café.

Hace unos diez años, quince años la forma que teníamos de hacer café era con esas cafeteras que teníamos que meter el agua, teníamos que luego ponerle el café, ponerla en el fuego, que subiera el agua y luego echarlo en la taza.

Sin embargo, ahora lo que tenemos son cafeteras más modernas, por ejemplo: imaginemos una cafetera espresso, donde una vez tenemos nuestro depósito de agua lleno, simplemente tenemos que meter una cápsula, apretar un botón y nos sale el café en cuestión de un minuto.

Si lo vemos desde el concepto que estamos intentando explicar, podríamos decir que nuestra cafetera espresso es una librería para hacer café, es decir, que nos hace todo mucho más rápido, mucho más sencillo y mucho más libre.

Qué es una API

Visto el concepto el concepto de librería vamos a ver el otro: una API. API son las siglas de application programming interface, y podríamos decir que son una serie de instrucciones para saber cómo utilizar una librería o un servicio.

Por ejemplo: en la librería que estamos comentando para cargar imágenes que vienen de un servidor, la API no sería más que esas dos o tres llamadas con las cuales el programador va a tener que interactuar.

Si lo miramos, en cambio desde el punto de vista de la cafetera, de esa analogía que estábamos haciendo, la API de la cafetera espresso, no sería más que las instrucciones que tenemos para hacer café. Es el librito de instrucciones que nos dice: mira, primero llena el depósito de agua, luego mete la cápsula y luego aprieta el botón.

Simple, la idea es utilizar la librería a través de la API sin saber qué hay detrás. La librería va a hacer como una especie de caja negra, va a ser como una especie de código que está escrito ahí, que nosotros en teoría no tendríamos por qué tocar, es decir, nos da igual.

Nosotros confiamos en que lo que dice la librería estará bien; el término API es el concepto general, el concepto abstracto, menos técnico (podríamos decir).

Cómo puede ayudar una librería

Vamos a ver, cómo nos puede ayudar una librería en nuestros proyectos, en nuestras aplicaciones.

El primer beneficio que obtenemos es agilizar el desarrollo, es decir, si tenemos que hacer algo, si tenemos que llevar a cabo una tarea y alguien ya la ha desarrollado por nosotros, y podemos utilizar ese código que ya está escrito, vamos a cortar mucho el tiempo de desarrollo.

No sólo de tiempo, sino también de coste, en vez de hacer muchas cosas completamente desde cero lo que hacemos es no reinventar la “rueda” que se llama en programación y utilizar la librería que ya lo hace por nosotros.

El segundo beneficio es hacer cosas que serían imposibles o muy difíciles de hacer, si las tuviéramos que hacer desde cero, lo que otorga de cierta viabilidad a algunos proyectos que quizás sin estas librerías serían inviables.
El tercer beneficio cuando utilizamos librerías, cuando utilizamos API’s es que el código que obtenemos es un código probado, testeado y mucho más viable que si lo desarrollamos nosotros. Una librería normalmente está desarrollada por mucha gente y lo que es más importante, una librería la utiliza mucha gente.

Lo anterior quiere decir que si hay un error en ese código, al ser utilizada por mucha gente, los errores se van a descubrir antes y por tanto también la corrección de estos errores, va a ser más rápida, más eficaz, con lo cual por norma general y si elegimos bien una librería, el código que vamos obtener es mucho más fiable, que si los desarrolláramos nosotros mismos.

Finalmente otro beneficio que debemos comentar y lo veremos ahora, es que normalmente las API’s nos dan ideas nuevas de lo que es posible hacer.

A veces piensas quizás que algo es muy difícil de hacer y dices: ¡Uy! no voy a hacer este proyecto porque esto tiene pinta de ser muy complicado; por ello, simplemente al ver una librería se te ocurre una idea y dices: este servicio, con esta API, puedo hacer esta otra idea.

Vamos a ver algunos ejemplos de API’s que son interesantes y que quizás pueden dar lugar a nuevas ideas.

Si desarrollamos algunas ideas con las API’s, quizás haya ideas a las que haya gente que le puedan resultar útil y quizás se les ocurran nuevas ideas. Lo que vamos a comentar aquí son algunas API’s que nos pueden parecer interesantes y quizás puedan dar lugar a nuevos proyectos.

Una de las cosas que no hemos mencionado, es que las API’s o librerías pueden ser de pago o gratuitas, ya depende. Hay empresas, que únicamente se dedican a crear estos tipos de servicios, estas API’s, con lo cual viven de ello, por lo que algunas son de pago, pero hay algunas otras que son gratuitas.

Las que vamos a mencionar aquí, algunas son gratuitas, algunas son parcialmente gratuitas y otras son directamente siempre de pago, así que vamos a ver de forma rápida algunas de las API’s interesantes que hay en el mercado.

Ejemplos de API’s gratuitas, parcialmente gratuitas y de pago

Google Maps

Las primeras que vamos a comentar son de Google, la primera es Google Maps y esta es bastante conocida, ya que nos permite mostrar mapas de una forma muy sencilla dentro de nuestras aplicaciones, dentro de nuestro móviles.

Es decir, es lo típico que ves en una web en el apartado “Dónde estamos” en la que sale el mapa de Google Maps y el icono con la posición donde está localizada una empresa, una tienda o lo que sea. Esto lo podemos utilizar también en nuestras aplicaciones móviles.

Pero no sólo queda ahí, sino que también lo podemos utilizar para mostrar un recorrido en vivo, como hace Google Maps con su navegación, que nos va mostrando nuestra posición por el mapa y nos va diciendo también por dónde tenemos que ir.

Esto también lo podemos hacer con la API de Google Maps. Por ejemplo, las aplicaciones de comida a domicilio o cualquier tipo de aplicación que entregue a domicilio, lo que puedan hacer es mostrarte el recorrido que va siguiendo el repartidor hasta tu casa.

Google Maps como la mayoría de todas las API’s de Google es un servicio gratuito, y luego tienen una parte, que si la utilizas mucho empieza a ser de pago, pero la mayoría de las veces te llega con la parte gratuita podríamos decir.

Google Translate

La segunda API es Google Translate la cual es muy conocida y se encarga de traducir texto.

Por ejemplo, nosotros le damos un texto a esa API y le decimos: mira, Google Translate, tradúceme este texto que está en español al inglés, y de esta manera podemos incluir este servicio de traducción dentro de nuestra aplicación.

Esto podría ser muy útil para muchas ideas, por ejemplo: si tenemos una aplicación de un chat para aprender idiomas donde nos ponemos en contacto con personas que hablan un idioma con personas que hablen otro y que hablen entre ellos para aprender nuevos idiomas.

Podríamos hacer que todos los mensajes que se envían entre ellos se muestren en el idioma original primero y luego en un idioma traducido, en el idioma que recibe el otro usuario, que entiende el otro usuario.

De esta manera, sería mucho más fácil aprender nuevas palabras, porque verías el mensaje de la persona en el idioma que estás intentando aprender y luego, debajo el idioma que tú entiendes, con lo cual podrías deducir cuáles son las palabras, qué sentido tienen, qué significado tienen.

Google Translate, al igual que la anterior app, también es en su mayoría gratuita y luego según el uso empieza a hacer de pago.

Google Cloud Vision

La tercera API que queremos comentar, es Google Cloud Vision, es un servicio para reconocimiento de imágenes que tiene varias funciones, pero las tres principales son las siguientes.

La de reconocer objetos en imágenes, es decir, tú le envías una imagen y la API te va a decir qué clase de objetos hay.

Por ejemplo, si nosotros hiciéramos una foto de lo que tenemos ahora delante y la subiéramos o se la enviásemos a esta API de Google Cloud Vision, lo que nos diría es: mira, aquí hay una webcam, un ordenador, una tablet, un ratón, un teclado, un micrófono.
Ahora mismo, no se nos ocurre una idea donde esto podría encajar, pero seguro que dándole vueltas hay una forma de aprovecharse de esta API .

Otra función que tiene es la de detectar contenido inapropiado, es decir, básicamente decirte si una imagen tiene contenido para adulto, si tiene contenido violento o si tiene contenido sexual.

Dónde podría encajar esto, quizás si tienes una red social de imágenes donde tienes que cuidar el contenido que ahí sale, te puede servir para moderar ese contenido.

Por ejemplo, cuando un usuario va a subir una nueva imagen, lo que puedes hacer es tener en tu servidor una especie de moderador automático que lo que haga es comunicarse con esta API y considerar si esa imagen es apropiada o no para publicarse, porque la otra opción que tendrías es la de la revisión manual, es decir, que hubieran personas que estuvieran revisando todas imágenes y decidiendo si podían ser incluidas o no.

Obviamente esta opción será más fiable, pero el gran problema es que es poco escalable para que empieces a tener muchos usuarios, muchas imágenes que se suben, y se hace muy complicado porque vas a necesitar tener a muchas personas revisando imágenes.

Y finalmente otra de las funciones interesantes que tiene esta API es la de extraer texto de una imagen, es decir, enviar una imagen a la API y que te diga qué texto hay dentro de esa imagen.

Por ejemplo, imaginemos que hacemos una aplicación para celíacos y que mediante una simple foto a los ingredientes de un producto te dijera si ese alimento es apropiado para ti o no siendo celiaco.

El sistema aquí funcionaría de la siguiente manera: el usuario haría una foto, tú subirás esta foto al servidor, el servidor extraería el texto de la foto, esos ingredientes, a través de esta app y de Google Cloud Vision y simplemente analizaría el texto comparando los ingredientes a los cuales eres tolerante o no eres tolerante, y te diría la aplicación mira: este producto es adecuado para ti o no.
Si no tuviéramos esta API sería mucho más complicado, ya que la otra opción que tendríamos sería decirle al usuario que empezara a introducir los ingredientes por el teclado, lo cual quita toda la gracia a la aplicación, y el comprobar si ese producto es adecuado para ti o no es más enrevesado.

Personality Inside

Esta cuarta api es de IBM y se llama Personality Inside, resulta bastante interesante y lo que hace es decirte cómo es una persona, es decir los rasgos psicológicos a través de un texto.

La idea es enviar texto a esta API que está escrito por una persona, por ejemplo a través de las redes sociales, a través de e-mails y te ofrece un perfil de la personalidad de esa persona.

IBM Watson texto speech

Esta API convierte el texto en voz y, no lo hace de una forma como estamos acostumbrados a escuchar por internet, es decir, en Youtube con el típico loquendo, que se nota mucho que es una máquina, sino que está mucho más trabajado. Obviamente se nota que es una máquina, porque es una máquina, pero está bastante conseguido

Esta API la podemos aplicar en muchos casos; por ejemplo podríamos tener el típico lector de RSS, que convierte en el texto de una serie de artículos o blogs, en voz para luego convertirlo en un podcast.

En vez de tener que estar con el móvil leyéndolo, simplemente aprietas un botón y te lo pone en formato audio y así lo puedes escuchar en el coche (como se escuchan los podcast) cuando estás andando, en muchas situaciones.

Esta API al igual que la anterior de IBM, tiene una parte de cuota que es gratuita, pero luego ya empieza a ser de pago en función del uso que le des.

Las API’s sociales

Las API’s sociales son muy conocidas: API’s de Facebook o API’s de Twitter, que te permiten interactuar con estas plataformas, al igual que lo harías desde la web o desde la aplicación, pero en este caso a través de una API.

Se utilizan por ejemplo, en los login sociales para acelerar el proceso de registro en una aplicación; cuando tú ves el login con Facebook, básicamente lo que hacen es preguntarle a Facebook por tu información y ellos se la guardan. O también para promocionar contenido, cuando te dicen: publícalo en Facebook y en un solo botón, publicas algo que tiene que ver con la aplicación.

También se usan con los juegos, cuando te dicen: invita a una persona que se una a este juego, a tu clan, o lo que sea en cualquier juego, y de repente te muestran la lista de tus amigos y simplemente tienes que seleccionarlos y enviarles una invitación.

En su mayoría estas API’s suelen ser gratuitas.

Twilio

Twilio es una api que te permite enviar mensajes de texto, sms de los de antes.

¿Cómo se utiliza? Pues básicamente le dices a la api: mira, envía este mensaje a este usuario que tiene este número de teléfono y ya no te tienes que preocupar de nada; simplemente va a enviar ese mensaje a ese número que tú le has dado.
Esto se suele utilizar, por ejemplo para una autenticación. En Whatsapp (por decir uno) tú te creas una cuenta, simplemente introduces el número de tu teléfono móvil y te envía un código a través de un mensaje, y tienes que confirmar tu cuenta con este código, confirmando que ese número de teléfono es tuyo.

Otro caso para el cual lo podríamos utilizar, quizás es para temas de marketing, para promocionar, para enviarle mensajes al usuario.

Esta API sí que es de pago y simplemente pagas por el número de mensajes que envías.

Openweather

Y finalmente, otra de las apis interesantes es la de Openweather, la cual te ofrece una previsión del tiempo en función de la localización que tú le digas.

A través de las precisiones GPS del móvil, lo que va a hacer Openwater es devolverte una previsión para las siguientes horas: qué tiempo va a hacer, si va a hacer Sol, si va a nevar, si va a haber un huracán, cualquier cosa.

Esta API sí que tiene una gran parte que es gratuita, de hecho puedes hacer mil peticiones, mil llamadas y luego empieza a ser de pago.

Estas son algunas de las API’s que podemos utilizar en nuestros proyectos, esperamos que puedan ser de ayuda y puedan dar nuevas ideas, para hacer nuevos proyectos.

Si te ha resultado útil este artículo puedes hacer que también lo sea para otras personas compartiéndolo en , LinkedIn o .

Como siempre para cualquier duda o sugerencia puedes contactar conmigo y estaré encantado de poder ayudarte.

¡Suscríbete

a la newsletter!

Simple y llanamente te mantendré al día una vez al mes a través de un email con artículos o noticias de interés relacionadas con el mundo de las aplicaciones móviles. ¡Nada de spam!