Workshop del curso
Tiempo de lectura: 5 minutos

Empezamos el mes de mayo y me gustaría comentaros las novedades relacionadas con el curso de programación. Puede parecer que el curso tiene poco movimiento últimamente. Aunque es cierto a nivel de contenido, la cosa es diferente en la organización interna. Como sabréis, empecé el curso como un proyecto personal para generar documentación para Ubuntu Touch. La finalidad era ayudar a los programadores a crear aplicaciones para esta plataforma. En su momento la documentación que existía era limitada, incluso en inglés, y sólo trataba elementos muy concretos. No había nada que explicara como crear una aplicación desde cero. La mayor parte del curso utiliza como base el SDK de Ubuntu Touch. En estos momentos ese SDK no tiene soporte y ha cambiado la forma de crear aplicaciones. Por esta razón es necesario realizar algunos cambios internos. Me permitirán actualizar el contenido a la nueva forma de trabajar y podré llegar a más usuarios.

Voy a dejar la versión original del curso publicada en GitBook. De esta forma, cualquier usuario que quiera acceder al contenido en castellano podrá consultarla. Cuando finalice la migración a la nueva estructura, desactivaré ese enlace.

La herramienta de desarrollo del curso de programación

En el curso se utiliza como herramienta de programación el SDK de Ubuntu Touch. Sobre esta herramienta se explican los diferentes conceptos y la forma de trabajar. Al abandonar Canonical Ubuntu Touch, el SDK dejó de tener soporte y ya no es una herramienta válida. Ésto no quiere decir que no se puedan crear aplicaciones para Ubuntu Touch. UBports tiene como herramienta alternativa Clickable y sobre esta base se programan las aplicaciones.

Ubuntu SDK

Ubuntu SDK

¿Quiere decir que todo el contenido del curso que usa el SDK de Ubuntu Touch deja de servir? Inicialmente puede parecer que el cambio de herramienta afecta a todo el contenido. Es cierto que hay partes que las tengo que rehacer pero no afecta tanto como parece. La base del curso es Qt y esa base se sigue manteniendo igual. Si sustituyo las herramientas del SDK por Clickable, es posible que en un futuro me encuentre en una situación similar (al usarse otra herramienta). Por esta razón, voy a tomar como base la versión de Qt de escritorio. Con este cambio, un usuario que sólo quiera aprender a programar aplicaciones para escritorio podrá también seguir el curso.

Qt Creator

Qt Creator

Un detalle importante es que visualmente no se notará mucho la diferencia entre el SDK de Ubuntu Touch y Qt Creator (su alternativa de escritorio). El SDK comparte mucho código de Qt Creator y la forma de trabajar es prácticamente la misma. Lógicamente hay cambios en el código si uso esta aproximación. Haré la explicación para escritorio y comentaré en los casos que sea necesario, los cambios para Ubuntu Touch. El objetivo final es tener una aplicación de escritorio y con algunos cambios, poder usarla en otras plataformas.

De GitBook a Read The Docs (Sphinx)

Para escribir la documentación utilizo Markdown. Markdown es un lenguaje de marcado, similar a HTML, que permite formatear un documento. Después ese documento se puede convertir a otros formatos con herramientas de GNU/Linux. Markdown no tiene un elemento integrador que agrupe los archivos en una unidad, por ejemplo un libro. Por ello utilizo como elemento de unión GitBook. En esta Web se puede consultar la documentación del curso en formato HTML y en dos idiomas.

Al principio GitBook permitía descargar la documentación en otros formatos. Posteriormente actualizaron la herramienta y sólo se podía consultar en formato HTML. Esta limitación, junto a la forma de tratar las traducciones, me animó a buscar otra herramienta alternativa para el curso. La ganadora fue Sphinx, la misma que usan en UBports, y supera las limitaciones que tiene GitBook. Es posible generar la documentación en diferentes formatos y gestionar bien las traducciones.

Curso en GitBook

Curso en GitBook

Las traducciones

El idioma base del curso ha sido el español y después el inglés. Al principio no pensaba que el curso tuviera mucha visibilidad pero a medida que pasaba el tiempo he visto que es importante tener también la documentación traducida al inglés. En GitBook había una carpeta independiente por idioma. Por esa razón las traducciones tenían diferente contenido. Con la ayuda de muchos usuarios me he encargado de mantener los dos idiomas y aunque no es mucho trabajo, también me quita tiempo de dedicación al curso.

Sphinx

Sphinx

Voy a seguir gestionando los idiomas pero con una pequeña modificación. El idioma base del curso será el inglés. Sobre esa base, se extraerán las cadenas de texto (igual que se hace en la traducción de aplicaciones) y se traducirán de forma independiente. De esta forma no tendré un proyecto independiente por idioma y se hará más fluido todo. La persona interesada en hacer una traducción sólo tendrá que descargar los archivos de traducción, traducirlos y luego pedir que se integren con el código original. Me permitirá centrarme en el contenido en inglés y en español y delegar las traducciones en otros usuarios.

Read The Docs

He pensado mucho si usaba un servidor de terceros (con un poco de publicidad ética) o mi servidor propio. De momento voy a usar el servidor de ReadTheDocs por las facilidades que da. Junto a la infraestructura, proporciona integración con GitLab. Al hacer un cambio en el código de la documentación, se compila de forma automática en el servidor. También genera la documentación en varios formatos e idiomas de forma automática. Este servidor muestra publicidad en un pequeño banner del menú lateral. Aunque me gustaría tener la documentación del curso sin publicidad, la dejaré de momento.

 

Curso en ReadTheDoc

Curso en Read The Docs

Resumen de los recursos

Entiendo que hay muchos cambios en los recursos del curso. Por eso os hago este pequeño resumen:

Conclusiones

Aún queda mucho trabajo antes de coger velocidad con el curso. Tengo que escribir de nuevo algunas partes y reorganizar la información. Para que sea más sencillo, publicaré todo el contenido del curso. Los capítulos antiguos tendrán la coletilla «Legacy» para poder diferenciarlos. Una vez esté el contenido actualizado para usar la versión de escritorio de Qt empezaré con las traducciones. Voy a intentar rehacer el menor contenido posible pero es normal que hayan algunos cambios.

El resumen del progreso lo haré de forma mensual aunque haré cambios en la documentación con más frecuencia. Podréis ver todos los cambios en el proyecto de GitLab del curso. Si tenéis cualquier duda no dudéis en preguntar usando los comentarios, el formulario de contacto o el grupo de Telegram del curso.

0 comentarios

Dejar un comentario

¿Quieres unirte a la conversación?
Siéntete libre de contribuir!

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.