En el día a día estamos acostumbrados a trabajar con información procedente de varias vías y, en muchos casos, deseamos almacenarla para futuras referencias, como seguimiento o bien para tratarla y exportarla con un formato determinado. Snippery es la aplicación que permite realizar estas y otras funciones desde una única aplicación, y además de forma segura al implementar cifrado en el almacenamiento de la información.

snippery-lingupedia-en-lousfera

Desarrollada con el entorno de desarrollo multiplataforma Xojo, esconde tras ella muchas horas de programación —y también diseño de los elementos gráficos— planteando un funcionamiento robusto, aunque no exento de algún que otro bug, con total sinceridad —y al igual que ocurre con el 100% de las aplicaciones y sistemas operativos. En este sentido, las actualizaciones se producen a un buen ritmo y van acompañadas de la incorporación de nuevas características, cuya prioridad de implementación está basada en las necesidades de los usuarios del producto.

¿Cómo surgió el proyecto? Reflejo de las necesidades de muchas personas que se encuentran constantemente cambiando entre aplicaciones para realizar diferentes acciones sobre una misma pieza de información.

Por ejemplo, utilizando un gestor de *snippets* (fragmentos de texto) o base de datos para almacenar la información que se desea incorporar, y donde además en muchos casos se requiere del guardado de dicha información de forma segura y local, para posteriormente tener que acudir a editores de texto especializados en ordenar las líneas de una forma determinada, aplicar búsquedas y sustituciones complejas; o bien cambiar a un editor que les permita crear y editar un documento utilizando Markdown para posteriormente exportarlo como HTML, PDF, documento de Word o con formato RTF.

De hecho, las entradas escritas en Markdown o HTML pueden previsualizarse sobre la marcha, de modo que veamos en todo momento sobre una ventana independiente el resultado final según los cambios realizados, o bien conmutar en el propio editor entre los paneles de edición y de previsualización.

Pues bien, Snippery reúne todas estas capacidades y muchas otras más, como por ejemplo el coloreado de sintaxis para los lenguajes de programación HTML, PHP, JavaScript y, como no, Xojo; de modo que los programadores pueden utilizarlo para crear, guardar y editar fragmentos de código directamente en Snippery; o bien la capacidad de automatizar procesos en el Terminal y almacenar los resultados obtenidos.

También es sobresaliente la capacidad de crear plantillas de texto en las cuales definir variables o posiciones de marcador, de modo que luego es posible generar nuevas entradas en las que podemos definir sobre la marcha nuevos valores para las variables definidas en la plantilla, como se puede ver por ejemplo en este vídeo.

Sobre la ingesta de la información (creación de entradas) en Snippery, la aplicación proporciona una buena cantidad de vías; desde las más básicas como la creación de nuevas entradas en la propia aplicación, o arrastrando y soltando los archivos desde el escritorio, hasta la de añadir nuevas entradas a partir de la selección de texto realizada en cualquier aplicación que estemos utilizando. También está disponible un *Bookmarklet* que se puede añadir al navegador para realizar la misma función (añadir el fragmento de texto seleccionado como nueva entrada en Snippery), así como la descarga y creación de nuevas entradas a parir del URL introducido.

Por supuesto, como en cualquier base de dato y aplicación de estas características, en Snippery también juegan un papel importante las funciones dirigidas a encontrar, en un momento dado, todas las entradas coincidentes con una serie de criterios determinados. Aparte de las búsquedas estándar, y la capacidad de asignar tantas etiquetas como precisemos a cada nueva entrada de información, Snippery incorpora también una potente función de búsquedas mediante el uso de RegEx, así como opciones de filtrado disponibles directamente en la ventana principal de la interfaz de usuario y que nos facilitan mostrar, por ejemplo, solo las entradas correspondientes a una fecha determinada por su fecha de creación, modificación o bien comprendidas en un periodo de tiempo determinado, entre otros criterios.

En constante desarrollo
Tal y como es el caso de cualquier otro desarrollador independiente, también soy el principal usuario de mis aplicaciones; lo que significa que utilizo Snippery a diario (¡y mucho!) para almacenar, tratar y exportar todo tipo de informaciones. Esto también significa que, aparte del *feedback* recibido por los usuarios de la aplicación, también soy el primero en detectar bugs y ver las parcelas que se pueden mejorar o ampliar para dotar a la app de más capacidades sin que llegue a convertirse en un “monstruo”.

