Home » Extension Swift {} » Extension Swift {} 2017 vol. I
Extension Swift 2017 (I)

Extension Swift {} 2017 vol. I

Comenzamos el año 2017 con una nueva entrega de extension Swift {}, cambiando su nomenclatura y dándole una frecuencia semanal con todas las novedades de la semana de desarrollo, resumidas en un solo lugar. Nuestra lista curada de contenidos para que no tengáis que volveros locos buscando por uno y mil sitios. Comenzamos el año 2017 con el Volumen 1.

App Store 2016

La primera noticia viene de Apple y del buen estado de salud de la App Store. El pasado 1 de enero fue el día récord de tráfico en toda la historia de la App Store con unos ingresos de 240 millones de dólares, solo ese día. Además, Apple ha anunciado un aumento del 40% en los beneficios generados por el App Store en 2016 con respecto al año 2015. En palabras de Phil Schiller, vicepresidente sénior mundial de marketing de Apple:

“2016 fue el mejor año para la App Store, ya que generó 20.000 millones de dólares para los desarrollares. Y 2017 no podría haber empezado mejor: el 1 de enero ha sido el día con más tráfico para la App Store. Queremos dar las gracias a todos los desarrolladores por las apps tan innovadoras que han creado. Todas ellas, junto a nuestro productos, han permitido mejorar la vida de mucha gente.”

3.000 millones de dólares solo en diciembre y más de 40 millones de descargas de Super Mario Run en solo 4 días desde su lanzamiento. Apps como Pokémon Go, el juego Lumino City, la app de fitness Sweat with Kayla o la app musical Djay Pro (entre otras) han colaborado al buen estado de salud del App Store. Unido a servicios como Netflix, HBO Now, Line o Tinder, que ofrecen modelos de negocio por suscripción muy asentados.

En unas semanas haremos un especial en nuestro podcast analizando las apps y juegos más descargados y que más beneficio han generado en las tiendas online, no solo en las de Apple.

Por cierto, hablando de Super Mario Run, si sois usuarios de Android ya podéis pre-registraros en Google Play Store para que os avise cuando esté disponible, a través de este enlace. Por ahora no se sabe fecha oficial. Pero va a ser muy interesante ver cómo funciona en Android dado su sistema anti-piratería online, que podría sentar las bases para otros títulos.

El futuro de Swift

El pasado 5 de diciembre, Chris Lattner, principal responsable del proyecto de Swift, dio una conferencia en IBM bastante interesante donde presentó el lenguaje, habló de sus enormes ventajas y planteó interesantes situaciones sobre el futuro del lenguaje.

Una de las más interesantes, que nos ha parecido buena comentar, es la inclusión de un nuevo sistema de gestión de memoria muy sencillo que permitiría evitar los aumentos del conteo de referencias a usar objetos en parámetros de funciones o métodos. Actualmente, cuando nosotros enviamos cualquier dato como parámetro, el comportamiento por defecto del lenguaje es realizar una copia del mismo, con lo que se aumenta el conteo por referencia del elemento si este es un objeto (una clase instanciada). Pero Chris Lattner plantea un modificador del nombre del parámetro llamado borrowed (traducido como “prestado”). Este parámetro “prestado” haría que el compilador evalúe la procedencia del dato que le llega en el mismo, y en caso de ser un dato por referencia NO aumentaría el conteo por referencia y sería tratado como un dato opcional para preservar la seguridad del código.

No es una función implementada, solo una proposición. Pero sin duda una muy interesante que eliminaría de un plumazo múltiples problemas de retención y fallos del motor de ARC.

Otra cosa de la que habló es la previsible línea de tiempo de Swift 5 (sí, sí, habéis leído bien, Swift 5). Su objetivo principal sería un nuevo modelo de consistencia de memoria, paralelismo de datos… E insistimos, el futuro de Swift es la compatibilidad de código por encima de todo. Las mejoras siempre serán añadidos al lenguaje y mejoras en su núcleo para mejorar la eficiencia del mismo y su velocidad. Pero la especificación del lenguaje (su sintáxis) está finalizada en un porcentaje superior al 90% y con Swift 4 quedará al 100%. Apple quiere evitar a toda costa los problemas que tienen otros lenguajes como Java, que en sus iteraciones eliminan o cambian partes importantes de sus especificaciones o métodos de fundación y obligan a continuas adaptaciones de código.

Podéis ver las diapositivas que Chris Lattner mostró en su ponencia, pulsando en este enlace.

