La relación entre Librería, API, Framework y SDK en el desarrollo de Apple.

Pedro Hernández
6 min readMay 4, 2018

--

Hay millones de líneas de código escritas para ti

En ocasiones hablamos de librería o biblioteca, API y framework como elementos similares. Por eso, me gustaría explicarte de forma sencilla qué significa cada uno de ellos y cómo se relacionan entre sí, para que puedas comprenderlos mejor. Además es bueno que conozcas, un elemento importante en los sistemas operativos de Apple que son los SDK.

¡Venga vamos al grano!

LIBRERÍA

Una librería o biblioteca es un fragmento de código al que puedes llamar desde tu propio código para ayudarte a hacer las cosas de manera más rápida y fácil. Lo que viene a ser un conjunto de elementos como, por ejemplo, funciones, clases, constantes, variables, … que puedes usar en tu proyecto para hacer una aplicación.

Ejemplos:

  1. Las librerías estándar de Swift resuelven problemas complejos y te permiten escribir código legible de alto rendimiento. Estas librerías son una capa básica de funcionalidad para escribir programas en Swift. Un conjunto de tipos de datos y capacidades diseñados para Swift y procesados en este lenguaje de programación.
  • Si escribes un texto entre comillas “Me encanta hacer prototipos”, gracias a la librería estándar de Swift, el programa procesará esto como un tipo de cadena de texto o String.
  • Si pones: let a: Int = 10, el programa interpretará que es un número entero sin decimales, por ejemplo: let suma = a + 1, esto dará como resultado 11, y si intentas sumarle 0.5, dará error, ya que no admite números con decimales.
  • Mientras que si escribes: let b: Double = 10, el programa sabrá que este número puede tener decimales. Entonces, sí le pones sumar valores decimales: let sumando = b + 0.5, así tendrá como resultado 10.5.

API

Una API (Interfaz de Programación de Aplicaciones o en inglés Application Programming Interface) es la conexión entre tu código y una librería o varias librerías. Está alejada de la versiones de las librerías con las que conecta. También, una API no incluye detalles de la implementación. Por ejemplo, puede haber varias librerías para trabajar con números decimales Double o Float y cada una de ellas tiene una implementación completa para este tipo de números. Mientras que una API es única para trabajar, en este caso, con decimales, y según el dispositivo y el sistema operativo que tenga, usará una librería u otra, según lo haya definido el creador de la API.

Ejemplos:

  1. La API de Apple Music es la parte de servicios web de música. Con Apple Music API, puedes acceder a la información sobre medios, como álbumes, canciones, artistas y listas de reproducción, en el catálogo de Apple Music y en la biblioteca de música de tu iCloud. Si lo autorizas, también puedes acceder o modificar los datos asociados con tu usuario. Por ejemplo, puedes encontrar recomendaciones musicales para ti o cambiar tu calificación de una canción en particular, tanto en el catálogo como en tu biblioteca de música. Entonces, Apple Music API será la conexión entre el código de tu aplicación y todas las librerías y recursos que ofrece Apple sobre su música que hay en iTunes. Esta API será única sin detallar cómo implementa el uso de la música, pero sabemos que utilizando el código apropiado funcionará correctamente la música de Apple en nuestra aplicación.
  2. La API de Search Ads permite a anunciantes y agencias de publicidad crear y administrar gran cantidad de campañas de anuncios de forma programática y crear informes para conocer tendencias y otros clientes. Para ello, dispondrán de recursos y métodos que les permitirán crear campañas y obtener información de las mismas. Entonces, esta API es única para entornos web que permite acceder a diferentes recursos y métodos que crea o da la información que necesitas, sin conocer totalmente el detalle de la implantación interna de las librerías que usa.

FRAMEWORK

Un framework es una gran librería o grupo de librerías que proporciona muchos servicios (en lugar de tal vez solo una capacidad enfocada como lo hacen la mayoría de las librerías). Un framework engloba muchas herramientas como, por ejemplo, APIs y librerías que facilitan el desarrollo de tu aplicación. Proporcionando una base completa sobre la cual puedes construir tu propio código, en lugar de construir una aplicación que consuma código de la librería para hacer partes de su trabajo.

