Sunday, March 9, 2014

2013 recap and 2014 roadmap

2013 has been our fourth year as a GDG/GTUG. If the first one was the foundation, the second one the consolidation, and the third the expansion one, this 2013 has continued with the expansion and the consolidation in a new direction.

The best way to understand why we continue calling this year the expansion one is to show some numbers:
  • 29 events in the whole year (3 more than on 2012); 
  • 244 members in developers.google.com (about 540 in our google group); 
  • We have 967 followers in our Google+ page, 463 members in our Google+ Community, and 2263 have "+1-ed" us
  • And 2121 participants in our events (539 more than the previous year), which means about 75 per event on average (14 more per event than the previous year)!


Following the course of the previous year, we talked about many different topics (Android, Guava, AngularJS, Testing, Customer Development with Google tools, Accessibility, Go, Google Maps, Google Apps, Google’s Cloud, Android Studio, Gradle, Google Glass, etc...) in all kinds of events like conferences, codelabs, beerworkings (beer + networking), parties, Live conferences (using Hangouts on Air). Furthermore, we did the biggest DevFest we had ever done.





2 keynotes, 20 conferences, 2 codelabs, 1 hackathon, 1 guide and 1 game for Android, 6 GDGs organizing (Lleida, Mallorca, Valencia, Vigo, Tarragona and Barcelona), almost 1000 registered and 520 attendees, made the GDG DevFest our most successful event so far. Besides being a great event, it also gave us a renovated vigor: potential speakers approached us, new ideas came, and in no time things went crazy! You can find videos of some conferences here and photos here.




2013 started with our renewed team and an explosion of events (21 in the first 3 months) that caught up with us. Although our community asked us more events, we quickly saw that we didn’t keep the pace (at least without nobody wanting to join the organization team), so we decided to reduce the number of events and focus on improving the quality of those. A good example of that was the DevFest
.

For 2014 our plans have changed again slightly. We have seen that the community has matured and now is demanding advanced-level events. So, without forgetting those events focused on beginners, and those others dedicated to latest advances in the technologies we love the most, now we are organizing events aimed at improving the quality of our skills as developers, and trying to build new things in this new learning process. One of the initiatives we have started is called "Android Best Practices", a study group where the best techniques for programming in android are discussed and put into practice through workshops on saturdays mornings.

We made ​​7 events so far this year, and we are preparing many more. At this point we can't tell you what they are, just that something really big is coming .If you follow us, this year will be the best ever :)

GDG Devfest Barcelona 2013 Videos!

Better late than never! :)
In the end we’ve obtained all the videos from the conferences in the past GDG DevFest Barcelona 2013. Here there are! Unluckily it wasn’t possible to record all the videos, as there was a track in a room without the required equipment, so we apologise if you can’t find a specific one.

----

¡Más vale tarde que nunca, como dice el dicho!
Al fin hemos podido conseguir todos los videos de las charlas del pasado GDG Devfest Barcelona 2013, y aquí los teneis. Tened en cuenta que uno de los tracks y los codelabs no pudieron ser grabados, por lo que no todas las charlas están disponibles.

* Sobre ASO, marketing de apps y cómo comunicar las apps en los medios

Thursday, March 6, 2014

ABP Saturdays: Juguete


El sábado pasado (como ya va siendo habitual), nos reunimos en el Android Best Practices Saturdays con el objetivo de finalizar el script de Gradle para Juguete y empezar a programa la aplicación. Sin embargo, al final del día aprendimos que IntelliJ, Android Studio y Gradle no son tan fáciles de combinar, y fue todo un reto que todo el mundo tuviera su proyecto funcionando.

El primer problema fueron las configuraciones que hace se serie Android Studio pero que obvia IntelliJ. Por ejemplo, IntelliJ crea un fichero local.properties en la raíz del proyecto, con la propiedad sdk.dir apuntando al directorio del sistema donde se encuentra el SDK de Android. También se puede utilizar la variable de sistema ANDROID_HOME, pero a alguno de nosotros nos daba problemas. Otras cosas que no configuró de serie IntelliJ fueron el SDK específico con el que se compila cada modulo, y los directorios de código y de recursos.

En cualquier caso, una vez hecho el primer script funcional de Gradle, se puede hacer una task Wrapper, e invocarla, de forma que empaquete la distribución de este y su configuración, y la importación en IntelliJ posteriormente sea muy sencilla diciendo que utilizaremos la distribución de Gradle customizada.

En cuanto a las dependencias, fue bastante directo añadirlas al encontrarse prácticamente todas en el repositorio central de maven. La única que nos dio un poco más de guerra fue la de Appsly Android REST, precisamente al estar en su propio repositorio.

Fuera de tiempo nos quedaron los flavors, que por otra parte, todavía no tiene mucho sentido que los apliquemos (pues dependen del código que vayamos haciendo), aunque en las imágenes del post podéis ver los que pensamos que podían ser interesantes.

Como al menos ya podemos importar el proyecto, aunque ahora mismo solo sea un HelloWorld, ya está subido a GitHub y lo podéis encontrar aquí. El repositorio está cerrado sólo a colaboradores, y no hay colaboradores directos, por lo que la forma de trabajar con él es hacer un fork y luego enviar los pull request. Nos queda pendiente establecer el sistema de revisión y aprobación de pull request, pero ya lo iremos haciendo sobre la marcha.


Para la próxima reunión del grupo (¡este sábado!), abordaremos el tema de que arquitectura debemos seguir para poder trabajar todos a la vez (idealmente) en el proyecto, y comenzaremos a darle forma a Juguete. ¡Os esperamos!

Sunday, March 2, 2014

ABP Saturdays: Gradle II

Hace 2 sábados volvimos a reunirnos para continuar con los objetivos de aprendizaje de Gradle que nos habíamos marcado. Al final la sesión sirvió para otro propósito muy diferente, aunque con la misma intención de profundizar en Gradle y en aspectos avanzados del desarrollo Android.

Para empezar, nos dimos cuenta de que si queríamos un script de Gradle complejo, necesitábamos un proyecto complejo para poder jugar con él. Con esa idea en mente, nos pusimos a determinar los requisitos de Juguete, el proyecto de Android Best Practices para ir haciendo trastadas realizando nuestro objetivos de aprendizaje.

Dado que Juguete también nos va a servir más adelante para probar diferentes librerías y arquitecturas, decidimos que haríamos un aplicación que mostrase imágenes de una fuente remota en un staggered grid como el de Etsy. De hecho, las dependencias que decidimos incorporar fueron:

Sin embargo, cuando nos dispusimos a crear un proyecto de base para trabajar, quisimos hacerlo directamente desde IntelliJ IDEA 13, que deja muchas cosas por configurar que si hace Android Studio. Resolver estos problemas nos llevó gran parte de la sesión, pero nos proporcionó un conocimiento importante que se puede utilizar a la hora de crear/importar/configurar proyectos Android en Gradle, y cuyo resumen publicaremos más adelante.

Uno de los momentos más interesantes de la sesión fue cuando Santi nos explico la estructura de herencias de Activities que utilizan en Wallapop, mostrando el código fuente de la aplicación para ello. Esto nos llevó al debate de herencia vs. composición, que, habiendo defensores de ambas partes, prometimos abordar más adelante con el desarrollo de Juguete.


En la próxima sesión (que como vamos con retraso en la publicación de estos posts, ya ha pasado :p), la idea es centrarse en acabar el script de Gradle y empezar a programar las funcionalidades descritas.