miércoles, 8 de septiembre de 2010

Rss Reader

Desde hace unos meses estoy buscando algun Rss Feed Reader que me guste, he probado algunos (3 mas o menos) y ninguno me llena el ojo, no me siento cómodo leyendo en ellos, creo que les faltan opciones, falta de formato al texto, entre otras cosas, asi que en vez de seguirle buscando preferi hacer uno yo.




Hace algun tiempo que tengo ganas de programar algo para mí, sin prisas, con un código bien hecho, con lo que yo quiero y necesito y porque no talvez publicarlo en sourceforge o algo así, un Rss Reader me parecío una buena idea, ademas necesitaba practicar algunos conceptos de OOP y usar algunas de las cosas que el Meny tira en sus clases :P bueno así que pues he estado piense y piense conforme avanzo en mi codigo y hoy me decidí a publicar esta entrada para relatar alguno de los problemas que he tenido y como los he resuelto esta bien interesante la serie de problemas que tienes y como los vamos resolviendo, pero como me parece que escribirlos todos en un mismo post lo haría interminable me ire por partes.


Diseño


Aunque me gustaría decir que pase una buena parte de mi tiempo en el desarrollo de un diseño que no abarcara una aplicación interminable pero buscar un equilibrio con una aplicación funcional no fue así. La verdad es que tenía una idea algo vaga de que era lo que quería, y la interfaz que imagine tiene ciertas similitudes a las que usa el thunderbird me base en esta puesto que fue uno de los Rss Readers que mas use y por mas tiempo sin embargo a pesar de su soporte de extensiones, su integración de navegador firefox incluido y alto grado de personalización no me lleno el ojo. Sin embargo tome prestadas la forma de su interfaz gráfica por lo cual mi programa se asemeja bastante.


El diseño no lo es todo sobre lo que ve el usuario y claro que pense también sobre el funcionamiento interno, sin embargo para serles honesto no he programado mucho y no estaba seguro de que esperar así que me fui con la idea de que es lo que deseaba del programa, algo así como ver que es lo que el cliente necesita.


Decidí que quería tener algunas funciones básicas.



  • Habilidad de ordenar mis feeds por folders
  • Habilidad de poder ver el feed en el navegador. Abrir el navegador o dentro del programa
  • Habilidad para agregar nuevos feeds y obtener alertas de nuevos items
Con esto en mente decidí que el resto de los problemas los podría atacar "on the run" 

Time to code!

Con las ideas básicas de mi programa me dedique primero a seleccionar en que lenguaje programaria. Estuve tentado por Java pero para obtener la habilidad de ver un url en el navegador dentro del programa me hizo inclinarme a .net por la facilidad de implementar este feature (WebBrowser control es un control standar en .net) con esto en mente abrí mi Vistual Studio 2010 Express para escribir mi programa en C# (no soy muy fan de VB no soy compatible con sus sintaxis). 

En mi caso no puedo contextualizar una aplicación (que tenga UI) sin imaginar primero la UI, por lo cual me dedique primero a diseñar la interfaz del reader, mi diseño term ino mas o menos así despues de algunas iteraciones.


En mi primer diseño mis botones eran botones normales de Windows Forms pero los cambie despues por iconos para darle un mejor aspecto, el toolStrip tampoco estaba lo agrege por las mismas razones.

La UI consiste básicamente de 4 partes:

  1. Columna izquierda contiene un contro TreeView para poner los folders con sus feeds
  2. Derecha un listBox para tener los titulos de las noticias
  3. El espacio grande del centro es donde se despliega la noticia.
  4. Los botones de acción colocados arríba
Despues de jugar un poco con la UI decidí que quería un status bar y como note que ahy uno entre los controles de .net lo agrege con un toolStripStatusLabel y un toolStripProgressBar para ver el estado del programa mientras recoge los feeds de internet.


Now down to bussiness

Con mi UI lista me dispuse a crear el código para las primera acciones que deseaba tener.
  • Agregar folders
  • Desplegarlos en el TreeView
  • Agregar Feeds
  • Desplegarlos en el TreeView
  • Desplegar info del feed a los controles listBox y RichTextBox

escribire un poco de la implementación de los mismo en otras entradas, aunque son cosas muy simple espero que le sirvan a alguien (yo incluido ya sea como recordatorio o práctica) el siguiente post mostrare la implementación de la funcion de AddNewFolder


No hay comentarios:

Publicar un comentario

Deja tu comentario aquí, cuenta que te parecio el artículo o simplemente saluda!