Si leíste entre líneas en mi último post, habrás deducido que ya he terminado la app que estaba desarrollando con Swift. Pues ahora toca hacer lo mismo con Android. Llevo ya dos semanas y media trabajando con Android. Es la primera vez que me pongo con un proyecto de tal magnitud en esta plataforma. Estas son mis primeras impresiones.
La documentación de Android es mejor que la de iOS
La primera semana la he dedicado por completo a buscar, leer, ver vídeos y empaparme de toda la información que he podido encontrar.
Puedo decir sin miedo a equivocarme que la documentación de Android es mejor que la de iOS.
No sólo el contenido o el diseño sino que Android tiene un curso gratuito a disposición del usuario que lo desee. El curso se hace a través de la plataforma de e-learning Udacity y te hará recorrer todo el desarrollo de una app. El curso es una introducción pero es ideal para empezar. Si te dedicas al 100% a realizarlo puedes terminarlo en una semana, eso sí, ten en cuenta que las 7-8 horas diarias no te las quita nadie.
Hay más recursos para aprender a programar en Android
Quizás sea porque Swift es todavía reciente, pero no he encontrado ni la mitad de información de la que he encontrado con Android. Desde que comencé a desarrollar, puedo asegurar que cualquier duda que he tenido la he podido solucionar en menos de una hora haciendo las búsquedas correctas en Stack Overflow o Google.
Encontré un repositorio en GitHub que me parece el Santo Grial de Android. No puedo dejar de recomendarlo. La cantidad de recursos, enlaces, información, tutoriales es tan grande que necesitaría varios meses para poder leerlo por completo. Lo genial de este repositorio es que no sólo tiene páginas y páginas dedicadas a explicar cómo hacer según qué cosas sino que trata de enseñarte las mejores prácticas de desarrollo y en Android y casi siempre suele terminar con un listado de varios enlaces que tratan sobre ese mismo tema. Con lo cual puedes leer más opiniones o formas de implementar lo que te preocupa.
Ahora mismo, si tengo una duda en cómo hacer cualquier cosa o utilizar cualquier componente en Android, primero hago la búsqueda en este repositorio y puedo decir que en la mayoría de las ocasiones, encuentro respuesta. Si no la encuentro, me voy a Google y acabo en Stack Overflow la mayoría de las veces.
Android es más sencillo
Ya he comentado que esta era la primera app de este tamaño que iba a implementar en Android. Hasta hoy, mi experiencia en el desarrollo de apps se reducía principalmente a iOS con Objective-C y Swift.
Estaba bastante contento con Swift y mi último desarrollo, pero esta primera semana con Android, me ha hecho replantearme la sencillez de algunas cosas.
Esta primera semana estuve implementando una pantalla en la que consultar un feed de un blog y poder leer un post al pinchar en él. Además se podía compartir el post. Esto me ha llevado apenas una semana partiendo de un conocimiento muy bajo de Android.
Primero, creé un ListView con datos de pruebas para poder maquetarlo. Cuando leí que se recomendaba maquetar escribiendo los archivos XML, ya estaba echando de menos mi Interface Builder del Xcode. Sólo me duró 5 minutos. Es mucho más sencillo hacerlo de esta manera. No me he liado con las malditas constraints y problemas de autolayout. Todo ha salido prácticamente de forma natural.
Después, utilicé Retrofit, OkHttp y Gson para descargar el feed del blog. Para descargar las imágenes, utilicé Picasso. En pocas horas, tenía la pantalla de feed del blog con 5 posts.
El scroll infinito lo he implementado con este tutorial. He implementado Pull to Refresh con este otro.
Todo iba tan bien que decidí hacer un alto en el camino y en vez de utilizar un List View, probar el Recycler View. Sin problema ninguno, este otro tutorial me explicó lo básico y en apenas un día de trabajo, tenía la pantalla de Blog con Scroll infinito, Pull to refresh funcionando con Recycler View con animaciones fluidas, con un aviso cuando llegas al final del scroll y un aviso cuando no hay nuevos posts.
Lo siguiente fue hacer la pantalla del post. Cargar el contenido en Html y las imágenes con Picasso de nuevo. Lo último fue compartir el post utilizando Share Action Provider.
En una semana, ya tenía listo uno de los apartados de mi app y toda la estructura preparada para seguir programando. Os puedo asegurar que con Swift no he encontrado tantas facilidad ni he trabajado tan rápido.
Pero ojo, sólo llevo dos semanas…
Es cierto que sólo llevo dos semanas trabajando con Android y aún me quedan retos complicados por afrontar (notificaciones push, localización con GPS, …). Quizás dentro de un mes vuelva a escribir este artículo y cambie mi forma de verlo, pero no lo creo.