Entradas

DARIAH Annual Event 2019: Humanities Data

Salvador Ros asiste a la conferencia anual de DARIAH. La presencia de los grupos españoles ha sido notoria gracias a las acción dirigida desde el proyecto Desir que tienen como objetivo impulsar la adhesion de España en Dariah.
Linhd lidera con el apoyo de los investigadores españoles esta iniciativa que es es de todos y para todos. En esta conferencia queda claro la necesidad de la formación en el uso de las tecnologías , en este sentido LINHD esta comprometido y apoya esta iniciativas como el curso de verano Creando un proyecto de Humanidades Digitales usando el modelado de datos y el procesamiento de textos que se  llevará a cabo entre los días 1 y 3 de julio de 2019 en la UNED. 

Este año, el curso DH@Madrid Summer School se propone que los estudiantes puedan abordar un proyecto de humanidades digitales, centrado en textos, desde su inicio. Se comenzará con un modelado del dominio definiendo una ontología orientada a datos enlazados (LOD) para seguir con la generación de código que resuelva o ayude a resolver las preguntas de investigación. Se hará uso de los nuevos paradigmas computacionales relacionados con técnicas que provienen del mundo de la Inteligencia Artificial en su sentido más amplio (procesamiento de textos, deep learning, etc.). Finalmente, se realizarán ejercicios para representar los resultados.

Ya está abierto el plazo para matricularte, puedes obtener más información pinchando aquí.

 

 

El curso más completo de programación Swift para 2019

Tenemos la gran alegría de mostrarte en detalle el curso más completo de programación Swift impartido en la UNED. A partir del día 16 de enero de 2019 comienza el curso “Título de Experto Profesional en Desarrollo Profesional de Aplicaciones iOS con Swift para dispositivos móviles”.

La metodología combina las técnicas más avanzadas. Los objetivos del curso son muy claros. El curso está dividido en varios módulos. En este artículo te explico en detalle el módulo de programación Swift, que para simplificar lo llamaremos curso de Swift. Además, quiero que descubras cómo aprenderás a programar con Swift.

¿Por qué es el más completo curso?

Es el curso más completo porque ha surgido desde la experiencia en la creación de apps, está lleno de actividades prácticas, tiene retos de programación basados en casos reales con sus soluciones, tendrás clases con tutorías semanales en directo mediante videoconferencias y obtendrás un título de la UNED. Tú eres el centro del curso y siempre estarás acompañado. Aprenderás y practicarás la programación Swift hasta que adquieras la fluidez que necesitas para la creación de aplicaciones.

Hay muchos cursos para aprender a programar con Swift. Los títulos están muy pensados para que capten tu atención: “Curso completo de Swift…”, “El curso avanzado de Swift…”, “….de Cero a experto con Swift….”, “… sé un profesional con Swift…”, “… el mejor curso de Swift…”, “…de cero a profesional con Swift…”, y la lista se hace interminable. El título desde luego que es importante, pero más importante son los contenidos. Aquí es donde un material académico creado para la Universidad tiene un gran valor.

Como sabes, cuando escribes las palabras “curso swift” en el buscador de Google te aparecen millones de búsquedas. Por eso la gran pregunta es: ¿Cómo saber cuál es el curso más completo y actual de Swift?

El curso más completo y actualizado de Swift

La respuesta es sencilla. Primero, fíjate en la versión del lenguaje Swift y profundiza en los contenidos del temario.

La última versión de Swift es la 4.2 que se presento en la WWDC (World Wide Developer Conference) de Apple en junio de 2018. Swift 4.2 se utiliza en la versión iOS 12. Por otro lado, a principios de 2019 se presentará la versión 5, tal y como se anunció en esta WWDC 2018.

Antes de leer el temario de los cursos de Swift, es súper importante que tengas definido para qué quieres aprender a programar Swift. ¿Lo haces por curiosidad o para dedicarte a nivel profesional?

He visto a muchos profesores autodidactas, con grandes ganas de emprender, que han creado cientos de cursos de Swift. Los aplaudo por sus esfuerzos y ganas de explicar. Así han llegado los video cursos y los video tutoriales. Su calidad es buena para ser personas que han aprendido a base de otros tutoriales. Si sólo tienes curiosidad por saber lo que es programar una aplicación es una opción a bajo coste. Son cursos para pasar el rato. Sin más pretensiones profesionales.

En cambio, si tu objetivo es profesional. Aquí tienes que ser más selectivo con el curso. Necesitas aprender de alguien que ha trabajado a nivel profesional. Preferiblemente en proyectos grandes para empresas y también en sus propias aplicaciones. Sólo se adquieren las dinámicas de trabajo profesionales cuando realmente lo haces por años. La razón está que cuando tienes una profesión obtienes resultados. Esto significa que dedicarás tiempo para hacer apps de calidad. Si eres capaz de trabajar de forma rápida y con calidad recibirás un pago en dinero. Esta recompensa económica la obtendrás mediante un sueldo si trabajas en una empresa o mediante una factura si has creado tu propia empresa. Por lo tanto, me pongo en tu lugar, y he creado este curso de Swift en la UNED para que puedas dedicarte a desarrollar aplicaciones iOS de forma profesional.

Ahora es cuando surge la pregunta: ¿qué tiene este curso de diferente con respecto a otros cursos de Swift?

El contenido del módulo de programación Swift.

Como te he dicho al principio, aquí te explico el temario del primer módulo de programación Swift. En él dominarás en profundidad el código Swift para crear una aplicación. Vamos a ir viendo uno a uno los 36 temas que aprenderás en el curso de Swift.

Introducción a Swift

Swift es el lenguaje de programación presentado por Apple en el año 2014 para el desarrollo de aplicaciones iOS. Anteriormente, únicamente se utilizaba el lenguaje de programación Objective-C desde el año 2007, cuando Steve Jobs presentó el primer iPhone. Este anuncio revolucionó la programación de aplicaciones en todos los dispositivos Apple.

Craig Federighi, Vicepresidente Senior de Ingeniería de Software de Apple, presentó Swift el día 2 de junio de 2014 ante la comunidad internacional de desarrolladores en la WWDC. Fue una gran sorpresa para todos nosotros cuando lo anunció.

En unos pocos años Swift ha crecido y se ha posicionado como un lenguaje de programación muy potente para el desarrollo de aplicaciones. Posee una sintaxis ligera que facilita muchísimo la escritura de código. Está pensado para optimizar al máximo los recursos limitados que poseen los dispositivos móviles.

Instalación y uso de Xcode.

Xcode es el IDE (Integrated Development Environment) o el entorno creado por Apple para hacer una aplicación. Está disponible de forma gratuita en el App Store.

Xcode crea un proyecto donde se integra el código de programación Swift, las escenas con los elementos visuales que aparecerán en las pantallas de la aplicación, audios, vídeos, fuentes de texto personalizadas y demás recursos necesarios para la creación de la aplicación. Además, integra la utilización de tests unitarios y de usabilidad para verificar la correcta programación de la app. Y muchas otras herramientas que son muy útiles para crear aplicaciones atractivas y con un alto rendimiento en los dispositivos móviles.

Playgrounds básicos

Los playgrounds permiten escribir código Swift y ver su resultado de forma inmediata. Un playground es el patio de recreo donde uno puede hacer todas las pruebas que quiera, aprender cosas nuevas, experimentar y preparar el código que posteriormente se añadirá al proyecto.

