Aprendiendo Android: Lecciones aprendidas (I) con Apatxas

Hace algún tiempo que quería aprender Android y el no estar trabajando me ha permitido poder dedicar más tiempo a ello.
Empecé con los siguientes cursos en Coursera:


La verdad es que están bien a modo de introducción pero yo personalmente no consigo sacar toda la chicha que me gustaría hasta que no me pongo manos a la obra.
Hasta ahora había hecho pequeñas pruebas y funcionalidades que no iban a ningún sitio y terminaba cansándome y no llegaba a ningún puerto. Así que me puse un objetivo: publicar una app en Google Play.

Me "inventé" una aplicación: Apatxas. La idea es sencilla: repartir los gastos compartidos entre varias personas. Pensé en esas veces en las que salimos de vacaciones con amigos o estamos compartiendo piso: vamos generando gastos, que a veces pagan unos y a veces otros y luego llega el momento de hacer las cuentas.

Me puse manos a la obra y este es el resultado:

Apatxas, compartiendo gastos


Lecciones aprendidas
He aprendido mucho, pero quiero destacar las siguientes lecciones que me servirán para no cometer los mismos errores en mi segunda aplicación (que aún me quedan muchas cosas de Android por aprender):

Teletrabajo: más que una forma de trabajo un modo de vida

Aunque a día de hoy no estoy trabajando, mis últimas experiencias laborales han sido en la "modalidad de teletrabajo". He trabajado durante más 5 años desde casa y para mi ha sido una experiencia más que positiva, hasta el punto de que es lo que me gustaría hacer en un futuro.
Para mi se ha convertido en algo más que un posible modo de trabajar, se ha convertido en un modo de vida.
Se que hay gente reticente, gente que le gustaría pero no se atreve, gente que jamás contrataría o trabajaría con alguien en remoto.... Con este post no trato de convencer a nadie ni de abrir un debate. Mi única intención es compartir mi experiencia y si le sirve a alguien para poder animarse a probarlo que lo haga. Y de paso si alguien quiere dejarme algún consejo en los comentarios será bienvenido.

Iconos en Android

Esto es una "chuleta" que recopila la información que me he dado cuenta que busco/uso recurrentemente desde que estoy haciendo un desarrollo de una app android. Iré completándola y corrigiéndola si es necesario. Si a alguien más le sirve, pues mejor que mejor. Estoy utilizando la versión de iconos de Material Design ofrecidos por Google.

¿Dónde encontrar los iconos Material Design de Google? 
https://github.com/google/material-design-icons
En mi caso estoy utilizando los .png que se encuentran en las carpetas drawable-densidad

Preview de los iconos
http://google.github.io/material-design-icons/

Densidades de pantalla y escala

MDPI
Medium Pixel Density (baseline)
1 x
HDPI
High Pixel Density
1.5 x
XHDPI
Extra High Pixel Density
2 x
XXHDPI
Extra Extra High Pixel Density
3 x
XXXHDPI
Extra Extra Extra High Pixel Density
4 x
LDPI
Low Density(*)
0.75 x

(*) Normalmente no es necesario iconos específicos porque Android reduce HDPI a la mitad para obtener el tamaño requerido.

Tamaño de iconos en función del tipo


MDPI(*)
.png de material design icons
Launcher
48 x 48 px
--
Action Bar
24 x 24 px
/drawable-.../ic_..._24dp.png
Small
16 x 16 px
/drawable-.../ic_..._18dp.png
Notifications
24 x 24 px
/drawable-.../ic_..._24dp.png

Launcher for Google Play
512 x 512 px
--

(*) Para el resto de densidades escalar según la tabla de escala

Nomenclatura de iconos en función del tipo

Launcher
ic_launcher_xxxx.png
Menu / Action Bar
ic_menu_xxxx.png
Small / Contextual
ic_xxxx.png
Status bar
ic_stat_notify_xxxx.png
Tab
ic_tab_xxxx.png
Dialog
ic_dialog_xxxx.png


Android Asset Studio: http://romannurik.github.io/AndroidAssetStudio/index.html




Feliz Navidad y Próspero 2015

Cierro un año especial tanto en lo personal como en lo profesional. La parte personal ha sido genial a todas luces. La profesional, depende del prisma con el que se mire. A mi me gusta verlo así:
Me quedo con la felicidad de haber visto crecer mi familia y con la satisfacción de tener más tiempo para poder dedicarme a ella.
Me quedo con el placer de poder dedicar mi "tiempo libre" a trastear y a formarme en temas que tenía pendientes.
Me quedo con la satisfacción de tener las riendas de mi vida y poder plantearme mi futuro como no haría desde la seguridad de un trabajo.
No está tan mal, ¿no?

Si bien este año he tenido el blog totalmente dejado, quería aprovecharlo para felicitar la Navidad. No me caben en 140 caracteres todos los buenos deseos para estas fiestas y para el año que entra, así que aprovecho que en "mi blog" tengo todo el espacio que quiera (para el que quiera leerlo!).