Sobre los ciclos de desarrollo (solución de errores e implementación de características), he de decir que ayuda enormemente el hecho de utilizar Xojo para su programación, entorno que auna tanto el IDE con un editor de interfaces de usuario como el potente lenguaje de programación orientado a objetos. Así, los ciclos de escribir nuevo código, probarlo (debug desde el IDE) y generar la aplicación nativa final, son realmente bastante más cortos.

En el diseño y programación de Snippery también quería imponerme el reto de que todo su código fuese 100% Xojo, prescindiendo por completo del excelente ecosistema de complementos que rodea la plataforma y que permite acelerar aun más la implementación de capacidades o implementar nuevas funciones visuales con un simple “arrastrar y soltar”. De hecho, el único plug-in externo (librería) no desarrollado en Xojo es el sistema de licencias GuancheMOS, que es el responsable de validar la licencia de usuario para el funcionamiento de la aplicación, así como wkhtmltopdf, responsable de la exportación a diferentes formatos; mientras que Kaju es el componente, también desarrollado en Xojo, que permite comprobar y descargar las nuevas versiones disponibles de Snippery.

De hecho, en las primeras versiones internas, Snippery comenzó siendo una aplicación multiplataforma que también funcionaba sobre Windows y Linux. Sin embargo, llegó un punto durante el proceso de diseño y decisión sobre el conjunto de características iniciales donde finalmente descarte los prototipos de Windows y Linux para centrarme en el modo en el que los usuarios de macOS podrían sacar provecho de ciertas capacidades.

¿Podría ser Snippery multiplataforma mañana mismo? Ciertamente, pero en una versión bastante *Lite*, mientras que en el caso de Stamp, y otros proyectos aun en la cocina, esto es ciertamente más probable.

Quizá la principal dificultad con la que me estoy encontrando, inevitable por otra parte, son las auténticas restricciones y limitaciones que impone la Mac App Store para la distribución de aplicaciones en cuanto a qué tipo de cosas se pueden hacer y cuáles no… y que me está llevando a plantearme seriamente el abandonar la distribución de Snippery en la App Store para dejar sólo la versión más potente y con más capacidades que se puede descargar y comprar directamente a través de la web de AprendeXojo.com.

Esto no significa una crítica en absoluto en cuanto a las medidas impuestas por la App Store (y endurecidas con Sierra), sino que prefiero no restar capacidades que utilizan actualmente los usuarios del producto para dejar, simplemente, una versión más ligera en la App Store y que aportaría menos valor sobre lo que ya se puede encontrar.

Por supuesto, la versión que se puede descargar, instalar y utilizar fuera de la App Store también tiene su código firmado con mi perfil de desarrollador Apple, garantizando así en todo momento la legitimidad del producto y también buenas prácticas en cuanto a la seguridad de que la aplicación no realiza nada que no deba hacerse sobre el equipo de los usuarios, principal limitación implícita al entorno de ejecución sandbox creado con las aplicaciones descargadas/compradas en la App Store.

Después de todo, y a una escala infinitamente más modesta, no deja de ser lo mismo que hacen otras aplicaciones de macOS de gran nombre y que también han abandonado la App Store (o que nunca llegaron a estar) por este mismo tipo de limitaciones.

¿Es Snippery la mejor solución para todos? Lo dudo. Como ocurre con cualquier herramienta, y dada la ingente cantidad de aplicaciones disponibles para macOS de todo tipo, precios y colores, ya depende de que cada uno de nosotros busquemos aquella cuyo conjunto de capacidades sea más afín a nuestras necesidades o particular forma de trabajo.

En mi caso, no solo disfruto enormemente programando Snippery con Xojo, sino también al darme cuenta de lo importante que resulta en el día a día desde el punto de vista de mi productividad y, especialmente, cuando recibo los mensajes de correo electrónico de los usuarios de la aplicación donde me felicitan por “tal” o “cual” característica del programa, me indican donde encuentran problemas y también me proponen características que les vendría de perlas… y que tras sopesarlo pasan a la lista de “To Do”, por supuesto, ¡también gestionada con Snippery!

De hecho, he escrito esta entrada por completo en Snippery utilizando Markdown y exportando el resultado final como HTML; tal y como ocurre con muchas de las páginas que cuelgan de AprendeXojo y también en los procesos de preparación de algunas de las características de Snippery (es realmente gratificante utilizar Snippery… ¡para crear elementos del propio Snippery!)

Y sí, en Snippery también hay algún que otro huevo de pascua.

Compartir
Javier Rodríguez (@bloguintosh) es desarrollador de aplicaciones. Puedes contactar con él para el desarrollo de aplicaciones y soluciones multiplataforma, así como consultoría y formación.

No hay comentarios

Dejar respuesta