El eternamente pospuesto Note S3
En 2007 escribí sobre un programa que hice (casi exclusivamente para mi podriamos decir :D).
La falta de tiempo y las demás cosas que pasan en la vida, sumado al hecho que la última versión sigue funcionando, hicieron que el proyecto del neuvo Note S3 quedará congelado.
Sin embargo, en los últimos tiempos las cosas han cambiado. Por una parte, estoy usando OSX de forma diaria. Por otra parte, la máquina del trabajo fue actualizada y corre Windows 7 y en este sistema re-moderno, se resiste a funcionar mi querida y arcaica aplicación.
Por esta razón, hace unas semanas decidí retomar el proyecto.
El proyecto que había iniciado en 2007, estaba escrito en Delphi. Me encanta Delphi. Es un lenguaje encantador y un entorno muy sólido. Mi idea era hacer una aplicación multiplataforma (recuerden ahora uso mac también) y si bien el código de la app esta muy bien como base, no puedo migrar el proyecto directamente a Mac.
Intente pasarlo a Lazarus, la alternativa de código abierto de Pascal, pero dos cosas me hicieron desistir de utilizarlo. La primera es que en el proyecto de 2007 usaba varios componentes que no existen para lazarus. Algunos de ellos podría intentar modificarlos, pero, se presenta la segunda razón por la cual decidí no usar lazarus: La interface en OSX. En dicho sistema operativo, Lazarus sigue usando GTK, por lo que la aplicación se ve un tanto alienigena. Existe una forma de escribirla en Cocoa y luego establecer bindings, pero es bastante complejo.
Luego vino la otra opción de hacerlo: C#.
En 2006, empecé a utilizar Visual Studio 2005 y realmente, tanto el entorno como C# me llego al corazon. Esta se convirtió en mi herramienta de trabajo durante mucho tiempo, en incluso hoy, sigo usando VS2005.
Es así, que, basándome en ciertas partes de la aplicación escrita en pascal, empecé a escribir la nueva versión en C#. En el proceso, trate de simplificar bastante y de optimizar el código.
Como mi meta, era y es hacer la aplicación multiplataforma, trate de seguir los consejos para escribir dichas aplicaciones. Es así que el código de acceso a las notas (usando SQLite) esta en clases separadas, lo que facilita migrarlo a otras plataformas, en las que sólo(!?) debería escribir el código de la interface (casi nada).
Al día de hoy, la version para Windows (WinForms) de Note S3 esta un 95% completa y durante los próximos días va a reemplazar a la viejita version 1.99b2. Y si todo sale bien y no encuentro nada raro, en próximos días será publicado en la página web de @ktive Software.
Asi se deja ver:
Mis planes a futuro (algunos más a futuro que otros) son:
- Sincronización en la nube
- Versión para Mac
- Versión para Windows 8
- Versión para Linux/GTK
- Versión Android (iOS?)
Quien les dice, capaz que algún día termino con todo eso :D