Ir al contenido principal

iOS 13: Mucho más que un modo oscuro

Desde hace varias versiones, muchos los usuarios de iOS venían reclamando un modo oscuro. Si bien muchas aplicaciones ya contaban con esta característica, la petición para Apple era estandarizar la funcionalidad y poder implementarla en todo el dispositivo, incluyendo la pantalla principal, los ajustes y otros menús del sistema, y no tener que activarlo para cada aplicación por separado.

El modo de cambio de colores permite a las aplicaciones intercambiar la paleta de colores hacia tonos más oscuros. Esto puede realizarse por simple cuestión estética o también para acomodar los colores a las condiciones ambientales (por la noche o con poca luz). Pero esta vez Apple ha querido darle una vuelta más tuerca y como en muchas ocasiones, llegan tarde pero llegan con ventaja.

Implementaciones de andar por casa

La implementación para otros sistemas operativos y aplicaciones que ya lo utilizaban, era bastante más básica que la que Apple nos ofrece a día de hoy. La selección del modo oscuro únicamente modificaba unos colores por otros pero no tenía en cuenta ningún otro criterio como transparencias, gamas de color, contraste… Digamos que consistía en poner negro donde había blanco, blanco donde había azul pero no existía ninguna coherencia entre los mismo y mucho menos con las vistas del sistema y de las demás aplicaciones.

Aunque a vista general parece que iOS 13 lo que incorpora es un selector para cambiar todo el sistema de modo e implementa el mismo en las aplicaciones de Apple, la forma de hacerlo va mucho más allá.

Añadiendo coherencia

Apple siempre se ha caracterizado por mimar el detalle y tener muy en cuenta el diseño en su software. Por ello ha cambiado toda la paleta de colores del sistema para incorporar un modo claro y un modo oscuro de cada uno de los colores de su gama. El negro cambia a blanco y viceversa, pero el azul cambia de un tono que destaca sobre el blanco a otro tono que destaca sobre el negro. Nada de variar colores ni tener que repensar completamente la interfaz, esta se adapta al modo de forma coherente.

Y lo mismo pasa con las transparencias y las pantallas que se superponen, según el modo, si tenemos dos pantallas negras, la que se muestra en la capa superior tendrá un tono más grisáceo para dar esa impresión de profundidad. Y la siguiente será aún más gris y así sucesivamente…

Hasta ahora hemos destacado los puntos que benefician al usuario de las aplicaciones, que además de disfrutar de una uniformidad en el modo oscuro, podrán cambiar entre modos de forma sencilla desde el Centro de control e incluso programarlo para que se active cuando sea de noche. Pero lo importante de iOS son sus aplicaciones, Apple lo sabe y ha querido ponérselo fácil a los desarrolladores.

Facilitando las cosas

Sin entrar en profundidad sobre el desarrollo de aplicaciones para iOS, digamos que implementar el modo oscuro es bastante automático. Si en tu aplicación habías elegido el color negro para un texto y blanco para el fondo sin hacer absolutamente nada, los colores se intercambiarán cuando el usuario esté en el modo oscuro. Si un botón era azul pues el tono del azul cambiará para ser más visible en contraste con el negro, una vez más, sin hacer ningún cambio en la aplicación.

Seas desarrollador o un usuario, la buena noticia es que cuando salga iOS 13 seguro que tienes prácticamente todas las aplicaciones con su modo oscuro correspondiente, ya sean de grandes compañías o de un programador aficionado. Eso si, aquí están excluidas las aplicaciones híbridas o multiplataforma, pero sobre ellas ya hablaremos otro rato.

Comentarios

Entradas populares de este blog

Lenguajes, Frameworks, SDKs, churras y merinas en Swift

Hace unos días, alguien preguntaba en Twitter por recomendaciones sobre algún lenguaje de programación para iniciar su aprendizaje. Ni corto ni perezoso contesté: “Swift”. La respuesta me dejó bastantes sorprendido ya que dijo: “No, gracias pero Swift es Apple”. Algún día os contaré las mil y una bondades sobre Swift como lenguaje de programación, pero hoy quiero hablaros de la separación entre el propio lenguaje de programación y las diferentes librerías compatibles o basadas en ellos.

Primero el lenguaje Un lenguaje de programación es el conjunto de instrucciones, de palabras reservadas, la sintaxis incluyendo la puntuación y separación de instrucciones con las que podemos generar un programa que compilado o no, sea capaz de ejecutarse en una máquina. Seguro que la Wikipedia no dice lo mismo pero sí parecido y me gusta más mi definición.

Los lenguajes de programación pueden tener un creador o varios, particular o empresa, y pueden estar licenciados como software libre o ser propieda…

Swift: ‘some’ y los tipos opacos

Una de las características que más llamó la atención cuando Apple presentó SwiftUI fue esa sentencia some que aparecía en la propiedad body necesaria para implementar el protocolo View en el que se basa todo el framework. Esto es necesario para SwiftUI pero es una de las nuevas características del lenguaje Swift 5.1 y se denominan tipos opacos.


Definición informal Seguro que no va a ser la definición más formal pero al menos es la que yo entiendo. Porque siendo sincero, se me ha atragantado un poco comprender el funcionamiento y sobretodo el fin que persiguen los tipos opacos en Swift.

Un tipo opaco se aplica cuando una función (o variable calculada) retorna un protocolo y obliga a que el tipo devuelto sea conocido en tiempo de compilación y siempre sea el mismo. Es decir, si mi función devuelve -> some Protocolo y Tipo1 y Tipo2 se conforman a ese protocolo, no puedo devolver unas veces Tipo1 y otras Tipo2, tengo que devolver uno u otro siempre. Otra forma de verlo es que el llaman…

Desarrollo nativo con iOS

Hace varios años, la única opción para desarrollar una aplicación y que pudiera ejecutarse en varios sistemas, iOS y Android principalmente, era la plataforma Apache Cordova. Era bastante pesada ya que utilizaba contenedores web y costaba mover con los procesadores móviles de la época. Pero en la actualidad existen soluciones que generan código ya compilado, véase Xamarin o ReactNative, en base a un sólo desarrollo.


Partiendo de la premisa de que consideremos nativas las aplicaciones realizadas con las herramientas de desarrollo oficiales de Apple, vamos a analizar y sobretodo a comparar el desarrollo sobre estas plataformas intentando no entrar, aunque va a ser imposible, en opiniones personales.

Optimización y velocidad Como comentaba en las líneas anteriores, el principal escollo de las plataformas que utilizan contenedores web es el consumo de recursos. Para ejecutarse digamos que cada aplicación que tengamos abierta está utilizando un navegador web casi completo que por un lado …