Os deseo una Feliz Navidad. Que la aprovechéis para disfrutar de la compañía de la familia y valorar cada momento con vuestros pequeños y mayores. Dejad atrás el estrés del día a día por unos días y valorar el placer de un desayuno en familia, una peli en el sofá tapados con una mantita y unas palomitas... Esas pequeñas cosas para las que el ingrediente más difícil de encontrar suele ser el tiempo.

Y para el año que entra os deseo.... felicidad! Que seáis felices!! Que disfrutéis de vuestro trabajo si es que lo tenéis y si no... que no dejéis de buscar ese trabajo soñado que os haga disfrutar y sentiros realizados. Que os levantéis cada día con ilusión y nuevos retos. Que no desperdiciéis ni un solo día, porque cada día es único, se lo lleva el tiempo, se convierte en pasado y el pasado nunca vuelve.

Así pues.....

739

739 días son los que han transcurrido desde mi último post. 739 días sin escribir sobre motivación, equipo, programación.... 739 días en los que mi motivación ha pasado por sus peores momentos, en los que he pasado de tener un equipo a no tenerlo y en los que la programación se ha convertido en un hobby.

Sin embargo, mi primer post después de todo este tiempo no tiene una etiqueta profesional si no personal. Porque, pese a mis aventuras y desventuras laborales, el hecho más importante de mis últimos 739 días ha sido el nacimiento de Naroa (y ¡esto si que es salir de la zona de confort!)


No se cuánto durará mi paréntesis profesional..... lo que sí se es que mientras tanto dedicaré mi tiempo a la profesión más bonita y gratificante que existe: ser madre de dos pitufillos.

Buscando, encontrarás....

.... programadores perdidos o empresas perdidas de los que se lleva hablando toda la semana. O quizás no. Buscados o no, encontrados o no, haberlos haylos.

Como programadora, tengo mi modesta opinión de que si no encontramos esa empresa en la que sentirnos completos y realizados, no significa que no exista, significa que debemos seguir buscando y aprender por el camino. No vale entrar en esa dinámica contínua de quejas para luego sentarse y no hacer nada. Está en nuestra mano, buscar nuestra felicidad profesional y sembrar para que la foto de nuestra profesión a día de hoy evolucione hacia lo que queremos que sea.

En cuanto a las empresas... pues me gustaría dejar una reflexión que me viene rondando desde hace ya algún tiempo. Tengo el placer de conocer a muchos y muy buenos desarrolladores. Creadores de software implicados, motivados y comprometidos con su trabajo. Y curiosamente, la mayoría de ellos hace su trabajo en equipo, en un entorno poco jerarquico y donde las tres cs (confianza, comunicación y colaboración) entre empresa-desarrollador es muy importante. Son constructores de lego. Llegados a este punto, me planteo:
¿no tendría sentido que las empresas, en lugar de buscar a ese programador perdido como un individuo entre la multitud, buscase un equipo de desarrollo?
La respuesta a esta reflexión podría ser: "Bueno, yo busco a los mejores y así me aseguro tener el mejor equipo". Yo, tengo una cosa clara: Si juntas a programadores individualmente excepcionales a trabajar en un equipo no implica que necesariamente vayas a tener un equipo excepcional. Que habrá casos, seguro, pero no creo que sea la tónica general. Porque estoy convencida, y cada día más, de que lo que hace grande a un profesional no solo es qué hace si no con quien lo hace.
Al hilo de esto, la reflexión que antes comentaba y que me viene rondando hace ya algún tiempo. Suponiendo el mejor escenario posible, equilibrio en cuanto a perfiles, conocimiento, etc. y buen ambiente:
¿Cualquier grupo de personas puede llegar a formar un equipo? ¿Puede un buen lider llegar a conseguirlo? ¿Es posible que un desarrollador sea igual de bueno trabajando en un equipo que en otro? ¿Puede un desarrollador llegar a ser mejor trabajando con unas personas que con otras? ¿Puede una persona llegar a hacer equipo con unas personas y no con otras? ¿Puede alguien que no sabe trabajar en equipo llegar a hacerlo? ¿Puede una persona aprender a liderar o es algo intrínseco?
Por el momento, tengo preguntas que generan más preguntas dando vueltas en mi cabeza. Seguiré en ello.... a ver si llego alguna conclusión. ¿Alguien que lo tenga claro?

¿Haces ranitas de papel?


Introducir a los alumnos de la facultad de informática en las metodologías ágiles. Fácil y sencillo de decir, pero ¿y de hacer?
Es curioso, quienes estamos metidos hasta las cejas en esto de las metodologías ágiles vemos las ventajas y los beneficios frente a otras formas de trabajo, precisamente por eso: por comparación. Una perspectiva, que no tienen los alumnos. ¿Cómo podemos hacerles ver la diferencia? Pues del mismo modo: por comparación. Y así nos "inventamos" la metáfora de las ranitas de papel.

Escenario: ¿qué significa ser programador? (empresa con un enfoque tradicional vs. empresa con enfoque en metodologías ágiles).