Creando botones de login personalizados para Android

Una de las cosas con las que menos me gusta trabajar es con los SDK de redes sociales. Cada una tiene su propia manera de hacer las cosas, por lo que a nivel de código, aún teniendo mucho cuidado, vas a terminar teniendo un batiburrillo de métodos no uniformes pero de nombres parecidos que van a ser llamados en distintos momentos y que van a trabajar de distinta forma. Pero bueno, eso quedará oculto al usuario. Lo que realmente me molesta es lo que sí se ve. Por ejemplo, los botones de login.

Captura de pantalla 2015-05-31 14.14.50

Cada empresa intenta cuidar lo más posible su imagen de marca (y esto es perfectamente comprensible). Lo que quiere cada una es que, hagas login donde lo hagas, puedas reconocer fácilmente su botón, por lo que te intentan forzar a utilizar el mismo en todas partes (ya sea iOS, Android o una aplicación Web). Y si vas a utilizar únicamente una red social, pongamos Facebook como ejemplo, esto no termina de ser malo. Aunque estés forzado a usar un determinado botón puedes ajustar el resto de tus elementos para que no termine de quedar mal. Pero lo común es que si vas a permitir que tus usuarios entren utilizando Facebook, también lo puedan hacer usando Google+ (sí, en serio), Twitter, su email o cualquier otro método que quieras contemplar.

Sigue leyendo

Actualizar Google Play Services en un AVD anterior a KitKat

Antes Google tenía la sana costumbre de actualizar regularmente sus imágenes de AVD (Android Virtual Device) con las últimas versiones de Google Play Services. Esto permitía que desarrolladores que no dispongan de varios teléfonos puedan probar sus aplicaciones, si de GPS (GMS) dependen, de una manera sencilla.

Google-Play-services

Sin embargo, me topé con el problema de que la imagen de sistema de Android 4.3 (API level 18) disponible a través del SDK Manager cuenta con la versión de Play Services 3.0.X, estando actualmente en la 5.0.89. Así, si estas testeando una aplicación que los necesite, te saltará el error GooglePlayServices not available due to error 2 a través de logcat, que significa, como era de esperar, que “están disponibles pero desactualizados”, y por lo tanto no pueden usarse, a pesar de que se trate de alguna funcionalidad sí incluida en esa versión. Lo primero que intenté fue bajarme los Play Services de Internet e instalarlos mediante ADB, pero parece ser que la versión distribuida a través de Play Store está firmada con una firma distinta a la que se reparte en los AVD. Sigue leyendo