Recuerdo que antes de 2014 todas estas pruebas se tenían que hacer creando proyectos de “prueba”. Una vez que estaba todo comprobado, se copiada lo que se había experimentado al proyecto definitivo. Se perdía tiempo creando proyectos y luego ejecutándolos en los simuladores para estar seguro de su funcionamiento. Afortunadamente desde 2014 es posible crear playgrounds para descubrir todo el potencial de Swift para mejorar la eficiencia de nuestro código y de las aplicaciones. Se pueden crear vistas vivas (live view) que simulan la pantalla de una aplicación, se pueden añadir recursos y frameworks, se pueden hacer muchas cosas con ellos.

Constantes, variables y expresiones

Las constantes (let) permiten crear tipos de valores que siempre tendrán el mismo valor, mientras que las variables (var) crean tipos de valores que pueden ser cambiados posteriormente.

Coloquialmente dividimos lo que escribimos en textos como palabras o números. Sabemos que en matemáticas se utilizan números enteros y decimales. También conocemos que hay números que tienen pocos decimales y otros muchos decimales. Esta longitud de decimales consume recursos de memoria. Por lo tanto, Swift para optimizar al máximo el almacenamiento de los dispositivos divide los tipos de valores.

Las expresiones combinan valores y operadores que ofrecen un resultado. Swift permite realizar operaciones aritméticas. Los operadores de comparación permiten saber si es cierto o falso la comparación entre valores.

Manejo de errores básicos

¿A quién no le ha pasado que mientras usaba una aplicación de golpe ha desaparecido? En otras ocasiones, se ha quedado una ruedecita girando y girando, y nosotros esperando a ver si paraba y podíamos seguir utilizando la aplicación. O también, que pulsábamos un botón y no pasaba nada. Los errores de ejecución crean comportamientos inesperados en la aplicación con una mayor o menor gravedad. De ahí que tenemos que un desarrollador/a o ingeniero/a tiene que ser previsor, como se suele decir ir un paso por delante. Siempre hay que prever todos los errores o fallos que se pueden producir en tiempo de ejecución. Estos fallos se pueden producir por varios motivos, unos internos y otros externos.

Los fallos internos tienen que ver a nivel de código, por ejemplo, en la recepción o envío de datos a servidores externos, operaciones entre valores, acceso a bases de datos, conexión a dispositivos externos, etc.

Los fallos externos se producen por el comportamiento del usuario con la aplicación, un error al recibir una llamada telefónica, saturación de la memoria del iPhone por uso compartido con otras apps y otros eventos del sistema operativo.

Es muy importante que controles este tipo de errores mediante el código que escribas. Esa es tu responsabilidad. Existen dos formas de programar. Una es escribiendo y escribiendo para crear la aplicación lo más rápida posible, sin prestar mucha atención al manejo de errores. Otra es analizando qué código se va a escribir y reflexionando en los eventos inesperados que pueden surgir de forma externa e interna. A priori, es una forma más lenta, pero con una mayor calidad y satisfacción del usuario. Eso supondrá en el futuro mejores recomendaciones en el App Store, punto clave para el posicionamiento y venta de la aplicación. La primera opción de creación rápida sólo es apropiada si se trata de un prototipo o una primera versión rápida de la app.

 

Propiedades almacenadas y computadas

En este tema se va a profundizar en las propiedades. Se profundizará en su creación o inicialización, así como en su uso. Además, se utilizarán términos que deberías integrarlos en tu vocabulario como programador o programadora Swift.

 

En español:

  1. Propiedad almacenada.
  2. Propiedad computada.
  3. Propiedad almacenada perezosa.
  4. Propiedades computadas de solo lectura.
  5. Observadores de propiedad.
  6. Propiedades globales y locales.

In English:

  1. Stored property.
  2. Computed property.
  3. Lazy stored property.
  4. Read-only computed property.
  5. Property observers.
  6. Global and local properties.

 

Strings

Como aprendiste en los primeros capítulos del curso, has aprendido muchas cosas sobre las cadenas de texto o strings, en este tema aprenderás unas poquitas más que serán muy útil para cuando trabajases con strings:

 

  1. Contar caracteres.
  2. Índices.
  3. Añadir y eliminar texto.
  4. Creación de substrings.
  5. Prefijos y sufijos.

 

Control de flujo básicos

El flujo de la programación se controla principalmente con bucles y condicionales.

En este capítulo se verán de una forma básica tantos los bucles como los condicionales, posteriormente cuando se domine el uso de las colecciones (arrays, diccionarios y conjuntos) se volverán a estudiar de una forma más profunda en ejemplos y retos.

Búsquedas de patrones

Los valores en Swift se pueden presentar de muchas formas. Para ello, se han creado una serie de patrones para representarlos de una forma acertada y rápida.

En este capítulo aprenderás cómo identificarlos y usarlos. Los patrones que verás son:

  1. Comodín.
  2. Identificador.
  3. Valor enlazado.
  4. Tupla.
  5. Casos de enumeración.
  6. Opcional.
  7. Tipo conversión.

 

Tuplas

Los valores se pueden asemejar de una forma sencilla a nombres o números mediante las tuplas. La asignación de nombres a los valores es opcional, de tal forma, que mediante un número se puede obtener su valor. Otra ventaja de las tuplas es que permiten crear valores compuestos.

Una vez que se le asigna un nombre a un valor de la tupla se puede operar con ella de igual forma que si fuese una constante o una variable.

Colecciones: arrays, diccionarios y conjuntos.

Durante la ejecución de una aplicación son muchos los datos que se reciben. Estos se procesan y se muestran en la pantalla de una forma atractiva para el usuario. Las colecciones permiten organizar los datos para que puedan ser correctamente procesados por el código de nuestro proyecto. Swift nos ofrece tres formas de poder agrupar los datos en arreglos, diccionarios y conjuntos. Siendo su equivalencia en inglés: arrays, dictionaries and sets. Los datos se denominan valores (values).

Un array organiza los valores mediante un índice numérico que va desde 0 hasta n. Un dictionary asigna una clave (key) a cada valor. Un set guarda los valores sin ningún tipo de orden, de forma totalmente desorganizada.

Controles de flujo avanzados

En este tema te adentrarás en los condicionales y bucles avanzados mediante la programación funcional.

La programación funcional (PF) permite el uso de datos que procesa como constantes (let) en lugar de variables (var).

Al convertir cada elemento en constante, la programación funcional fomenta la inmutabilidad y reduce los efectos secundarios del cambio indeseado de las variables, que pueden estar produciéndose en otras partes del código.

La programación funcional es muy útil para el tratamiento o transformación de colecciones, es decir, arrays, diccionarios y conjuntos.

Operadores personalizados

Es posible crear operadores con un comportamiento personalizado para que hagan las operaciones adaptadas a tus necesidades. El objetivo es reducir tu código y aumentar su legibilidad.

Funciones

Las funciones (func) permiten recibir parámetros y devolver resultados. En resumen, el objetivo de las funciones es hacer algo en tiempo de ejecución cuando se las llama. La regla para crear una función es: si tienes que repetir el mismo código para hacer lo mismo en el proyecto más de una vez, entonces, crea una función para sólo escribirlo una sola vez.

Clases

Las clases (class) permiten añadir bloques de código para la creación de una aplicación. En las clases se añaden funcionalidades a la aplicación mediante el uso de propiedades (variables y constantes) y los métodos (funciones).

Estructuras

Las estructuras (struct) tienen un aspecto muy similar a las clases. Tienen propiedades, métodos e inicializadores.

Su gran diferencia está en que sus instancias son valores tipo. Esto significa que cada instancia tiene una única dirección de memoria. Si asignas una instancia a varias propiedades cada una serán independientes de las otras. Por lo tanto, cualquier cambio en una no afectará a las demás. Por esa razón, es más seguro utilizar estructuras que clases. De esta forma, las instancias de las estructuras que no se utilizan, se liberan de la memoria de forma rápida, pues no tiene que quedar almacenadas por si hay alguna otra instancia de clase que apunte a ella.

