Autor

Miguel Sesma es principalmente desarrollador y formador Android desde 2010, apasionado de la calidad del software y comprometido con las arquitecturas clean y la introducción de buenas prácticas en el desarrollo de movilidad. Sus intereses van desde los lenguajes modernos como Kotlin y Swift aplicados al desarrollo móvil, programación funcional, reactiva, hasta investigación de nuevas tecnologías como los ordenadores cuánticos. Anteriormente ha trabajado Network and Database administrator, desarrollador C++ y desarrollo de IoT.

Redactor en

Inyección de dependencias con Dagger 2

Cuando hace dos años revisaba el código que escribí hace cinco, me avergonzaba. Hoy me averguenzo del que escribí hace dos. Los programadores buscamos continuamente mejorar nuestro código. Más calidad de código significa menos errores, mantenimiento y evolución más sencillos y  el orgullo de un trabajo bien hecho.

Para conseguir un código de calidad debemos seguir los principios SOLID. Entre ellos el primero, “Single responsability”, consiste en que cada elemento de nuestro código, sea una clase o un método, se encargue de una sola cosa. Cumplir con este principio nos lleva a menudo a tener una gran cantidad de clases colaboradoras en las que delegamos responsabilidades concretas.

Manejar las instancias de estas clases no es fácil, y para ayudarnos está el quinto de los principios SOLID, “Dependency inversion”, que permite que nuestras clases no dependan de los colaboradores sino de abstracciones de estos. Hay diversas formas de conseguirlo, Factory classes, paso de dependencias por constructor, métodos inicializadores o inyección de dependencias (Dependency Injection o DI).

La inyección de dependencias es el más potente de estos métodos, pero tradicionalmente se ha visto como algo complicado. Gracias a Dagger 2 os enseñaré que nada más lejos. Programar es mucho más sencillo usando DI. En cuanto lo probéis no haréis jamás una aplicación, por simple que sea, sin DI.

sigue leyendo…

VERSUS: Apps híbridas VS Apps Nativas

Desarrollos nativos o híbridos: ¿se acabarán comiendo los nativos a los invasores de tecnología híbrida? ¿O serán los nativos los que acaben en una reserva, como pasó en los EE.UU.?

Este choque de civilizaciones, que se desarrolla de forma inmisericorde en nuestros bolsillos y en nuestros corazones, está muy lejos de llegar a su fin.

Para tratar de resolverlo tenemos, en la esquina derecha, con 75kg de peso y múltiples aplicaciones híbridas a sus espaldas a Arturo Batanero, arquitecto front-end y siempre a punto de salirse de la autovía al ver el cartel de “Córdoba”, preguntándose si está bien escrito.

Y en la esquina izquierda, con 77 Kg de peso  y un montón de aplicaciones nativas desplegadas, tenemos a Miguel Sesma, desarrollador Android e iOS, artesano del software y siempre probando lo nuevo.

Ahora el árbitro sobre el ring eres tú. ¿Se ganará el combate por puntos? ¿O será por KO? ¡Vota!

sigue leyendo…

Introducción a los componentes de arquitectura Android: go Clean!

Durante los últimos años, uno de los temas con más hype en Android ha sido la arquitectura Clean. En foros, blogs, conferencias y demás, las diferentes arquitecturas se han presentado y discutido hasta la saciedad.

En el último Google I/O, además del estupendo anuncio de Kotlin como lenguaje oficialmente soportado para Android, nos sorprendieron con una serie de librerías (en desarrollo todavía pero ya disponibles en modo Alpha) que pretenden unificar las buenas prácticas mostrando una arquitectura ejemplo a seguir en Android.

No es obligatorio seguir estas prácticas, Google mismo dice que si ya estamos usando otra arquitectura Clean, o RxJava, o cualquier otra tecnología alternativa, sigamos con ella.

En cualquier caso, es conveniente ver qué nos aporta la propuesta de Google, compararlo con nuestra arquitectura actual y tomar lo mejor de ambas. Adentrémonos en el universo Clean y veamos cómo nos puede ayudar en el desarrollo de nuestras aplicaciones.
sigue leyendo…

RHMAP: más que un backend as a service

Es poco frecuente que una app móvil sea independiente del mundo exterior y no necesite comunicarse. Tal vez sea el caso de algunos juegos casuales o utilidades sencillas. Sin embargo, la inmensa mayoría de las apps precisan compartir datos con el mundo exterior, ya sea como productoras, consumidoras o, frecuentemente, ambos roles.

Para ello utilizaremos un backend. Es posible que ya dispongamos de uno en la empresa y queramos optimizarlo o que debamos empezar de cero. En ambos casos un Backend específico para movilidad podrá ayudarnos. Pero, ¿son todos iguales? ¿existen opciones avanzadas entre las ofertas del mercado? Profundicemos en ello.

sigue leyendo…

Codemotion 2016, a vista de pájaro

Un año más tuvo lugar en Madrid el Codemotion 2016, el mayor evento por y para desarrolladores de España. Este año, superando ediciones anteriores, pudimos disfrutar de más de 160 charlas con más de 2000 asistentes. Un evento de grandes dimensiones que se ha convertido en una referencia en la agenda de los eventos tecnológicos de nuestro país.

Si hay una cita fijada en el calendario para muchos de nosotros, esa era la de Codemotion. Además, no solo acudimos como asistentes, sino que también asistimos al evento con varias ponencias.

En este post vamos a dar unas pinceladas de nuestra visión del evento y a analizar algunas de las charlas más interesantes de este año.

codemotion

sigue leyendo…

Versus: Hybrid apps VS Native apps

Native or hybrid development: will the natives end up defeating the hybrid technology invaders? Or will the natives be the ones who end up in a reservation, has happened in the US?

This clash of civilizations, which mercilessly unfolds in our pockets and in our hearts, is far from its end.

To sort it all out, we have, in the right corner, weighing in at 75 kg and with multiple hybrid application under his belt, Arturo Batanero, front-end architect who is always about the o try to solve it we have, in the right corner, with 75kg of weight and multiple hybrid applications behind Arturo Batanero , front-end architect and always about to pull off the motorway when he sees the ‘Cordoba’ sign, wondering if is well written.

And in the left corner, weighing in at 77 kg and with a whole lot of native applications launched, we have Miguel Sesma, Android and iOS developer, software craftsman and always ready to try new things.

Now, you are the referee in the ring. Will this fight be decided on points? Or will it be a KO? Cast your vote!

sigue leyendo…