A medida que los frameworks evolucionan a través de varios lanzamientos, las API se introducen o se desaprueban y el comportamiento de las API existentes puede cambiar ocasionalmente. Apple hace todo lo posible para minimizar los cambios que pueden causar incompatibilidades, en algunos casos proporcionando comportamientos alternativos en función de la versión del framework. En casos excepcionales, tu código necesita determinar la versión del framework y ajustarlo en consecuencia.

Normalmente, los frameworks detectan cómo se genera una aplicación al observar la versión de los frameworks del sistema con los que está vinculada la aplicación. Por lo tanto, cuando vuelva a vincular su aplicación con un SDK más nuevo, es posible que observes comportamientos diferentes, algunos de los cuales pueden causar incompatibilidades. En estos casos, debido a que tu aplicación se está reconstruyendo, debes abordar estos problemas al mismo tiempo. Hay otros frameworks que en algunos casos, proporcionan configuraciones predeterminadas (preferencias) que puede usar para obtener el comportamiento antiguo o nuevo, independientemente del SDK en el que se basa una aplicación.

Ejemplos:

  1. Foundation: Accede a los datos esenciales y servicios del sistema operativo para definir la capa básica de funcionalidad para tu aplicación. Por ejemplo, si quieres cambiar el color de una cadena de texto usaremos los métodos que nos ofrece.
  2. AVFoundation: Trabaja con recursos audiovisuales, controla cámaras y audios, configurando su interacción con el sistema. Por ejemplo, al echar una foto puedes escoger la cámara delantera o trasera de tu iPhone usando sus métodos.
  3. UIKit: Construye una interfaz gráfica de usuario para aplicaciones. Por ejemplo, para que el color del fondo de la vista de un viewController (o pantalla) sea de color amarillo usarás la propiedad backgroundColor = .yellow.

SDK

Un SDK es una implementación específica para los programas que facilita el consumo de APIs o frameworks. Por ejemplo, el framework Foundation puede ser usado o consumido en varios sistemas operativos (iOS, macOS, tvOS y watchOS), a partir de las siguientes versiones de SDK: iOS 2.0+, macOS 10.0+, tvOS 9.0+ y watchOS 2.0+. Esto quiere decir, por ejemplo, que cuando salió el primer iPhone con la versión 1.0 de iOS no se podía usar el framework Foundation, porque hasta la versión 2, no se desarrolló el SDK 2.0 que incorporaba la implementación para que el sistema operativo iOS reconociera el uso de este framework Foundation.

Conclusiones

Apple u otras personas han desarrollado librerías para facilitar la creación de tu propio código. Estas librerías han sido englobadas en APIs para que sea más fácil la conexión entre tu código y estas librerías. Posteriormente, los frameworks permiten el uso de una o varias librerías o APIs que te permitirán crear características personalizadas en tu código escrito. Finalmente, gracias a los SDK, el sistema operativo de los dispositivos Apple, reconocerá tu código para que puedas utilizar tanto librerías, APIs y frameworks.

Como se relacionan entre sí las librerías, API, frameworks y SDK.

A veces la línea divisora entre librerías, API y frameworks se difumina, pero gracias a la buena lectura de la documentación que tienen todos estos, podrás implementar o programar correctamente y de forma sencilla muchas funcionalidades en tu aplicación. Aprovecho la ocasión para agradecer el trabajo e investigación de miles de desarrolladores e ingenieros que nos facilitan mucho el desarrollo de apps en el día a día. ¡Gracias a todos ellos y ellas!

¡Llamada a la acción!

Este artículo forma parte de una de las más de 250 clases del curso “Cómo ser profesional iOS con Swift: Desde cero al App Store”.

Si te ha gustado el artículo pulsa el botón de aplaudir para que más personas puedan conocerlo, también puedes compartir su enlace en tus redes sociales, y además tienes la posibilidad de inscribirte en el curso.

Bibliografía

--

--