Suscripciones a colecciones

Los subíndices (subscript) se han usado para darle un nuevo significado a las letras o números. Por ejemplo, si juntamos las letras HO, no nos dice mucho. Pero si a la H se le pone el subíndice 2, ya nos viene a la memoria el elemento químico del agua: H2O. Por lo tanto, los subíndices nos dan nuevos significados de las mismas grafías.

Su representación es muy parecida a la que se utiliza para acceder a un valor en un array. Permiten obtener y asignar nuevos valores con los subíndices. Si bien es cierto, que a veces, la línea entre una función y un subíndice (subscript) puede ser confusa. En el último ejemplo del capítulo podrás ver que cómo se puede crear un email personalizado tanto con funciones como subscript. Por eso, mi recomendación es que utilices funciones, excepto cuando se trate de un array y vas a trabajar con los valores en base a su índice.

Enumeraciones

Las enumeraciones (enum) permiten tener varios casos para elegir. Los casos se pueden escribir línea a línea o en la misma línea separados por comas.

Hasta ahora para diferenciar una cosa de otra teníamos dos opciones de los booleanos con true y false. Cuando hay más de dos opciones, usábamos un string para tener más opciones. Sin embargo, este proceso es tedioso, por cuanto tienes que recordar el texto que se escribió en el string. Además, una cadena de texto siempre consume más recursos que un booleano o que un valor numérico. Y como ya sabes, a más recursos, más CPU, más batería y a nadie le gusta que se le gaste rápidamente su batería usando una aplicación.

Un ejemplo donde lo entenderás muy bien es al crear opciones de errores. Te imaginas que quieres escuchar un sonido en tu aplicación, pueden darse varios casos de error:

  1. Fichero no encontrado.
  2. Formato no válido.
  3. Reproductor no disponible
  4. Reproduciendo otro audio.
  5. Volumen en modo silencio.

 

Protocolos

Los protocolos son los planos sobre los que se definirán propiedades y métodos para dar funcionalidades. La palabra clave para utilizarlos es protocol. Se puede poner el nombre que se represente mejor la funcionalidad del protocolo, aunque se aconseja usar el sufijo able, o en su defecto, escribir como sufijo -Protocolo o -Protocol, si lo escribes en inglés.

En las propiedades se especificará si sólo será para obtener información de su valor o para asignarle un valor a la propiedad. Esto se realizará con las palabras get y set, respectivamente.

Los métodos sólo se definirán, lo que significa que no llevarán llaves.

Se utiliza la palabra conformar, cuando una clase, estructura o enumeración adopta las funcionalidades de un protocolo.

Casting de tipos

El casting identifica un objeto que ha sido creado mediante el vertido o inyección de un material en un molde. Cuando un molde se abre, se observa la geometría interior de su mitad superior y la otra mitad inferior. Entonces, viéndolas te puedes imaginar que pieza saldrá cuando sea rellenado de material.

De forma muy similar, Swift tiene unas palabras clave para identificar qué tipo de instancia es con la que se va a trabajar.

En ocasiones se puede desconocer de qué tipo son las instancias. Mediante el downcasting se asigna su valor a una nueva propiedad forzando a que sean de un tipo específico.

Casos Prácticos con Clases, Estructuras, Enumeraciones y Protocolos

En este capítulo se combinan las clases, estructuras, enumeraciones y protocolos con un ejemplo avanzado.

Playgrounds avanzados

Los playgrounds permiten simular muchas cosas que se pueden desarrollar en un proyecto con Xcode. Mediante la vista viva (Live View) se pueden ver los objetos visuales como si se tratara de la pantalla del simulador o un dispositivo real. Además, en la carpeta Sources se pueden añadir otros archivos Swift que se pueden utilizar con el código del playground, y en la carpeta Resources se pueden añadir otros archivos de recursos para el playground, como pueden ser imágenes.

Programación Orientada a Objetos básica

El paradigma de la Programación Orientada a Objetos (POO) permite crear modelos de entidades. Dichos modelos dan sentido a la programación con respecto a los objetos que los humanos estamos acostumbrados en el día a día.

Las clases se han utilizado durante años para crear instancias que sean objetos útiles para la POO. Utilizando métodos y propiedades se pueden crear objetos que tendrán comportamientos, estados e identidad.

Programación Orientada a Protocolos básica

El paradigma de la Programación Orienta a Protocolos (POP) permite trabajar con instancias que optimizan al máximo los recursos de la batería, consumo de la CPU y la memoria. La POP crea instancias que son valores tipo mediante la combinación de protocol, struct y enum.

Extensiones

Las extensiones permiten darle nuevas funcionalidades a cualquier estructura, clase, protocolo y enumeración. Esto permite crear un altísimo nivel de personalización, especialmente cuando han sido creadas en un framework. Por ejemplo, quieres que un valor Int (entero) haga un tipo de operación especial, sin embargo, no está definido este comportamiento estándar en la librería de Swift. La solución es crear una extensión Int. Así de sencillo. Además, puedes crear extensiones de librerías de tu código o de terceros en tu proyecto.

Programación Orientada a Protocolos avanzada

En este capítulo se creará un caso avanzado de utilización de POP. El objetivo es que domines la POP con fluidez, y comprendas su sencillez de uso.

Clausuras

Las clausuras (closures) son bloques de código independientes que se pueden pasar y utilizar a través del proyecto de la aplicación. Son muy útiles cuando se trabaja con frameworks o al obtener los datos recibidos desde un servidor externo. Simplifican mucho la ejecución y la escritura del código. Las clausuras capturan valores mediante valores constantes que son procesados y posteriormente pueden ser devueltos en el formato deseado.

Manejo de errores avanzados

Manejar los errores que se producen en tiempo de ejecución es muy importante. En todo momento el proyecto tiene que procesarlos. Su principal objetivo es evitar un crash o cierre inesperado de la aplicación. Por otro lado, cuando se produce un comportamiento fuera del caso de éxito se ha de informar al resto del proyecto para que muestre, analice y reacciones de una forma apropiada para que la experiencia de usuario sea exquisita. Para ello, existen diferentes formas de capturar y notificar estos errores.

Genéricos

El coste hora de programador o programadora de Swift es alto. Por lo tanto, es buena práctica reutilizar lo máximo que se pueda el código escrito en un proyecto, o incluso en otros mediante la creación de frameworks. Los genéricos habilitan en Swift la capacidad de operar con valores independiente del tipo que sean. Un ejemplo sencillo para comprenderlo sería crear una función genérica para sumar dos valores, independientemente de que tipo sean, o sea, si son enteros o decimales. Aprender a usar los genéricos requiere un pequeño nivel de abstracción, pues ya no manejamos tipos de valores específicos, sino la representación genérica.

Control de acceso

En todo momento se ha de controlar el acceso a los ficheros, propiedades y métodos del proyecto. Cuando se trabaja en grandes equipos de desarrolladores es muy importante definir lo que es accesible por otros programadores. Sólo se ha de mostrar el código Swift que realmente sea necesario. Esto creará dinámicas que generen código Swift de alto rendimiento.

Automatic Reference Counting

Permite el rastreo y controlar el uso de la memoria. Es más conocido como ARC. Cada vez que se crea una instancia se añade un valor al ARC. De esta forma, se genera un historial de instancias creadas durante la ejecución de la memoria. En el momento que no se utilizan, de forma automática se van liberando de la memoria. Esto supone menos consumo de recursos de los dispositivos móviles. El ARC funciona muy bien. Solamente hay que tener cuidado con qué tipo de referencias se crea entre instancias, si son fuertes o débiles. Para que las instancias que han terminado su vida útil en la aplicación sean liberadas lo más rápido posible.

