miércoles, 20 de mayo de 2009

Mufly: Contabilidad doméstica programada en GWT

   Hace unos meses comentaba que había descubierto Google Web Toolkit y que estaba desarrollando una aplicación con GWT. Hoy os presento Mufly. Es una aplicación que estoy desarrollando para llevar los gastos de casa y que ya está sustituyendo desde enero de 2009 a otra que venía usando desde el 2004.
   La principal novedad y en lo que he centrado el desarrollo es en el uso de etiquetas (o tags). Así, en lugar de tener una transacción y asociarla a la categoría Ropa, por ejemplo, la puedo etiquetar con varias etiquetas como Ropa e Iván. También he implementado la funcionalidad de dividir transacciones (split). El concepto es muy simple y la mejor manera de explicarlo es por medio de un ejemplo. Por ejemplo: Vas a unos grandes almacenes y compras comida, ropa y un regalo. Cuando introduces estos datos en Mufly sólo debes añadir una transacción: Compra en grandes almacenes, el precio 120€ y las etiquetas (por ejemplo las 3 siguientes: regalo, comida, ropa). Entonces, hacemos el split de la transacción para detallar la compra. Alguna comida 60€, Ropa (pantalones y camisas) 40€ y Libro de GWT 20€. Es decir, sirve para desglosar un único gasto.

   El proyecto Mufly está alojado en Google Code y está liberado con licencia GPLv3. El idioma principal tanto de la web como de la aplicación es el inglés porque quiero que llegue a más gente. No obstante, en el wiki tengo traducido al español la página principal. También he creado hace unas semanas un blog en el que iré contando las novedades. Los post están escritos primero en inglés y luego en español para que cualquiera pueda preguntar sus dudas, contar sugerencias,...

   Y respecto al desarrollo, liberé la versión 0.2 en diciembre y estoy trabajando en la siguiente versión. En ella me he centrado sobre todo en la internacionalización de la aplicación además de en distintas mejoras internas y organización del código. De esta manera, cuando la libere estará disponible también en español y en francés (gracias Alex por la traducción). Respecto a esto es muy sencillo implementar nuevos idiomas, simplemente hay que traducir un archivo de recursos y al realizar la conversión de Java a Javascript, GWT generará las páginas correspondientes a los idiomas que utilicemos.

   Os animo a que la probéis y me dejéis vuestro feedback tanto aquí como en el blog de proyecto. Sólo necesitáis un MySQL y Tomcat para desplegar la aplicación y seguir las instrucciones de instalación del Wiki del proyecto.

7 comentarios:

ChT dijo...

Muy guapo tío. Si tengo un rato libre la probaré y ten por seguro que te pasaré feedback.

AZULcasiNEGRO dijo...

tiene muy buena pinta. y me parece mas interesante como ejemplo de proyecto con las tecnologias que usas.
sigue así.

dale un achuchon de mi parte a la "minifriki"

Iván dijo...

Hola,

[Cht]: Me alegro de que te guste. Aprovecha antes de que nazca la peque que luego te aseguro que vas a tener menos tiempo libre. Esperaré tu feedback...

[AZULcasiNEGRO]: Gracias!, espero que lo puedas probar y me comentes tu experiencia y cualquier cosa que se te ocurra.
Respecto a las tecnologías que utilizo, también pienso que es muy interesante poder utilizar un ORM como Hibernate junto con GWT. Tienes lo bueno de ambas tecnologías, ves la base de datos como objetos y además haces aplicaciones ajax + javascript programando en java :-D.

Le daré un achuchón a Judith :-P.

Saludos, Iván.

amoyse dijo...

Una cosa que estaria bien es un interfaz para la pda offline (WinMo) y que fuese facil de sincronizar con la aplicacion web.

Iván dijo...

Hola amoyse,

ya había pensado lo del hacer una pequeña aplicación para la pda. La única "pega" es que la tendría que desarrollar en .NET y no podría reutilizar nada de lo que ya tengo hecho. Pero bueno, sería una interfaz muy sencilla y sin demasiadas complicaciones.
Lo apunto a la "todo-list" para el futuro.

Saludos, Iván.

Miguel diaz dijo...

estaría genial si usaras un servidor apache en vez del tomcat, excelente proyecto

Iván dijo...

@Miguel diaz,

apache y tomcat son servidores completamente distintos. Apache es un servidor web mientras que tomcat es un contenedor de servlets. Puedes usar cualquier servidor que admita un .war: jetty, jboss,...

Saludos, Iván.

Publicar un comentario