Novedades técnicas en iOS y el entorno de desarrollo

Tanto monta, como monta tanto, Isabel como Fernando. O eso decía mi tocayo, Fernando El Católico, para convencerse que mandaba tanto como su señora. Va ser que no, querido maño, en tu casa como en la mía, manda la parienta.

Sin embargo, como usuario de iOS y de Android (¡sólo cuando viajo eh!), he de decir que cada vez noto menos diferencia entre un sistema operativo y otro. Android ha mejorado horrores, el precio y las prestaciones de su gama alta se asemeja a los iPhones, y para mi gran tristeza, iOS 14 va a incorporar algunas de las características de Android que más me irritan.

Asi que, ¿tanto monta como monta tanto, iOS como el monigote glauco? NO.

Un modelo de negocio que respeta tu privacidad

iOS sigue siendo una plataforma infinitamente más segura que Android, por una razón muy sencilla: el modelo de negocio de Apple frente al de Google.

Mientras que Apple vive de vender cacharros caros, Google te dará lo que sea, a cambio de tu alma. No es cuestión de ser bueno o malo, es de cómo ganan dinero cada uno de ellos. No es que Android sea peor plataforma, es que al igual que la niña del exorcista, lleva el demonio dentro: Google.

Mientras que me estoy dando de baja del mac, del iOS de Chanquete no me moverán, y la razón principal es la privacidad. Es malo que esa sea la principal razón y no la calidad inherente de la plataforma (cosa que antes sí era muy distinto), pero es una razón de tal peso que lo compensa todo.

Algo tan sencillo como el detallar qué datos va a usar una app y para qué, ANTES de instalarla, es tan vital que debería de ser obligatorio por ley.

Sin embargo, veamos algunas de las novedades técnicas en iOS y el entorno de desarrollo.

App Clips

Parece una chorrada, pero esas “píldoras” con un cachito de tu App me parecen un añadido interesante y una nueva forma de dar a conocer tu App a nuevos usuarios, con una especie de mini-demo. Por supuesto que viene “hiper atado y bien atado” (ya sabemos como termina eso) con Signin With Apple y Apple Pay, pero aun así creo que es una opción interesante. Una vez más está claro el deseo de cerrar más si cabe el ecosistema.

SwiftUI

Mucho he despotricado contra ese engendro llamado “Storyboards”. Sin embargo, esta nueva propuesta sí que me parece sumamente interesante. Por varias razones:

  • No es un cutre-xml como los xibs y los Storyboards, sino que es un DSL en el propio lenguaje.
  • Es declarativo.

La mala noticia, es que no se trata de una innovación, sino que una vez más vemos a Apple corriendo detrás de la competencia. Eso mismo ya lo creó primero Google con Flutter. 

Como todo lenguaje declarativo, SwiftUI dará un poco de trabajo para acostumbrarse a él, ya que suelen ser algo anti-intuitivos. Todo aquél que haya trabajado con Prolog o con SQL, sabe a qué me refiero.

Sin embargo, es una excelente solución y animaría a todo desarrollador a familiarizarse con él, y de hecho ya lo enseñamos en el Bootcamp Mobile de KeepCoding.

Swift y Camilla Parker-Bowles

Desde un principio he sido un detractor furibundo de Swift. Por varias razones, una de ellas es que es la “segunda esposa” de Apple, y a mi la que me gustaba y sigue gustando, era la primera, Objective-C. Es decir, lo siento Carlos, pero a mi me gustaba Diana. Eso sí,  no pasa nada, acepto los hechos.

La otra razón por la cual no tragaba con esta segunda esposa, es que salió al mercado muchísimo antes de que estuviese lista para el consumo humano. Su uso llegó a ser una verdadera pesadilla. 

Hoy no. Las cosas como son, hoy es un lenguaje estable y útil. Algunas de las nuevas features que se le han añadido, incluso logran superar mi antipatía hacía esta “advenediza”.

Veamos algunos ejemplos.

Multiple Trailing Closures

Esta opción es súmamente útil a la hora de crear DSLs y éstos a su vez son una parte fundamental de una de las mejores formas de crear software del momento: el Domain Driven Design. Esto te  permite crear “mini-lenguajes” para tareas específicas, como por ejemplo el propio SwiftUI.

KeePaths como funciones

El poder tratar el acceso y mutación de propiedades de un objeto, como una función de primer nivel, es una herramienta de gran utilidad, especialmente al definir el modelo de tu aplicación. Es increíble la cantidad de código redundante que esto evita, y por lo tanto la cantidad de bugs que te ahorra. Es de hecho lo que más echo de menos en Dart y Flutter. 

Pattern Matching

El pattern matching es una de las características más interesantes de ciertos lenguajes como Ocaml, Erlang o F#, y que en cuanto te acostumbras, lo echas de menos en todas partes. Una vez más, elimina código redundante y hace más clara la intención de tu código, eliminando así bugs. Aprende a usarlo hoy.

Numerics

La nueva framework de cálculo numérico es una pasada y un intento de atraer a desarrolladores del entorno científico que hoy usan Python. Sin embargo, creo que llega algo tarde, ya que los que buscan mayor rendimiento ya tienen Julia desde hace rato. Ya veremos en qué queda esto.

Hoy Swift es un excelente lenguaje de sistemas. Fue creado por usuarios de C++ y pensado para ellos. De hecho, crearon un C++ mejor que C++. En cierto sentido, se parece mucho a Rust, un lenguaje creado para sustituir los actuales lenguajes de sistema, como C o C++.

Sin embargo, lo ofrecen fundamentalmente a desarrolladores de aplicaciones, no desarrolladores de sistema. Para nosotros no es la herramienta ideal, al obligarnos a preocuparnos por cosas no esenciales, pero se puede ir mejorando y lo está haciendo.

La asignatura pendiente es sin duda el uso fuera de la comunidad Apple. Son pocos los desarrolladores “externos” que se interesan por Swift. La culpa es en parte de Apple, por su desinterés absoluto por todo el mercado de la nube. La nueva  integración con AWS que permite fácilmente crear lambdas en Swift es una señal esperanzadora.

Los Tacones de Tim Cook

Desde que llegó Tim, cuando hablo de Apple, me parece que sueno a Peñafiel cuando habla de la monarquía desde que llegó Letizia. Sin embargo, al igual que Peñafiel, aunque no estoy de acuerdo con muchas de las cosas que se han hecho, sigo siendo profundamente monárquico. 

Creo que en la lucha por impedir que en el mundo se impongan grandes horrores tecnológicos como el “social score” y demás monstruosidades que ocurren en China, así como horrores menores como Cambridge Analítica, Facebook y Google; Apple, como empresa que apuesta por la privacidad de los individuos, tiene un papel vital que cumplir.

KeepCoding Team

Acerca de KeepCoding Team

Aquí nos encontramos todo el Equipo que forma KeepCoding Team que a diario colaboramos y damos soporte a todos los Geeks Inivitados para que sus maravillosos artículos salgan a la luz con el mejor formato.

Share this:

Leave a comment