Concurrencia y Programación paralela

Actualmente los iPhone e iPad tienes unos procesadores increíblemente potentes con respecto a los que tenían hace unos años. Pero, siempre tienen sus limitaciones por el número de núcleos del procesador. Para aumentar su rendimiento se crean hilos de procesamiento. Existen dos tipos de hilos: el hilo principal e hilos secundarios o en segundo plano. Por ejemplo, un iPhone tiene que ejecutar una aplicación. Al mismo tiempo, tiene operaciones del sistema operativo que atender y otras aplicaciones en segundo plano.  Cuando se programa hay que definir muy bien en la arquitectura de la aplicación qué se ejecutará en primer plano. Este hilo principal es el que controla los procesos táctiles del usuario y todo lo que es visible en pantalla. Entonces, si todo va sobre el hilo principal la aplicación se volverá lenta. Esto se debe evitar por todos los medios. Lo más importante siempre es crear aplicaciones que den la mayor experiencia de usuario. Una aplicación debe tener con un control máximo sobre los procesos que se ejecutan sobre el hilo principal.

Uso seguro de la memoria

El acceso a los valores almacenados en memoria permite una gran rapidez en las operaciones de la aplicación. En ocasiones pueden surgir conflictos si no se ha implementado correctamente el código Swift. Aprender a evitarlas es crucial para el programador profesional.

El lenguaje Markdown

La documentación del código escrito facilita mucho el mantenimiento y el trabajo en equipo. La sintaxis del lenguaje Markdown es ideal para los proyectos creados en Xcode.

Networking y parseo de JSON

La transmisión de información entre los dispositivos móviles y servidores externos ha permitido crear aplicaciones muy útiles. ¿A quién no le gusta mirar en su iPhone si hará buen tiempo el fin de semana que te vas de viaje? Toda esta información es recibida desde un servidor. Esta transmisión de datos se ha de hacer bajo un formato definido. El más usado es el JSON. En este capítulo se explican los recursos nativos que tiene Swift para hacerlo de una forma muy sencilla y eficaz.

Código Swifty

La comunidad mundial de desarrolladores Swift está creciendo increíblemente cada año. Por lo tanto, cuando programes debes recordar que formas parte de esta comunidad de millones de programadores. Por esa razón, debes seguir un formato y guía de estilo. Tu código tiene que ser legible para cualquier miembro de tu presente o futuro equipo de desarrolladores.

Snippets

Xcode permite crear fragmentos de código para ser utilizados posteriormente en cualquier proyecto. Los snippets tienen la opción de añadir áreas de autocompletado. Crear snippets te darán una mayor rapidez de escritura de código Swift.

Titulación Universitaria

Como has podido leer, este curso Swift es extremadamente completo. Este artículo sólo es un pequeño resumen de todo el contenido creado para el curso. Como te imaginarás, las explicaciones de todos estos capítulos es muy detallada en el curso de Swift del “Título de Experto Profesional en Desarrollo Profesional de Aplicaciones iOS con Swift para dispositivos móviles”. He creado muchos ejemplos y retos que te darán conocimientos avanzados para utilizar Swift en la creación de apps. Además, recuerda que semana a semana tendrás tutorías personalizadas conmigo, junto con el resto de estudiantes, o mejor dicho, con el resto de tus compañeros.

Otra gran ventaja de este curso con respecto a otros cursos Swift es la titulación que obtendrás. La UNED te dará el título universitario que acreditará que has superado todos los tests y el trabajo fin de curso.

Aprovecha esta gran oportunidad para inscribirte en el curso, antes de que finalice la matrícula el 15 de enero de 2019.

Autor: Pedro Hernández Ruiz

Apple Entrepreneur Camp: el compromiso con las mujeres emprendedoras

Apple lanza el Apple Entrepreneur Camp, es un programa de desarrollo de aplicaciones para apoyar a mujeres empresarias y desarrolladoras de aplicaciones. Apple quiere reforzar su compromiso con las mujeres que lideran la innovación tecnológica. Si tienes claro que tus objetivos de crecimiento están alineados con las tecnologías Apple y eres una apasionada del emprendimiento, presta atención a lo que ofrecen y requiere Apple para que seas seleccionada. Serán 4 convocatorias, donde seleccionarán 20 empresas en cada una, excepto la primera que será de 10, pues se trata de una prueba piloto.

Beneficios:
1. Dos semanas en un laboratorio de Apple en Cupertino, California. Allí tendrás una guía personalizada de los ingenieros de Apple para el código, diseño, tecnología y App Store que necesitarás para el desarrollo de la aplicación.

2. Pueden asistir tres personas:
a. Fundadora, cofundadora o CEO de la empresa.
b. Desarrolladora.
c. Desarrolladora o diseñadora (este último también puede ser hombre).

3. Coaching de un experto de Apple durante un año para guiarte en el desarrollo de
la app.

4. Un año gratis en la membresía del programa de desarrolladores de Apple. Donde
podrás disfrutar de todos los beneficios de ser miembro del Apple Developer
Program, así como publicar aplicaciones en el App Store.

5. Dos entradas para la WWDC (World Wide Developer Conference). Serían para la
fundadora o CEO de la empresa y la desarrolladora de apps.

6. Acceso exclusivo al foro de ex alumnos del Apple Entrepreneur Camp. En esta
comunidad podrás compartir ideas, hacer preguntas y ofrecer mentorías.
Requisitos
1. La empresa tiene que tener:
a. Una mujer fundadora, cofundadora o CEO.
b. Una mujer desarrolladora que programe en Swift u Objective-C.
c. Una app o prototipo que se pueda mostrar en una presentación.
2. Dominio fluido del inglés.
3. Tener más de 18 años.
4. Un Mac portátil (te sugiero un MacBook Pro para la programación).
5. Un hueco en la agenda para estar dos semanas en las fechas que más abajo verás.
6. Resumen de la app:
a. Detalles de la organización: descripción e información de los asistentes,
como máximo tres.
b. Detalles de la app: descripción y equipo de desarrollo. Se recomienda un
enlace de descarga o demo, como máximo tres capturas de pantalla o en su
defecto wireframes.
c. Futuro y objetivos: descripción de lo que esperas conseguir al participar en
el Apple Entrepreneur Camp y cuales son tus planes de futuro para tu
organización.
d. Información Adicional: la fecha para asistir, y algún otro comentario si lo
necesitas. También tienes la posibilidad de solicitar asistencia de viaje y
alojamiento.

Calendario para los Camps:
 28 enero – 8 febrero 2019.
 1 – 12 abril 2019.
 22 julio – 2 agosto 2019.
 14 – 25 octubre 2019.

Criterios de revisión:
1. Tus respuestas escritas en el formulario de admisión.
2. Compromiso con el desarrollo de aplicaciones con las últimas tecnologías creadas
por Apple.
3. Aplicación única o que sea innovadora.

Tim Cook, CEO de Apple dijo sobre este programa: “Apple está comprometida a ayudar a más mujeres a asumir roles de liderazgo en todo el sector tecnológico y más allá”. Y una de las razones que han llevado a Apple a formar este programa de emprendiendo para mujeres son los éxitos que han tenido las startups lideradas por mujeres en Estados Unidos. Según los datos de empresas de inversión en 2017, si se comparan las cifras entre mujeres y hombres, ellas recibieron 1,9 mil millones de dólares, mientras que ellos 83,1 mil millones. Pero en cambio, las startups dirigidas por mujeres obtuvieron un retorno de la inversión de un 35% más que las empresas lideradas por hombres.

