Navigation Drawer y ActionBarCompat en Android

5 Ago

Desde hace un tiempo quería meterle mano de nuevo a la app de Castra Servilia para Android y renovar todo su interfaz. Aprovechando la salida de la nueva API y las librerías de soporte actualizadas, me he decido a darle caña al famoso Navigation Drawer y el ActionBarCompat. Facilidad y alta compatibilidad (he comprobado que todo funciona perfectamente en APIs >= 7) son los adjetivos que mejor las definen, nada que ver con el chanchullo de la ActionBarSherlock.

Para no complicar todo mucho, si has llegado aquí en busca de unos fuentes que tengan activado el navegador lateral y los iconos en la barra superior, puedes ir al final del post, allí tengo un enlace a GitHub donde podrás hacer lo que quieras con todos ellos. ¡Ojo! Todo esto está hecho con Android Studio (la versión 0.2.2 beta mientras escribo), por lo que aunque debería funcionar perfectamente en Eclipse, es probable que tengas que añadir la librería support-v7 de nuevo.

Este ejemplo se sale de lo que hay ahora mismo en la sección de Android Developers y en otros blogs. Funcionan el Navigation Drawer y el ActionBarCompat a la vez, además que funciona el enlace a los fragments y layouts correspondientes. Esto vale de esqueleto para cualquier aplicación que quieras hacer (quitando las imágenes y los textos, claro). Importa el código y juega con él, aquí hago unas pequeñas indicaciones de dónde tocar si lo usas o quieres probarlo por tu cuenta (mira el código, que son muchos pequeños detalles).

Navigation Drawer:

  • Podéis usar el código que existe en la página de developers, pero es preferible que aprovechéis el del código que comparto, por comodidad.
  • Del MainActivity.java solo deberías tocar los recursos de String para indicar el nombre de las opciones del Navigation Drawer y sus fragments correspondientes:

names = getResources().getStringArray(R.array.opciones_navigation_drawer);
classes = getResources().getStringArray(R.array.fragments_navigation_drawer);

  • Recordad tocar el archivo strings.xml con esos datos y mantened las strings de open, close… porque se necesitan.
  • Hay que crear fragments y layouts para cada opción (si así lo queréis). Con esto habría suficiente.

 

ActionBarCompat:

  • Además de coger los anterior, es necesario editar el menu.xml de una forma un tanto peculiar que encontraréis en el código de GitHub. Esto es por motivos de compatibilidad con versiones anteriores de Android.
  • En el ejemplo del código, es un icono en la barra superior, que al ser pulsado lanza el navegador web. Para que el icono se muestre, se deben tocar el menu.xml y el MainActivity en su método onPrepareOptionsMenu, incluyendo dentro del icono de la forma en la que se indica en el código. Funciona exactamente igual que una entrada del menú, por lo que para asociarle la opción solo hay que acudir y onOptionsItemSelected y añadir el case correspondiente.
  • Es necesario añadir la librería de soporte v7, si usais Android Studio lo mejor es copiarla desde la carpeta del SDK e incluirla en el proyecto. OJO, también se debe hacer esto con los layouts del theme AppCompat. ¡Y actualizad el build.gradle, hay que meter la dependencia de la librería a mano!
  • En el Manifest, además de poner como SDK mínimo el 7, se debe añadir en la zona de aplicación el theme AppCompat.

 

Si tenéis cualquier duda con el código, comentadlo. Es mucho más fácil de lo que parece. ¡Y usad Android Studio! Si os libráis de la ActionBarSherlock, probad el pack completo de hacer algunos pinitos con la Navigation Drawer y el ActionBarCompat.

 

Código en GitHub con un ejemplo de Navigation Drawer, ActionBarCompat y fragments en una misma app: NavigationDrawerYActionBarCompat

 

Problemas al exportar una app de Android a APK

21 Abr

Desde hace un tiempo la pequeña aplicación que tengo subida a la Play Store de Android tiene problemas al ser firmada. Algo que debería ser tan sencillo como ir a “Exportar aplicación” en Eclipse, se convierte en una auténtica pesadilla. Por algún extraño motivo, todos los pasos se siguen correctamente, pero en el momento de generar el APK, Eclipse se cierra sin previo aviso, o deja uno de sus fantásticos y explicativos errores: “Conversion to dalvik format failed with error 1”.

Si bien se puede conseguir el APK de otras formas, si lo que queremos es firmarlo para subirlo a la Play Store de Google, se puede convertir en una verdadera pesadilla. Aunque es una solución muy chapucera, existe una forma de evitar que salte el error y la aplicación se construya perfectamente. Basta con desactivar el “Automatic build” que hace Eclipse por su cuenta. Haciendo esto, un clean y volviendo a tratar de exportar la aplicación, todo funcionará perfectamente.

Spotify en Android

7 Sep

Llegó el día: Spotify liberó su versión móvil para Android. Y tras probarlo con el HTC Magic (con línea de datos de Vodafone), supera con creces todas las expectativas.

  • Hay que destacar que la aplicación está muy pulida y corre genial; sin errores y pudiendo usar otras aplicaciones sin ningún tipo de problema.
  • Se puede oír la música tanto con conexión de datos, como en modo offline si se trata de listas de reproducción que ya hemos escuchado. ¿Qué significa esto? Que si te has comprado el Magic con Vodafone, la tarjeta de 8 gigas almacenará toda la música que quepa, para que puedas escucharla sin bajarla (máximo 30 días, luego la debe volver a descargar), y ahorrar batería.
  • La música con Vodafone baja a toda la velocidad, sin cortes ni limitaciones, algo que otras compañías no permiten.
  • La aplicación sincroniza los datos del móvil con los del PC, por lo que todas las listas que añadas podrán escucharse en cualquier medio.
  • ¿Que te llaman por teléfono? La aplicación para, y vuelve a funcionar cuando cuelgues; igual con mails, mensajes y alertas, sin ningún bug.

Vale, hay una pega, y es que pagar 10 euros por el servicio es una pasada. Pero piensa en que tienes casi la totalidad de música existente, que puedes disfrutar de listas de reproducción creadas por gente de todo el mundo, que no hay anuncios, y que la version móvil hará que los reproductores MP3 pertenezcan a la prehistoria. Y todo legal al 100%.

Yo me he hecho Premium durante 1 mes para probar la aplicación, y sólo tengo buenas palabras. Impresionante. Esto sí es el futuro de la música.