¡Siempre es buen momento para aprender algo nuevo! Y más aún si se trata de añadir habilidades de programación a tu curriculum, e incluso mejor si se trata de un lenguaje de programación capaz de crear aplicaciones multiplataforma verdaderamente nativas. Por tanto, permíteme que te muestre una ruta de aprendizaje que puedes seguir durante los próximos 14 días… y estoy convencido de que al final del recorrido te sentirás seguro y capaz de comenzar a crear esas soluciones en las que siempre has pensado; ¡no importa si son para Desktop, Web, iOS o Raspberry Pi!
Día 1: ¡Arrancamos!
Empieza descargando Xojo en tu sistema operativo favorito. Puedes hacerlo gratis y puedes utilizarlo así tanto tiempo como quieras incluso para ejecutar y depurar tus aplicaciones desde el IDE (el entorno de desarrollo Xojo propiamente dicho). DE hecho, puedes descargar y utilizar el IDE de Xojo desde Windows, macOS y Linux.
Consejo: Puedes encontrar los Requerimientos del Sistema para ejecutar Xojo en tu sistema operativo favorito aquí.
Una vez descargado, arranque el IDE de Xojo y te encontrarás con una ventana de presentación dándote acceso a una gran cantidad de recursos, a tu disposición. Si este es tu primer contacto con Xojo, entonces la sección Getting Started es un buen punto por el cual comenzar.
De hecho, si estás interesado en cómo desarrollar apps Desktop, entonces dirige tu navegador aquí, y sigue los pasos del tutorial. ¡Puedes hacer lo mismo también con proyectos Web y iOS!
Consejo: Puedes encontrar las Guías de Inicio Rápido también en otros idiomas (así como otra serie de recursos, como manuales, cursos, tutoriales, vídeos, etc…) Así que, si prefieres acceder a estos en Español, Alemán, Italiano o Francés, probablemente quieras visitar esta sección en el área de documentación del sitio web de Xojo.
Podrás completar estos tutoriales en poco tiempo, y se centran en que tomes un primer contacto con las principales áreas del IDE, los editores, así como diseñar tus interfaces de usuario e interactuar con varios de los controles nativos disponibles y “listos para usar” en tus propias apps.
Mediante estos tutoriales también empezarás a aprender algunos conceptos fundamentales, como las Propiedades, Eventos e incluso escribirás tus primeras líneas de código utilizando para ello el lenguaje de programación Xojo.
Consejo: Tras completar los tutoriales, procura reproducirlos sin consultar la información en la web, haciendo variaciones e intentando comprender cómo se combinan todas las partes en un proyecto Xojo. Incluso puedes probar a realizar tus propios proyectos sencillos desde cero utilizando para ello otros controles.
Tras ello, mi consejo es que veas alguno de los múltiples vídeos disponibles aquí; en especial este.
Día 2: Fundamentos de Programación
No importa si ya conoces otros lenguajes de programación si es tu primera toma de contacto con uno. Para obtener los fundamentos del lenguaje de programación, te recomiendo que descargues el libro electrónico gratuito “Introduction to Programming with Xojo” (disponible en formatos PDF y iBooks).
Con este libro electrónico aprenderás el lenguaje de programación Xojo: variables, como utilizar algunas estructuras de programación como los bucles, las funciones y los parámetros, y mucho más (incluido tu primer contacto con el Depurador de Xojo que te permitirá encontrar y corregir los fallos de tu aplicación).
Lo mejor es que este libro electrónico está plagado de ejemplos y fragmentos de código que puedes reproducir… y deberías, porque escribir código es el mejor modo de familiarizarte con él y de retener los conceptos aprendidos.
No hay prisa, probablemente querrás tomarte tu tiempo para completar la lectura del libro electrónico y practicar con lo aprendido. Lo importante no es cuanto puedas avanzar en un sólo día, sino comprender y retener lo aprendido.
Puedes combinar con el Desktop Tutorial que puedes encontrar aquí. No te sientas mal si no llegas a comprender del todo lo que hace el código.
Día 3: Comenzar con la Guía del Usuario
Es el momento de profundizar un poco más en Xojo y todo lo que el IDE ofrece. Para ello deberías de dirigir tu navegador a la Guía del Usuario. En este punto es probable que alguno de los capítulos te resulten familiares, puedes repasarlos pero centrarte fundamentalmente en los capítulos y secciones que sean realmente nuevos para ti.
Al igual que con el libro electrónico “Introduction to Programming with Xojo”, no tienes por qué leer todo el manual en un día (no deberías de hacerlo, de hecho). Combina ambas lecturas a medida que avanzas en el desarrollo de pequeñas aplicaciones para poner en práctica lo ya aprendido. Estas no tienen por qué ser complejas, simplemente para acostumbrarte al IDE, los editores de Código y de Diseño, el Panel Inspector y el Depurador para que puedas hallar y corregir los, seguramente, fallos que encuentres a lo largo del camino en tu código.
Consejo: Continúa viendo los vídeos de la lista de reproducción “Getting Started” en el canal de YouTube de Xojo. De hecho, probablemente quieras suscribirte y recibir notificaciones sobre los vídes recién añadidos. Además, También es buen momento para comenzar a ver los vídeos disponibles en la lista de reproducción “Tutoriales Rápidos“, y que cubren temas relacionados con el desarrollo en Desktop, Web y iOS con Xojo.
Día 4: ¡Orientado a Objetos!
Como probablemente hayas descubierto a medida que avanzas por esta ruta de aprendizaje, el lenguaje de programación Xojo es fácil de aprender y de comenzar a utilizar. Pero es buena idea comenzar a pensar y escribir el código de modo que puedas reutilizarlo y evolucionarlo sin romper nada de lo que ya está hecho.
Tal y como ocurre con muchos otros lenguajes de programación, Xojo es un lenguaje de programación Orientado a Objetos. Esto significa que puedes encontrarte con una gran cantidad de conceptos que te resultan desconocido; y si bien el lenguaje de programación Xojo es realmente flexible, de modo que puedes hacer lo que deseas de formas muy diferentes, probablemente sea mejor si empiezas a pensar sobre el problema que quieres solucionar en tu código utilizando estos mismo principios…… o simplemente desde una forma de pensar “orientada a objetos”.
Para acelerar esa forma de pensar, te recomiendo que veas los vídeos “Object-Oriented Programming Concepts” y “Advanced Object-Oriented Programming Concepts“.
También puedes ver este tutorial breve para poner en práctica lo aprendido. De hecho te mostrará como hacer una de las primeras cosas que cualquier desarrollador necesitará hacer en algún momento: cómo modificar el comportamiento de un control ya disponible, de modo que se adecue mejor a una necesidad concreta… o bien los principales principios involucrados en la creación de tu propio control desde cero.
Día 5: ¡Echa un vistazo a los ejemplos!
En este punto deberías de sentirte lo suficientemente cómodo utilizando el IDE de Xojo y escribiendo tus propias aplicaciones utilizando para ello el lenguaje Xojo.
Si has seguido mis recomendaciones, es probable que incluso hayas logrado realizar aplicaciones un poco más complejas cada día; ¡pero seguro que aun quedarán una buena cantidad de dudas por cubrir! Este es un buen momento para examinar los proyectos de ejemplo proporcionados junto con la descarga de Xojo. Encontrarás 400 proyectos de ejemplo, y los encontrarás listados y categorizados por tema y área de interés; así que si estás buscando algún buen ejemplo acerca de como realizar algo en concreto… ¡este puede ser un buen punto de partida!
Puedes utilizarlos “tal cual”, modificar el código para adaptarlo a tus necesidades concretas o simplemente para aprender sobre una técnica concreta: archivos, bases de datos, Internet, comunicaciones, menús, controles…
Día 6: Bases de Datos
Xojo es tanto un IDE como un lenguaje de programación, pero la mayoría de las actuales aplicaciones y soluciones hacen un uso amplio de otras tecnologías, y el trabajo y uso de las bases de datos es probablemente algo esencial que debes aprender y utilizar.
En ese caso, Xojo también te proporciona herramientas. El framework de Xojo es lo suficientemente amplio de modo que puedes encontrar las clases que probablemente puedas necesitar, listas para usar. Por ejemplo, cuando se trata de aplicaciones que hagan uso de bases de datos, puedes elegir entre utilizar MySQL, PostgreSQL, Microsoft SQL Server o SQLite entre otras.
No te preocupes si no habías utilizado una base de datos antes. Entre la documentación disponibles, los vídeos y los tutoriales, encontrarás la información que puedes necesitar para tener tu proyecto listo y funcionando. Por ejemplo, es posible que encuentres interesante los cursos “SQLite Basics” y “SQLiteDatabase and iOSSQLiteDatabase for Beginners” y que te enseñarán como utilizar SQLite desde cero, incluso si no habías tenido experiencia previa trabajando con bases de datos.
Además, tienes un total de 11 vídeos bajo la lista de reproducción “Xojo Database” en nuestro canal de YouTube, y que comprende temas como el diseño de bases de datos, la creación de una aplicación basada en base de datos, PostgreSQL, ODBC, e incluso crear servicios web REST para trabajar con bases de datos remotas desde dispositivos móviles, por ejemplo.
Muchas de las aplicaciones que hacen uso de bases de datos precisan de la generación de informes en algún momento, y Xojo incorpora su propio Editor de Informes. Abre cualquiera de los ejemplos incluidos para iniciar tu propio “projecto de pruebas” desde cero, de modo que aprendas como funcionan los informes en Xojo. Aquí puedes encontrar un buen tutorial en vídeo para dominar los Informes con Xojo.
Día 7: Crea tu propio proyecto
Empieza a crear tu propio proyecto desde cero. No se trata de reproducir algunos ejemplos, sino de poner en práctica todas las piezas que componen una aplicación o solución completa. Seguro que aun tienes multitud de dudas sobre cómo hacer algo, y si este es el caso, entonces puedes recurrir a cualquiera de las múltiples ayudas disponibles en el IDE. Por ejemplo:
- Autocompletado: Comienza a escribir y el IDE te ayudará a completar el nombre de una función, método, clase o instancia de objeto. Incluso no tendrás que recordar el nombre de cada propiedad o método de una clase. Pulsa la tecla Tabulador y selecciónala desde el menú desplegable.
- Controles: Recuerda que el área inferior del panel Librería ofrece información sobre el propósito de cada control de interfaz de usuario en el framework, y que estos están agrupados por tipo de funcionalidad; de modo que sólo has de poner el apuntador del ratón sobre cualquiera de ellos para obtener una descripción sobre su cometido.
- Manejadores de Eventos: ¿No estás seguro sobre el Manejador de Evento que has de implementar en un control para que reaccione a la interacción del usuario esperada? El panel Add Handler es muy descriptivo sobre la misión de cada uno de los Eventos soportados en cualquiera de los controls. Sólo has de seleccionarlos en el listado y leer la información proporcionada.
- La Ayuda Contextual está en todas partes: sitúa el apuntador del ratón sobre el nombre de una función y verás los parámetros esperados así como sus tipos.
- Ayuda Global: por supuesto, puedes acceder también a la Ayuda General, donde podrás ver la documentación correspondiente a todas las Clases, conceptos, tipos de datos y palabras clave del lenguaje entre otros temas. Además, la documentación está repleta de código de ejemplo que simplemente puedes copiar y pegar en el Editor de Código para implementar una capacidad concreta (probablemente haciendo algunos cambios para adaptarlo a tu app).
Día 8: No te quedes bloqueado
Probablemente llegarán algunos momentos donde sientas que la información disponible no es suficiente como para solucionar el problema que tengas entre manos. Si es el caso, entonces te recomiendo que accedas al Foro de Xojo (si es que aun no lo has hecho) y escribas aquí tu dudas. No seas vergonzoso, la comunidad Xojo es uno de los mejores grupos de desarrolladores que puedas encontrar, y estoy convencido de que encontrarás la respuesta correcta en tiempo récord, no importa si eres un desarrollador experimentado o un recién llegado.
Es más, seguramente no seas el primero que se haya topado con un problema en concreto y a buen seguro que ya ha sido contestado con anterioridad en los Foros. Por tanto, si haces la búsqueda correcta, es más que probable que tengas la respuesta esperando en pocos segundos.
Consejo: Pide ayuda después de que hayas probado todo lo que ya conoces, otras estrategias basadas en algo nuevo aprendido, y tras haber buscado la respuesta en la Documentación de Xojo.
Día 9: Multiplataforma
Recuerda que Xojo es una herramienta de desarrollo multiplataforma, de modo que si estás desarrollando una aplicación Desktop tiene sentido desplegarla en tantos sistemas operativos como te sea posible. DE hecho, puedes compilar tu app para Windows, macOS y Linux. Esto significa que probablemente quieras mejorar la configuración de tu equipo para que puedas probar tus aplicaciones en otros sistemas operativos.
Puedes encontrar varias soluciones de terceros en cada uno de los sistemas operativos soportados, y mediante las cuales puedes crear máquinas virtuales capaces de instalar y ejecutar otros sistemas operativos junto con el sistema operativo de tu equipo. Por ejemplo, puedes elegir entre Parallels, VMware Fusion o VirtualBox en macOS.
Cualquiera de estos te permitirán instalar Windows y/o Linux en tu Mac y ejecutarlos en paralelo. Combina estas soluciones con el Depurador Remoto proporcionado junto con la instalación del IDE de Xojo y estarás listo para depurar tus proyectos en Windows o Linux desde el IDE ejecutándose en tu Mac (o viceversa).
Pero crear una solución multiplataforma también implica que necesitarás asegurarte de que tu interfaz de usuario se comporta como se espera en cada uno de los sistemas operativos; de modo que es probable que, en algún momento, el código deba de tomar un camino u otro en función de cuál sea el sistema operativo sobre el que se esté ejecutando. Revisa toda la documentación relacionada con la compilación condicional, o incluso sobre los Atributos de despliegue que puedes encontrar en la sección Atributos del Panel Inspector para elementos como clases, métodos o propiedades. Así puedes decidir qué elementos han de compilarse en función de cual sea la plataforma de despliegue.
Día 10: Temas Avanzados
A medida que avanzas en tu ruta de aprendizaje deberías de centrarte en temas más avanzados y que te resultarán de ayuda en el desarrollo de productos más complejos. Por ejemplo, es probable que estés interesado en dominar XojoScript, de modo que puedas ejecutar nuevo código Xojo de forma dinámica en una aplicación ya compilada; o incluso como automatizar tus compilaciones o ejecutar guiones para automatizar el IDE propiamente dicho.
En cuanto al código y lenguaje, también deberías de aprender sobre Patrones de Diseño, como por ejemplo Singleton y Observer entre otros.
Echa un vistazo a los Módulos, Interfaces, Delegados, Enumeraciones, Declares y los tipos de datos relacionados que te permitirán acceder a librerías externas desde tu código. También es buen momento para explorar diferencias como los elementos de proyecto Internos o Externos, añadir tus propias propiedades al Panel Inspector, así como al uso de Git, SVN o cualquier otra solución de versionado de código. ¡Todo ello pagará el esfuerzo!
Además de depurar tus apps, el IDE también incluye características para Analizar y Perfilar la ejecución del código de tu proyecto, permitiéndote así conocer donde se encuentran los principales cuellos de botella (en el caso de que existan) y puedas centrar tus esfuerzos en optimizar esas partes del código.
Día 11: Localización
Está bien si quieres que tus aplicaciones sean utilizadas únicamente por los usuarios de tu país, pero si quieres alcanzar la mayor cantidad de usuarios posible entonces deberías de comenzar a pensar sobre la localización. Esto comprende tanto la capacidad de ofrecer las diferentes cadenas de texto en diferentes idiomas, los mensajes, diálogos, y otros aspectos como la representación numérica, el símbolo de moneda, días inicial y final de la semana, etc.
Con Xojo tienes a tu disposición una buena cantidad de características que te permitirán lidiar con esto, desde propiedades de formato en los controles que aceptan la introducción de información por parte del usuario, a métodos y funciones que te permitirán realizar la conversión correcta mediante el uso de identificadores de país (Locales). Y cuando se trata de traducir las cadenas de texto de tu aplicación, entonces puedes echar mano de la utilidad Lingua.
Puedes encontrar una buena cantidad de información útil sobre localización con Xojo aquí.
Día 12: Refactorización
Compara el código que escribiste los primeros días con el nuevo que probablemente estés escribiendo con todo lo aprendido ahora. Probablemente veas algo que pueda hacerse mejor. ¡Hazlo! No te preocupe volver a escribir el código y optimizarlo tantas veces como consideres para que funcione más rápido, mejor y puedas reutilizarlo (de modo que sea más sencillo de mantener y evolucionar).
Esto es algo conocido como refactorización, y de hecho existen múltiples libros centrados en el tema. El IDE de Xojo incluye algunas opciones que te permitirán hacerlo, principalmente a través del menú contextual cada vez que seleccionas un elemento en el Navegador, un bloque de código o incluso mediante el panel de Buscar y Sustituir.
Día 13: Haz que el IDE de Xojo te haga sentir como en casa
A medida que avances en el uso de Xojo probablemente sientas la necesidad de cambiar algunas preferencias para que se adecue mejor a tus gustos. Echa un vistazo a fondo a los paneles de Preferencias y aquí podrás escoger desde el tipo de letra utilizado en el Editor de Código hasta los atajos de teclado que prefieres usar, el comportamiento del Navegador o incluso los colores de tu elección a utilizar en diferentes áreas del IDE.
Estas preferencias, entre otras, te permitirán sentirte más cómodo e incluso escribir código más rápido. Por ejemplo, ¿qué tal si prefieres que el Panel Inspector y la Librería se presenten en sus propias ventanas flotantes? ¿Supondría una ventaja para ti? ¿Y qué tal si editas los atajos del teclado para que se adapten mejor a la plantilla de caracteres en el idioma de tu teclado?
Day 14: ¡Sigue Aprendiendo!
No te detengas aquí, ¡es sólo el inicio del viaje! A medida que escribas más código también sentirás la necesidad de aprender nuevas cosas, ¡y hay decenas de recursos a tu disposición! Por ejemplo, el Blog de Xojo está repleto de información y tutoriales útiles sobre cualquier tema que puedas imaginas, al igual que ocurre también con el canal de Xojo en YouTube, los foros de Xojo… ¡y también los blog y recursos proporcionados por otros desarrolladores!
Un buen lugar que puedes visitar es el Portal de la Comunidad y también la sección Open Source del sitio web de documentación. Aquí encontrarás una buena cantidad de librerías listas para usar creadas por reputados desarrolladores Xojo, listas para descargar, inspeccionar y, por tanto, ¡de las que puedes aprender! Esto mismo es lo que ocurre con los vídeos de las sesiones correspondientes a pasadas XDC, la conferencia de desarrolladores Xojo más importante del año.