Si quieres alguna sugerencia más para rellenar el formulario de admisión puedes ir a este artículo: Recomendaciones para las preguntas del formulario de admisión del Apple Entrepreneur Camp.

El Apple Entrepreneur Camp es una apuesta segura por las grandes capacidades que tienen las mujeres emprendedoras que hay en el mundo.
Me gustaría darte dos enlaces que espero que te sean de utilidad. El primero es el formulario de admisión para el programa de emprendimiento para mujeres de Apple. El segundo es para que cuentes con el apoyo de la UNED, antes de que acabe la matrícula, y así puedas formarte con el curso Experto Profesional en el Desarrollo de Aplicaciones Móviles iOS con Swift:
1. Inscripción Apple Entrepreneur Camp.
2. Titulo de Experto Profesional Desarrollo Profesional de Aplicaciones iOS con Swift para Dispositivos Móviles.

Autor: Pedro Hernández Ruiz

Bibliografía:
Apple Entrepreneur Camp. For organizations founded and led by women.
Entrepreneur Camp. Now Accepting Applications.
Apple launches app development program to support women entrepreneurs.

¿Cómo desarrollar una aplicación iOS en Madrid?

Desarrollar aplicaciones en Madrid permite alcanzar retos extraordinarios. En esta entrevista descubre los primeros consejos para ser un gran ingeniero o ingeniera iOS.

Desarrollar una aplicación iOS en la ciudad de Madrid supone abrirse a increíbles oportunidades profesionales. Hay otras ciudades en España que también son para destacar su gran empuje en la creación de aplicaciones. Hoy hablo de Madrid porque ha sido la ciudad que acogió y apoyó a un apasionado de la vida y un gran Ingeniero iOS Senior llamado Carmelo Ruymán Quintana Santana.

Desde hace unos años hay personas que han sido una fuente de inspiración para todos nosotros por su éxito profesional. Conforme los vas conociendo mejor te das cuenta que detrás de cada caso de éxito hay procesos, metodologías, pasión y alegría por alcanzar sus sueños. Estas cualidades y sentimientos son los que Carmelo siempre me ha trasmitido desde que lo conocí hace unos años.

Compartir intereses comunes siempre nos une a todos. Por eso, quiero hablarte de lo afortunado que me siento de compartir una de nuestras mayores pasiones: la creación de iOS con Swift. Esta profesión nos ha dado la oportunidad de pasar buenos momentos compartiendo opiniones y conocimientos. Especialmente cuando nos mueve el objetivo de hacer más eficiente cada nueva aplicación.

Mi deseo es que tengas la oportunidad mediante este artículo de conocerlo en más profundidad, más allá de su perfil en LinkedIn. Saber cómo trabaja en el día a día, los proyectos tan importantes en los que ha demostrado su pericia como ingeniero iOS y comprender de qué forma organiza su desarrollo de aplicaciones. Descubrirás qué tecnologías avanzadas y de alto rendimiento usa Carmelo. Su forma de trabajar lo ha convertido en un ingeniero con gran prestigio profesional en la ciudad de Madrid. Quiero que disfrutes de todas las cosas que nos enseña mediante esta entrevista. Estoy seguro que si prestas atención a sus palabras estarás más cerca de la élite de los grandes ingenieros iOS.

¿Qué tal estás Carmelo?

Hey, aquí trabajando, probando mi aplicación de bkool, desde casa, ya ves, hay que sudar.

 

¿Qué te llevó a tomar la decisión de especializarte en el desarrollo de aplicaciones iOS?

Al finalizar la carrera desarrollé un proyecto orientado a la Biomedicina, donde por primera vez vi la Programación Orientada a Objetos. Este proyecto trataba, en medir la carga emocional de una persona a través del movimiento de sus labios. Tuvo mucho éxito, y a raíz de ahí, empecé a estudiar más en profundidad el código orientado a objetos. Hice algunos cursos Online. Terminando en un master de una academia aquí reconocida a nivel nacional. Y he seguido evolucionando y creciendo desde entonces.

Tu carrera profesional ha tenido una progresión ascendente increíble. ¿Qué factores crees que te han ayudado más para estar donde estás?

Los factores fueron varios. La necesidad de encontrar una salida viable en el momento en que me encontraba. Porque después de dos años en paro, me decía: quiero encontrar algo, pero nada referente a las telecomunicaciones. Comencé a escuchar que esto de la programación para los dispositivos móviles estaba tomando bastante importancia, así que después de un curso vino otro. Y así hasta que opté por una beca, en un master como Full Stack Developer. Y desde entonces no he parado de comprarme libros, leerme blogs, formarme año tras año en las novedades que presenta Apple. Y he ido creciendo profesionalmente. Creo que una de las claves con la que he llegado al éxito, es que siempre he querido mejorar, dar un paso más, el extra, el coger y ver cuáles son las nuevas arquitecturas. Las que están ahora a la última. Buscar siempre información de importancia. Por ejemplo, el libro que me hable de testing, test unitarios, como mejorar las arquitecturas y así poder utilizar los test. O la programación reactiva, pues hay muchísimos libros de RxSwift o de RxCocoa. Y siempre he tirado por estos, por los últimos, por los que me ayudan a hacer un código más legible, más escalable. Tirando siempre por lo último. Entonces evolucionas, creces y mejoras.

¿Recuerdas alguna anécdota, que puedas contar, cuando estuviste trabajando en las aplicaciones de Telecinco?

Una de las anécdotas que me pasó trabajando en Megamedia (Mediaset), cuando lanzaron la aplicación de Gran Hermano. Y estábamos justamente en la época del Gran Hermano Big y teníamos que rehacer el reproductor de vídeo, con el AVPlayer de forma nativa. Entonces tuve que hacer varias pruebas. Y siempre, siempre, siempre me tocaba uno o dos vídeos y tenía que ser de la casa de Gran Hermano o el directo mismo de Gran Hermano. Y al final me pegaba horas viendo el Gran Hermano sin quererlo, y me enteraba más del Gran Hermano que cualquier otra persona que veía la tele. Así qué bueno todo ese sacrificio, pues tuvo muy buen resultado y se quedó funcionando bien el reproductor.

Autor: Pedro Hernández

En el segundo artículo Carmelo profundiza en el día a día de un Ingeniero Senior iOS y explica qué cualidades valoras más en un desarrollador iOS.

¿Quieres aprender más?

TITULO DE EXPERTO UNIVERSITARIO. Innovación usando la tecnología iOS con programación Swift: Proyectos Europeos.

 

TITULO DE EXPERTO PROFESIONAL. Desarrollo Profesional de Aplicaciones iOS con Swift para Dispositivos Móviles.

 

PROGRAMACIÓN SWIFT Y SUS NUEVOS PARADIGMAS. Certificado de Enseñanza Abierta.

 

DESARROLLADOR DE ELEMENTOS iOS. Certificado de Enseñanza Abierta.

 

CREACIÓN PROFESIONAL DE APLICACIONES DESDE LA IDEA HASTA EL APP STORE. Certificado de Enseñanza Abierta.

El atractivo de Madrid para trabajar un Ingeniero Senior iOS

Madrid tiene un gran atractivo si quieres trabajar como ingeniero o desarrollador iOS, tanto si te gusta la ciudad como disfrutar de la naturaleza y la montaña.
En el penúltimo artículo de la serie “¿Cómo desarrollar una aplicación iOS en Madrid?”, Carmelo Ruymán Quintana nos detalló la formación apropiada que deberías tener para trabajar como ingeniero o ingeniera de aplicaciones iOS.

