Utilizar NestedFragments o cómo cargar Fragments dentro de Fragments en Android

En otros artículos como «Buenas prácticas usando Fragments» o «Introducción a los Fragments en Android» os contaba cómo cargar Fragments desde el Activity, intercambiarlos, y pasar mensajes entre ellos. Pero, ¿qué pasa si dentro de un Fragment que está mostrando la interfaz necesitamos incluir otro Fragment, como por ejemplo, un mapa de Google Maps? Para esto en Android 4.2 se introdujeron los «NestedFragments», es decir, Fragments que se cargan dentro de Fragments. Luego los incluyeron en la librería de compatibilidad, con lo cual pueden usarse en todas las versiones de Android. Imaginad que tenemos un MainFragment con el siguiente Layout: [Seguir leyendo…]

Introducción a los Fragments en Android

Hace unos meses os escribía algunos consejos de buenas prácticas con Fragments en el artículo «Buenas Prácticas usando Fragments en Android». Hoy vuelvo para contaros en profundidad sobre algunas de las cosas que hablé en su día, pero desde un punto de vista más de principiante. Vamos a tratar pues, no lo que es un Fragment, cosa que podéis consultar en el artículo anterior pero sí algunas de las operaciones más comunes y como funcionan. Cargando un Fragment: Un Fragment siempre se carga dentro de un Activity, esto es, que no puede existir sin ella. Generalmente usamos al Fragment para [Seguir leyendo…]

Geolocalización sencilla en Android usando CTTP

Este último año he escrito varios posts en este blog tratando sobre cómo utilizar geolocalización en Android. Si los habéis seguido sabréis que no es particularmente sencillo, pero el tema se complica cuando además queremos resaltar puntos de interés. Como sabéis, en GPMESS os notificamos cuando pasáis cerca de un yipi, y los yipis están geolocalizados en un lugar en concreto. ¿Cómo hacemos esto? Pues utilizando CTTP. CTTP o «Close to the point» (Cerca del punto) es una librería propia que inicialmente nació como parte interna de GPMESS y que ahora hemos decidido liberar para que los desarrolladores podáis utilizarla con unos [Seguir leyendo…]

Utilizar servicios (Service e IntentService) en Android

A la hora de realizar lo que llamamos «long-time running tasks», es decir, tareas que tienen que estar durante un gran tiempo en segundo plano, la solución del AsyncTask que nos resulta válida para tareas cortas no es la más recomendable. Esto sucede porque el AsyncTask está íntegramente ligado al Activity o Fragment donde se ha lanzado y, en general, puede ser destruida junto a el. Para esta tarea existen los Servicios, pero a menudo es habitual cometer errores desarrollando con estos componentes. Para desarrollar con servicios hay que tener muy claros estos puntos. · Existen dos tipos de servicios, [Seguir leyendo…]

Charla sobre geolocalización en Android en GeeksHubs

Como sabéis a principios de este mes se celebró en Madrid la segunda edición de la Droidcon España. Originalmente yo iba a estar allí para dar una charla sobre geolocalización en Android, pero por desgracia enfermé y no pude asistir. Como ya me encuentro bastante mejor, hemos decidido que para no echar a perder el material que preparamos, el próximo miércoles 23 de Julio a las 19:00, la vamos a realizar en GeeksHubs, Valencia, que es dónde tenemos actualmente nuestra oficina. En la charla hablaré sobre implementación de distintos patrones de geolocalización desde un punto de vista técnico, espero que [Seguir leyendo…]

Cómo soportar versiones antiguas de Android con ProductFlavors y SourceSets

Generalmente, mantener soporte para versiones antiguas de Android suele ser un grano en el culo. En particular, el soporte para versiones anteriores a Android 4.0 se hace particularmente feo, ya que es necesario usar muchas librerías de compatibilidad que acaban empeorando la experiencia de los usuarios con terminales más nuevos. En GPMESS nos gusta dar a cada usuario la mejor experiencia posible para su terminal, por eso usamos los ProductFlavors en Android Studio para independizar código y conseguir mejores resultados. Si estás pensando en hacer algo similar, voy a contarte nuestra experiencia y cómo lo hemos hecho: En primer lugar, [Seguir leyendo…]

Volley: Cómo parsear las respuestas del WebService en Objetos Java (II)

La semana pasada veíamos como usar Webservice de manera sencilla usando Volley. Si recordáis el post y el ejemplo que usé y que tenéis disponible en Github, en Volley teníamos una cola de peticiones llamada RequestQueue y creábamos Requests de distintos tipos para descargar datos: StringRequest JsonObjectRequest JsonArrayRequest ImageRequest Sin embargo, es posible que queramos parsear directamente las respuestas de nuestro WebService en objetos Java, ya que conocemos el modelo de datos que usa nuestro servidor. Esto lo podemos hacer de manera relativamente sencilla si nuestro servidor usa JSON, ya que disponemos de la librería GSON de Google para parsear este tipo [Seguir leyendo…]

Volley: usar WebServices en Android de manera sencilla (I)

Estoy seguro que muchos de vosotros, al igual que yo, habéis tenido que lidiar con aplicaciones que son un cliente que utiliza un WebService para comunicarse con un servidor. Si lo habéis hecho sabréis que no es tarea sencilla, ya que aunque tenemos el AsyncTask que nos permite lanzar en segundo plano una UrlConnection, el proceso de la conexión y descarga es engorroso, y el control de errores con las AsynTask se hace complicado si no lo planteas desde el inicio de la manera correcta. Además depende totalmente de nuestro criterio implementar los retry, los time out y en resumen, [Seguir leyendo…]

Buenas prácticas usando Fragments en Android

Desde que Google incluyó los Fragments en Android, muchos desarrolladores no han sabido terminar de aclararse con el nuevo paradigma de diseño en las aplicaciones. Para los que no los conozcáis, un fragment es un objeto pensado para ser cargado desde un Activity y sustituir a este último como encargado de mostrar la interfaz e incluir el código de la interfaz gráfica. De este modo, dónde antes hacíamos un setContentView() en nuestro Activity, lo que ahora hacemos es «añadir» un Fragment al Activity, que es el que muestra el layout que queremos mostrar. Esto lógicamente tiene muchas implicaciones, pero la [Seguir leyendo…]

Implementar un menú lateral usando NavigationDrawer en Android

Las pestañas se han pasado de moda, o eso parece. Lo que se lleva actualmente en el diseño de aplicaciones para Android son los menús laterales como GMail o la Play Store. Afortunadamente Google ha pensado en todo y nos ha proporcionado un componente nativo para poder implementar este patrón de diseño: El NavigationDrawer. Para implementar el NavigationDrawer de modo correcto, vamos a manejar varias clases: – MainActivity, que será el Activity dónde queremos manejar el NavigationDrawer. – NavigationDrawerFragment que será el Fragment que contendrá el ListView que aparecerá en el menú lateral. Con estos dos componentes podría ser suficiente, [Seguir leyendo…]