Baindo, un MVVM diferente para Android

Hoy os vengo a presentar algo en lo que llevo un tiempo trabajando, Baindo, un framework para aplicar MVVM en aplicaciones Android, del que quiero mostraros un Sneak Peek del estado actual. ¿Por qué otro framework MVVM si existen miles? La respuesta a esta pregunta está en las ideas base que inspiran Baindo:

  • Evitar el uso de cualquier tipo de Reflection.
  • Sintaxis cómoda en código Java. Nada de Custom Views o Custom Attributes en nuestros layouts.
  • ViewModels sencillos y con ninguna dependencia con Android.
  • Maximizar el rendimiento del hilo de UI. Comandos y eventos de modificación de las propiedades se ejecutan en Background.
  • Actualización de UI desde cualquier hilo a través de las propiedades del ViewModel. Olvidate de tener que usar AsyncTask, Handlers o similares para hacer cambios en la UI.

Pinta bien, ¿no? ;-). Pues además será OpenSource y estará disponible en GitHub muy pronto. Veamos que pinta tiene.

»

Full text search contra otras formas de búsqueda

Algo muy común en cualquier aplicación Android es el añadir la posibilidad de realizar búsquedas sobre un ListView. Dado que para mostrar los datos sobre un ListView probablemente ya hemos realizado una consulta a la base de datos SQLite donde estos residen, podemos creer que lo mejor es filtrar los datos que ya tenemos cargados en memoria. De esta forma no pagamos de nuevo el precio del acceso a la base de datos que está en disco y es lenta; ni tampoco tenemos que volver a crear los objetos a partir del Cursor que esta nos devuelve. Pero, ¿hemos pensado bien el coste de buscar texto sobre los datos cargados en memoria? ¿Es esto mejor que un acceso a disco? ¿Escala?

»

Patrón Promise con jdeferred

El patrón Promise es un patrón que trata de simplificar la estructura de nuestro código cuando trabajamos con operaciones asíncronas, algo que está a la orden del día en cualquier aplicación con interfaz gráfica, pero también importante en servicios que tienen distintas dependencias para realizar su trabajo y este puede realizarse en paralelo.

En primer lugar vamos a plantear el problema que trata de resolverse y cómo lo simplificamos con este patrón y en concreto con la librería jdeferred. Luego veremos el caso de particular de Android y el soporte específico que nos ofrece jdeferred que nos simplifican aún más el trabajo.

»