En este último artículo, nos cuenta como disfruta en Madrid cuando termina su jornada de trabajo.

¿Cosas son interesantes de ver en Madrid?
Que te voy a decir, Madrid, la verdad que es muy interesante. Yo vengo de Canarias, tengo playa, tengo sol, allí la gente es muy sociable. Y aquí en Madrid, al final haces piña con tu grupo de trabajo, y vas creando muchos grupitos. Hay muchísima gente en Madrid, diferentes culturas, la verdad que lo hace muy interesante. Luego sino te gusta la ciudad, como a mí, te vas al campo. En la sierra, tienes muchísimas actividades. Hay senderos infinitos con fauna y flora increíbles. A mí me gusta mucho hacer fotografías. En una de las salidas que hice, me encontré cincuenta buitres volando sobre mi cabeza, la verdad que es impresionante. Así que, si te gusta el deporte, las actividades al aire libre o el ciclismo, la sierra de Madrid es un punto muy interesante para descubrir. No centrarte siempre en lo que ve la gente que es la ciudad, así que si vienes a Madrid, yo te invito a visitar la sierra también.

Muchas gracias Carmelo por todo lo que has compartido. Te lo agradezco muchísimo porque todos los consejos que has dado son muy útiles para toda persona el que tiene el objetivo de crear grandes aplicaciones iOS. Además, de estar en la élite de una de las profesiones con más demanda y entre las mejores pagadas en el mundo de las nuevas tecnologías. Espero que hayas disfrutado tanto como yo de esta entrevista a Carmelo y recuerda que si sigues sus buenos consejos tu podrás ser un gran desarrollador o desarrolladora iOS con Swift.

Autor: Pedro Hernández

¿Quieres aprender más?

TITULO DE EXPERTO UNIVERSITARIO. Innovación usando la tecnología iOS con programación Swift: Proyectos Europeos.

 

TITULO DE EXPERTO PROFESIONAL. Desarrollo Profesional de Aplicaciones iOS con Swift para Dispositivos Móviles.

 

PROGRAMACIÓN SWIFT Y SUS NUEVOS PARADIGMAS. Certificado de Enseñanza Abierta.

 

DESARROLLADOR DE ELEMENTOS iOS. Certificado de Enseñanza Abierta.

 

CREACIÓN PROFESIONAL DE APLICACIONES DESDE LA IDEA HASTA EL APP STORE. Certificado de Enseñanza Abierta.

Formación apropiada para ser un gran ingeniero o desarrollador iOS

La mejor formación como desarrollador iOS la puedes obtener en libros, blogs, vídeos y cursos online, como en la UNED. Investiga y domina los nuevos paradigmas de Swift.

En el artículo tercero de la serie “¿Cómo desarrollar una aplicación iOS en Madrid?”, Carmelo Ruymán Quintana mostró sus trucos para que sus proyectos estén a la vanguardia del desarrollo de aplicaciones iOS.

A continuación, nos aconsejará qué deberías aprender si deseas estar a la vanguardia del desarrollo de apps.

¿Qué tipo de formación consideras que es la más apropiada para ser un gran ingeniero o desarrollador iOS?

Para ser ingeniero de desarrollo de aplicaciones móviles, sobre todo para la parte de iOS, es muy interesante conocer, que existen herramientas que puedes encontrar en Internet. Desde libros, vídeos, cursos, hay muchas plataformas que te ofrecen estos cursos. La UNED por ejemplo, tiene varios cursos interesantes en esta área de iOS. Hay blogs de muchas personas interesantes, en este mundo del desarrollo para iOS. Sobretodo a mí me encanta, libros más técnicos sobre Programación Orientada a Protocolos, RxSwift y TDD. Estos libros al final te ayudan a evolucionar, a estar presente sobre estás áreas que todavía no están cubiertas en muchos vídeos. A mí, básicamente, los libros son lo que más me ha ayudado a crecer, sobretodo el tema de tenerlo escrito, te ayuda más en el inglés, que es una cosa muy importante para el mundo del desarrollo en iOS, y en el desarrollo en general. Eso te ayuda a ti, a que tu código tenga esa fluidez técnica. Para que puedas básicamente, ser bastante bueno, tanto como el que ha escrito el libro. Básicamente eso, no parar de estudiar, de crecer, de ver vídeos, de tener siempre esas inquietudes. Y cosa nueva que salga, Swift 4.2, Swift 5, pues siempre investigar un poquito. Cuales son las novedades que van a salir y emplearlas. Usar un Playground, jugar con ello, ver cómo era antes, ver cómo es después. Siempre estar a la última.

Autor: Pedro Hernández

En el segundo artículo Carmelo profundiza en el día a día de un Ingeniero Senior iOS y explica qué cualidades valoras más en un desarrollador iOS.

¿Quieres aprender más?

TITULO DE EXPERTO UNIVERSITARIO. Innovación usando la tecnología iOS con programación Swift: Proyectos Europeos.

 

TITULO DE EXPERTO PROFESIONAL. Desarrollo Profesional de Aplicaciones iOS con Swift para Dispositivos Móviles.

 

PROGRAMACIÓN SWIFT Y SUS NUEVOS PARADIGMAS. Certificado de Enseñanza Abierta.

 

DESARROLLADOR DE ELEMENTOS iOS. Certificado de Enseñanza Abierta.

 

CREACIÓN PROFESIONAL DE APLICACIONES DESDE LA IDEA HASTA EL APP STORE. Certificado de Enseñanza Abierta.

Proyectos iOS para tener una importancia internacional

Un proyecto iOS utiliza tecnologías y herramientas. Son una ventaja crearlo con Swift, RxSwift, RxCocoa, Carthage, Cocoapods, framework propios y tests.

 

En el artículo segundo de la serie “¿Cómo desarrollar una aplicación iOS en Madrid?”, Carmelo Ruymán Quintana nos describió las cualidades que hacen que un desarrollador iOS pueda crear un proyecto de alta calidad. Además, de cómo se organiza el día a día.

 

Por esa razón, en este artículo quiero que escuches la experiencia que nos transmite con la respuesta a la siguiente pregunta:

 

Al hacer proyectos que van a tener una importancia internacional, ¿qué tipo de tecnologías o herramientas utilizas?

Pues personalmente soy muy propenso a crear librerías propias, a desacoplar bastantes partes del código, como la librería de comunicaciones, la librería de interfaz o la librería que controla los dispositivos por Bluetooth. Me voy creando mis propias librerías. Para ello, empleo Carthage, para hacer la inyección de estas librerías en mis proyectos. Luego también mi gran aliado es Cocoapods, porque muchas de las librerías de terceros con Cocoapods es más fácil integrarlas en tus proyectos. Y alguna cosilla más que pueda mencionar, pues obviamente es Swift. Ha sido un antes y un después el emplear Swift como lenguaje de desarrollo principal. Y es que la versatilidad que te da, la posibilidad de uso, y el novedoso sistema de protocolos que tiene este lenguaje, ayuda muchísimo. Tu idea de código, tu idea a desarrollar, esculpirla en código, es mucho más fácil con Swift, que lo que era antes con Objetive-C. Esto quieras o no es una gran ventaja. Luego cosas que uso, como he mencionado antes RxSwift, ayuda muchísimo a simplificar tu código, hacerlo bastante limpio e inteligente. La vista en sí, el ViewController, con los bindings haces de forma muy elegante, sencillo y simple el código. Poquitas cosas más que pueda añadir. Básicamente eso, uso muchas librerías propias, las cuales puedo luego ir creciendo, aumentando y metiéndoles en features nuevas. Y que no contengan elementos de otras librerías como Alamofire o AFNetworking para el tema de las comunicaciones con la API. Al final esas librerías pesan más y añaden más cosas de las que realmente necesito. Mi obsesión es esa: crear mis propias librerías con mis funcionalidades sencillas a las cuales les aplico los tests. Así no tengo preocupaciones cuando haya una actualización, que me perjudique en mi código.

 