Tutoriales

  • ¿Quieres construir un framework Universal para iOS, que te permita usar lo que hagas tanto en iPhone como iPad? En el Medium de SwiftIndia, el desarrollador Saravana Kumar nos trae un tutorial donde con ayuda de unos simples pasos y algunos scripts podemos crear con Xcode el deseado framework Universal. Puedes leer el tutorial en este enlace.
  • En el Medium de Swift Programming (el enlace aquí) el desarrollador Andyy Hope (organizador de la Conferencia de Swift y Desarrollo en Apple en Melbourne, PlaygroundsCon, nos comparte el código de una interesante clase llamada Animator que nos permite trabajar de una forma más cómoda con las animaciones de las UIView solventando en parte el tener que trabajar con diferentes closures. Una idea interesante que podéis encontrar en su artículo pulsando aquí.
  • Pequeños trucos en pequeños tiempos. Esa es la filosofía del canal de Youtube objc.io que está creando mini-tutoriales que rondan el minuto y que dan consejos y buenas prácticas de código en Swift. Muy interesante y recomendable para echarle un vistazo y suscribirse.
  • ¿Habéis hecho ya nuestra primer lección por prototipos? Os enseñamos el funcionamiento básico de una tabla de vista, directamente en un playground. Incluyendo interactividad con la misma como si fuera una app completa. No olvidéis leer nuestro tutorial pulsando aquí.

Enlaces de interés

  • ¿Quieres saber cómo está hecha la app de iOS o Android de la plataforma Kickstarter? Ahora puedes porque la han hecho de código abierto. Tienes la noticia pulsando aquí y el código fuente en GitHub pulsando aquí.
  • IBM sigue aportando a Swift, y su última aportación es una muy interesante librería de inyección de SQL: Swift-Kuery. El objetivo es dar una API unificada de acceso a base de datos, donde solo hemos de poner el plugin que corresponda al tipo de base de datos que elijamos y listo. Por ahora solo hay disponible la opción de trabajar con bases de datos PostgreSQL, pero poco a poco irán saliendo más que permitirán conectar y trabajar con más. Tenéis el artículo pulsando aquí y el código lo tenéis en GitHub, como es habitual, pulsando aquí.
  • Sketch es una de las apps que más diseñadores usan para generar prototipos de apps móviles, y ahora, gracias a un nuevo plugin gratuito llamado AnimaApp, podemos generar el diseño adaptativo de todos los dispositivos que queramos. Una suerte de auto-layout para todos los dispositivos directamente desde Sketch. Puedes ver la información del plugin pulsando aquí o bajarte el plugin directamente desde aquí.

AnimaApp para Sketch

  • Inteligencia Artificial de Apple. Todos sabemos que es Apple es muy restrictiva a la hora de publicar información de proyectos que están en curso, pero una buena noticia es que ha dado permiso a los ingenieros que estudian este campo a publicar sus trabajos (lo que da prestigio a nivel de investigador en cualquier campo). Por lo tanto, previa aprobación de Apple, sus investigadores en inteligencia artificial y machine learning podrán publicar sus trabajos con su acreditación del mismo. El primer paper que se ha publicado trata sobre el campo de la inteligencia en el reconocimiento de imágenes. Cómo un algoritmo puede reconocer el contenido de unos imágenes por su contexto visual. Podéis leer el artículo (en inglés) pulsando aquí.

Recursos

  • Hero, una librería de animación basada en Swift con interesantes resultados y que es de código abierto. Podéis visitar su repositorio oficial pulsando aquí. Podéis ver sus espectaculares resultados bajo estas líneas.

  • ¿Usas SpriteKit? No olvides bajarte la última versión de la librería SKTUtils de la web de Ray Wenderlich. Actualizadas a la última versión por Marin Todorov. El enlace lo tenéis aquí.
  • El desarrollo de Mac es algo a lo que hacemos menos caso la mayoría de medios especializados (aunque este año la cosa cambiará). Mientras, en la web de Ray Wenderlich hay un interesante artículo sobre cómo crear una vista de colección en macOS usando NSCollectionView. Os recomiendo que le echéis un vistazo pulsando aquí.

Fin del volumen

Y hasta aquí hemos llegado. Por cierto, ¿aún no sabes Swift o quieres aprender a desarrollar apps y videojuegos? ¿Vives en Madrid? Haz una pequeña inversión en tu currículum y matricúlate en Apple Coding Academy. El profesor es este que os escribe. ¿A qué esperáis?

Si queréis compartir con nosotros cualquier enlace que os sea de interés, no tenéis más que contactar a través de nuestro Twitter @apple_coding o del formulario de contacto de la web pulsando aquí (el cual ya funciona, que muchos nos comentasteis que no iba. Gracias a todos los que lo hicisteis).

Nos vemos la próxima semana y Good Apple Coding.

Acerca de Julio César Fernández

Analista, consultor y periodista tecnológico, desarrollador, empresario, productor audiovisual, actor de doblaje e ingeniero de vídeo y audio.

Otras recomendaciones

extension Swift 2017 vol IV

extension Swift {} 2017 vol. IV

Nueva entrega semanal de extension Swift {}. Lo último y más destacado que ha dado de sí la semana en el mundo del desarrollo con Swift y en desarrollo en entornos Apple. Noticias, tutoriales... Instalamos Dash en iOS de forma oficial y gratuita, hablamos de Swift 3.1, Swift Playgrounds 1.2, cómo usar vistas en apps de Mac, fotorealismo en Unreal Engine... un repaso a un montón de temas interesantes en noticias, tutoriales o recursos.