En el siguiente artículo nos recomienda la formación en la que deberías formarte si quieres estar entre la élite de los ingenieros o desarrolladores iOS.

Autor: Pedro Hernández

¿Quieres aprender más?

TITULO DE EXPERTO UNIVERSITARIO. Innovación usando la tecnología iOS con programación Swift: Proyectos Europeos.

 

TITULO DE EXPERTO PROFESIONAL. Desarrollo Profesional de Aplicaciones iOS con Swift para Dispositivos Móviles.

 

PROGRAMACIÓN SWIFT Y SUS NUEVOS PARADIGMAS. Certificado de Enseñanza Abierta.

 

DESARROLLADOR DE ELEMENTOS iOS. Certificado de Enseñanza Abierta.

 

CREACIÓN PROFESIONAL DE APLICACIONES DESDE LA IDEA HASTA EL APP STORE. Certificado de Enseñanza Abierta.

Proyectos iOS para tener una importancia internacional

Un proyecto iOS utiliza tecnologías y herramientas. Son una ventaja crearlo con Swift, RxSwift, RxCocoa, Carthage, Cocoapods, framework propios y tests.

 

En el artículo segundo de la serie “¿Cómo desarrollar una aplicación iOS en Madrid?”, Carmelo Ruymán Quintana nos describió las cualidades que hacen que un desarrollador iOS pueda crear un proyecto de alta calidad. Además, de cómo se organiza el día a día.

 

Por esa razón, en este artículo quiero que escuches la experiencia que nos transmite con la respuesta a la siguiente pregunta:

 

Al hacer proyectos que van a tener una importancia internacional, ¿qué tipo de tecnologías o herramientas utilizas?

Pues personalmente soy muy propenso a crear librerías propias, a desacoplar bastantes partes del código, como la librería de comunicaciones, la librería de interfaz o la librería que controla los dispositivos por Bluetooth. Me voy creando mis propias librerías. Para ello, empleo Carthage, para hacer la inyección de estas librerías en mis proyectos. Luego también mi gran aliado es Cocoapods, porque muchas de las librerías de terceros con Cocoapods es más fácil integrarlas en tus proyectos. Y alguna cosilla más que pueda mencionar, pues obviamente es Swift. Ha sido un antes y un después el emplear Swift como lenguaje de desarrollo principal. Y es que la versatilidad que te da, la posibilidad de uso, y el novedoso sistema de protocolos que tiene este lenguaje, ayuda muchísimo. Tu idea de código, tu idea a desarrollar, esculpirla en código, es mucho más fácil con Swift, que lo que era antes con Objetive-C. Esto quieras o no es una gran ventaja. Luego cosas que uso, como he mencionado antes RxSwift, ayuda muchísimo a simplificar tu código, hacerlo bastante limpio e inteligente. La vista en sí, el ViewController, con los bindings haces de forma muy elegante, sencillo y simple el código. Poquitas cosas más que pueda añadir. Básicamente eso, uso muchas librerías propias, las cuales puedo luego ir creciendo, aumentando y metiéndoles en features nuevas. Y que no contengan elementos de otras librerías como Alamofire o AFNetworking para el tema de las comunicaciones con la API. Al final esas librerías pesan más y añaden más cosas de las que realmente necesito. Mi obsesión es esa: crear mis propias librerías con mis funcionalidades sencillas a las cuales les aplico los tests. Así no tengo preocupaciones cuando haya una actualización, que me perjudique en mi código.

 

En el siguiente artículo nos recomienda la formación en la que deberías formarte si quieres estar entre la élite de los ingenieros o desarrolladores iOS.

Autor: Pedro Hernández

¿Quieres aprender más?

TITULO DE EXPERTO UNIVERSITARIO. Innovación usando la tecnología iOS con programación Swift: Proyectos Europeos.

 

TITULO DE EXPERTO PROFESIONAL. Desarrollo Profesional de Aplicaciones iOS con Swift para Dispositivos Móviles.

 

PROGRAMACIÓN SWIFT Y SUS NUEVOS PARADIGMAS. Certificado de Enseñanza Abierta.

 

DESARROLLADOR DE ELEMENTOS iOS. Certificado de Enseñanza Abierta.

 

CREACIÓN PROFESIONAL DE APLICACIONES DESDE LA IDEA HASTA EL APP STORE. Certificado de Enseñanza Abierta.

El día a día de un Ingeniero Senior iOS

El día a día de un Ingeniero Senior iOS es muy productivo, especialmente al trabajar en remoto. Aprende las cualidades esenciales que te convertirán en Senior.

En el artículo anterior de la serie “¿Cómo desarrollar una aplicación iOS en Madrid?”, Carmelo Ruymán Quintana nos contó las decisiones que tomo para llegar a ser un Ingeniero iOS y que le permitieron estar trabajando con aplicaciones de gran éxito.

En este artículo nos contará cómo se organiza para poder crear las aplicaciones.

Como Ingeniero Senior iOS, ¿cuál es tu día a día?

Una de las cosas buenas que tiene esta profesión, y sobre todo ahora mismo como Senior, es que puedo trabajar desde casa, sin ningún problema. Tengo la confianza de mi responsable, ve que mi trabajo siempre es bueno y con una calidad excelente. Y el trabajar en casa, es un plus que se agradece muchísimo, porque te aíslas de las distracciones que tienes en la oficina. Puedes hacer un Kit-Kat, tomarte tu café en la terraza y luego volver al trabajo de forma tranquila y organizada. Entonces me gestiono mucho mejor y eso es bastante bueno, porque se ve reflejado en tu código.

 

¿Qué cualidades valoras más en un desarrollador iOS?

Un desarrollador iOS, no es una persona especial, jaja, aunque quizás algunos sí los tratan como especiales. Pero lo bueno que tiene esta plataforma, es que es super versátil, aparte de ser gratuita en las herramientas y tener la herramienta de Xcode. Se adapta super bien al desarrollo. Las posibilidades son infinitas. Te encuentras realizando código, con Swift ahora actualmente, y ves que mucha gente trabaja igual que tú, con la misma calidad, empleando las mismas arquitecturas. Y lo que tiene de divertido es que siempre hay un área nueva. Por ejemplo, puedes usar SpriteKit para realizar un juego o usarlo simplemente para generar gráficas, con lo cual mejoras el rendimiento. Siempre vas creciendo como profesional y vas mejorando el código. Vas mejorando tu aplicación, y eso como desarrollador de iOS lo valoro mucho.

¿Qué estudiar para ser un gran ingeniero o desarrollador iOS?

Para llegar a ser un buen ingeniero de iOS, hay muchísimas herramientas. No tienes porque utilizarlas todas. Para mí las más interesantes son libros de temas muy técnicos, por ejemplo, como emplear la Programación Orientada a Protocolos. Un paradigma que el primer lenguaje de programación que utiliza esta forma de programar es Swift. Luego están libros para programación reactiva como en RxSwift, o TDD. Son libros que te ayudan a que tu código sea bastante eficiente, con un lenguaje muy técnico a la hora de representarlo. Los vídeos también están muy bien. La ventaja que tiene un libro sobre un vídeo es que, en un libro, al final cuando lo lees, esa terminología técnica se te queda, se te impregna más en la cabeza, y la hora de llevarla a tu código resulta más versátil. Luego, pues, también veo mucho vídeos de plataformas como Udemy, o cursos de la UNED que son muy interesantes. Básicamente es eso. Luego hay una cosa que siempre me gusta investigar, blog de varias personas muy profesionales, que siempre están a la última, como tú. Hay blogs, donde explican nuevas funcionalidades del Swift 4.2 ó programación reactiva. Al final hay mucha gente como tú, que tienen esas inquietudes, y al final les gusta aportar en este mundo. Al final hay una comunidad muy interesante que te ayuda avanzar. Internet es una herramienta ideal para estar al día. Bajarte esos libros, comprarlos y emplearlos para crecer como ingeniero en el desarrollo iOS.

 

En el tercer artículo Carmelo nos detalla qué herramientas y cómo organiza un proyecto para que sea su código de alta calidad.

Autor: Pedro Hernández
¿Quieres aprender más?

TITULO DE EXPERTO UNIVERSITARIO. Innovación usando la tecnología iOS con programación Swift: Proyectos Europeos.

 

TITULO DE EXPERTO PROFESIONAL. Desarrollo Profesional de Aplicaciones iOS con Swift para Dispositivos Móviles.

 

PROGRAMACIÓN SWIFT Y SUS NUEVOS PARADIGMAS. Certificado de Enseñanza Abierta.

 

DESARROLLADOR DE ELEMENTOS iOS. Certificado de Enseñanza Abierta.

 

CREACIÓN PROFESIONAL DE APLICACIONES DESDE LA IDEA HASTA EL APP STORE. Certificado de Enseñanza Abierta.

¿Cómo desarrollar una aplicación iOS en Madrid?

Desarrollar aplicaciones en Madrid permite alcanzar retos extraordinarios. En esta entrevista descubre los primeros consejos para ser un gran ingeniero o ingeniera iOS.

Desarrollar una aplicación iOS en la ciudad de Madrid supone abrirse a increíbles oportunidades profesionales. Hay otras ciudades en España que también son para destacar su gran empuje en la creación de aplicaciones. Hoy hablo de Madrid porque ha sido la ciudad que acogió y apoyó a un apasionado de la vida y un gran Ingeniero iOS Senior llamado Carmelo Ruymán Quintana Santana.

Desde hace unos años hay personas que han sido una fuente de inspiración para todos nosotros por su éxito profesional. Conforme los vas conociendo mejor te das cuenta que detrás de cada caso de éxito hay procesos, metodologías, pasión y alegría por alcanzar sus sueños. Estas cualidades y sentimientos son los que Carmelo siempre me ha trasmitido desde que lo conocí hace unos años.

Compartir intereses comunes siempre nos une a todos. Por eso, quiero hablarte de lo afortunado que me siento de compartir una de nuestras mayores pasiones: la creación de iOS con Swift. Esta profesión nos ha dado la oportunidad de pasar buenos momentos compartiendo opiniones y conocimientos. Especialmente cuando nos mueve el objetivo de hacer más eficiente cada nueva aplicación.

Mi deseo es que tengas la oportunidad mediante este artículo de conocerlo en más profundidad, más allá de su perfil en LinkedIn. Saber cómo trabaja en el día a día, los proyectos tan importantes en los que ha demostrado su pericia como ingeniero iOS y comprender de qué forma organiza su desarrollo de aplicaciones. Descubrirás qué tecnologías avanzadas y de alto rendimiento usa Carmelo. Su forma de trabajar lo ha convertido en un ingeniero con gran prestigio profesional en la ciudad de Madrid. Quiero que disfrutes de todas las cosas que nos enseña mediante esta entrevista. Estoy seguro que si prestas atención a sus palabras estarás más cerca de la élite de los grandes ingenieros iOS.

¿Qué tal estás Carmelo?

Hey, aquí trabajando, probando mi aplicación de bkool, desde casa, ya ves, hay que sudar.

 

¿Qué te llevó a tomar la decisión de especializarte en el desarrollo de aplicaciones iOS?

Al finalizar la carrera desarrollé un proyecto orientado a la Biomedicina, donde por primera vez vi la Programación Orientada a Objetos. Este proyecto trataba, en medir la carga emocional de una persona a través del movimiento de sus labios. Tuvo mucho éxito, y a raíz de ahí, empecé a estudiar más en profundidad el código orientado a objetos. Hice algunos cursos Online. Terminando en un master de una academia aquí reconocida a nivel nacional. Y he seguido evolucionando y creciendo desde entonces.

 

Tu carrera profesional ha tenido una progresión ascendente increíble. ¿Qué factores crees que te han ayudado más para estar donde estás?

Los factores fueron varios. La necesidad de encontrar una salida viable en el momento en que me encontraba. Porque después de dos años en paro, me decía: quiero encontrar algo, pero nada referente a las telecomunicaciones. Comencé a escuchar que esto de la programación para los dispositivos móviles estaba tomando bastante importancia, así que después de un curso vino otro. Y así hasta que opté por una beca, en un master como Full Stack Developer. Y desde entonces no he parado de comprarme libros, leerme blogs, formarme año tras año en las novedades que presenta Apple. Y he ido creciendo profesionalmente. Creo que una de las claves con la que he llegado al éxito, es que siempre he querido mejorar, dar un paso más, el extra, el coger y ver cuáles son las nuevas arquitecturas. Las que están ahora a la última. Buscar siempre información de importancia. Por ejemplo, el libro que me hable de testing, test unitarios, como mejorar las arquitecturas y así poder utilizar los test. O la programación reactiva, pues hay muchísimos libros de RxSwift o de RxCocoa. Y siempre he tirado por estos, por los últimos, por los que me ayudan a hacer un código más legible, más escalable. Tirando siempre por lo último. Entonces evolucionas, creces y mejoras.

¿Recuerdas alguna anécdota, que puedas contar, cuando estuviste trabajando en las aplicaciones de Telecinco?

Una de las anécdotas que me pasó trabajando en Megamedia (Mediaset), cuando lanzaron la aplicación de Gran Hermano. Y estábamos justamente en la época del Gran Hermano Big y teníamos que rehacer el reproductor de vídeo, con el AVPlayer de forma nativa. Entonces tuve que hacer varias pruebas. Y siempre, siempre, siempre me tocaba uno o dos vídeos y tenía que ser de la casa de Gran Hermano o el directo mismo de Gran Hermano. Y al final me pegaba horas viendo el Gran Hermano sin quererlo, y me enteraba más del Gran Hermano que cualquier otra persona que veía la tele. Así qué bueno todo ese sacrificio, pues tuvo muy buen resultado y se quedó funcionando bien el reproductor.

Autor: Pedro Hernández

En el segundo artículo Carmelo profundiza en el día a día de un Ingeniero Senior iOS y explica qué cualidades valoras más en un desarrollador iOS.

¿Quieres aprender más?

TITULO DE EXPERTO UNIVERSITARIO. Innovación usando la tecnología iOS con programación Swift: Proyectos Europeos.

 

TITULO DE EXPERTO PROFESIONAL. Desarrollo Profesional de Aplicaciones iOS con Swift para Dispositivos Móviles.

 

PROGRAMACIÓN SWIFT Y SUS NUEVOS PARADIGMAS. Certificado de Enseñanza Abierta.

 

DESARROLLADOR DE ELEMENTOS iOS. Certificado de Enseñanza Abierta.

 

CREACIÓN PROFESIONAL DE APLICACIONES DESDE LA IDEA HASTA EL APP STORE. Certificado de Enseñanza Abierta.

Items de portfolio