Tambien tengo recursos gratuitos para el Curso en el Blog
Es importante mencionar, que el curso tambien tiene el formato en libro con el 100% del contenido del mismo, es decir, el curso es equivalente al libro.
En este curso vamos a tocar los fundamentos para crear aplicaciones de escritorio empleando tecnologías web, de tal manera que vamos a crear aplicaciones web para luego darle funcionamiento de aplicaciones de escritorio nativas como serían:
Electrón es un framework para Node que nos permite crear aplicaciones de escritorio empleando tecnologías web mediante un proyecto en Node; consta de dos módulos que serían el lado del servidor con Node y el lado del cliente que es simplemente un navegador web basado en el proyecto de software libre de chromium.
Comenzamos desde la instalación de los componentes básicos que serían nuestro Node y un editor que en nuestro caso será Visual Studio Code.
Luego vamos a crear varias aplicaciones web para conocer y aprender las características de Electrón.js, aplicaciones con JavaScript nativo y también vamos a aprender a incluir aplicaciones creadas en Vue mediante la Vue Cli en nuestro electrón.
Vamos a aprender a incluir paquetes o módulos que son de Electrón.js, como lo es Electrón DB y también de terceros, es decir, que no son propias de Electrón como lo son Bootstrap en su versión 4, Vue Material, fontawesome y mucho mas contenido.
También explotamos componentes del propio framework como sería el pase de mensajes entre los módulos, modo debug y demostraciones entre funciones en base a promesas con las bloqueantes, por ejemplo, para mostrar un diálogo.
Lo interesante de Electrón no es propiamente el framework, si no el hecho que tenemos creadas nuestras apps web y que la podemos exportar fácilmente a una app de escritorio y darle funcionalidades de una app de escritorio y con esto expandir nuestras aplicaciones a este tipo de plataforma.
Como te mencionaba en un inicio, no es necesario que tengas conocimientos en Node, solamente conocimientos básicos de programación, programación orientada a objetos y por supuesto, tener un computador, tenemos una sección de repaso o introducción a Node y te damos todo lo necesario para iniciar con esta tecnología para luego poder crear nuestras apps de escritorio; a continuación, la presentación del curso:
En este curso vas a aprender a crear aplicaciones de escritorio multiplataforma empleando Electron.js, que está disponible para Windows, Linux o Mac; crear menús y por supuesto, la propia aplicación que vas a exportar para estos sistemas operativos.
Vamos a crear múltiples aplicaciones para ir probando diversas características de Electron.js; instalar paquetes para potenciar el desarrollo, manejar un sencillo esquema de base de datos, editor de texto y por supuesto, vamos a integrar Vue con Electron.js en un solo proyecto.
Lo grandioso que tiene estas herramientas como lo son Electron.js, es que puedes emplear todos tus conocimientos que ya tengas para desarrollar tus aplicaciones web, para crear aplicaciones de escritorio; tecnologías con Vue, Bootstrap, Material Vue, JavaScript nativo (que lo vemos en el curso) y todo lo que conozcas, lo puedes emplear con Electron.js.
Vamos a crear proyectos mediante Vue Cli e incorporar nuestro Electron.js para que todo funcione de manera conjunta; vamos a extender las aplicaciones con plugins, ya sean para Electron.js o para la app web que estamos embebiendo a nuestro Electron.js
En este curso vamos a trabajar con Electron.js; que lo puedes ver como si fuera el esqueleto de un ser vivo, es decir, el que mantiene nuestra app, pero recuerda que la parte más importante, y la que mayor tiempo consume (y que por lo tanto consume en el curso) es la creación de la app como tal, la app web, la cual crearemos desde cero e integraremos con Electron.js para darle características de una aplicación de escritorio.
Este curso es para cualquiera que quiera comenzar a desarrollar con Electron.js; no se requieren conocimientos previos de otros marcos de JavaScript, aunque debe conocer el desarrollo básico de Node.js, así como HTML, CSS y JavaScript.
Este libro está dirigido a cualquiera que quiera comenzar a desarrollar con Electron.js; no se necesita ningún conocimiento previo en otros frameworks JavaScript, aunque si debes de conocer cómo desarrollar Node.js de manera básica, al igual que en HTML, CSS y JavaScript:
Por aquí tienes el listado completo de clases que vamos a cubrir en el libro y curso:
Presentación del curso
Vamos a presentar e instalar todo el ecosistema que necesitamos para crear una sencilla aplicación en Node.
Vamos a presentar el ambiente necesario para seguir el curso, que seria instalar Node y de manera opcional un IDE como VSC.
Vamos a instalar un paquete mediante NPM en Node.
Creando nuestro primer ejemplo
Vamos a presentar el ambiente necesario para seguir el curso, que seria instalar Node y de manera opcional un IDE como VSC.
Vamos a crear un proyecto con Node para empezar a trabajar.
Vamos a crear la primera app empleando Electron.js.
Vamos a explicar como esta compuesta una app en Electron, que seria un módulo de node para el backend y una version de chromium para el frontend.
Vamos a crear el proyecto en Node e instalar Electron.
Vamos a crear un Hola Mundo en Electron.
Daremos algunos experimentos con CSS y HTML.
Daremos algunos experimentos con CSS y HTML más elaborados.
Vamos a instalar Bootstrap en la aplicación.
Vamos a crear las columnas para la app de tipo chat.
Vamos a abrir la ventana de desarrolladores de Google Chrome.
Vamos a realizar el diseño del listado de chats.
Vamos a realizar el diseño para el detalle de los chats.
Vamos a realizar el diseño del campo para enviar mensajes.
Vamos a crear el listado de contactos en base a un json en JavaScript.
Vamos a crear el listado de chat en base a un json en JavaScript.
Vamos a presentar los eventos en Electron para la app y ventanas.
Vamos a integrar node en el proceso de renderizado.
Vamos a enviar mensajes entre procesos.
Vamos a enviar mensajes entre procesos.
Vamos a inicializar los datos suministrados desde el PP en el PR.
Vamos a realizar una demo de una segunda forma de inicializar datos provistos desde el PP en el PR.
Crearemos el evento click en los contactos para cargar los chat según el contacto seleccionado.
Vamos a crear nuestra app de notas con la cual vamos a aprender los componentes básicos de electron.
Vamos a hacer responsivo o adaptativo el editor.
Vamos a crear el menú de opciones de nuestra app.
Vamos a conocer más características de los menús el electron.js.
Vamos a activar el modo debug de la app para mostrar y ocultar opciones según el modo.
Vamos a ver cómo podemos crear opciones para el menú según el SO del cliente.
Vamos a conocer como podemos crear atajos de teclado en electron.
Vamos a generar nuestras apps para ambientes de desarrollo y producción.
Intrgracion con Node
Vamos a aprender a comunicar los dos módulos o procesos mediante mensajes; mandando mensajes desde el proceso de renderizado al proceso principal.
Vamos a aprender a comunicar los dos módulos o procesos mediante mensajes; mandando mensajes desde el proceso principal al proceso de renderizado.
Vamos a aprender a comunicar los dos módulos o procesos mediante mensajes; mandando mensajes desde el proceso principal al proceso de renderizado.
Vamos a dar formato al texto desde el proceso principal, mandando mensajes al proceso de renderizado.
Vamos a conocer los eventos en la aplicación; específicamente el evento ready.
Vamos a capturar los atajos de teclado para poder pasar mensajes.
Vamos a aprender a mostrar los diálogos de electron.
Vamos a hacer una sencilla demostración en el uso de los diálogos las promesas con los asíncronos.
Vamos a aprender a guardar un archivo y abrirlo desde el editor.
Vamos a guardar la data que contenga el editor en el archivo.
Vamos a abrir o cargar el archivo desde el editor.
Vamos a personalizar el editor con código HTML y JavaScript.
Vamos a hacer una pequeña reestructuración de la app.
Vamos a definir opciones para guardar y abrir el archivo desde el menú.
Vamos a cambiar el título de la app.
Vamos a solucionar la tarea anterior
Vamos a abrir un archivo mandando un mensaje desde la página web.
Vamos a configurar el nombre de la app junto con el nombre del archivo al abrir un archivo desde la app.
Vamos a permitir la carga de archivos mediante el drag and drop.
Código fuente
Vamos a crear la estructura base de nuestro proyecto.
Vamos a crear el formulario en HTML para crear una tarea.
Vamos a crear una lista para las tareas.
Vamos a registrar la tareas cada vez que nuestro usuario agregue una desde el formulario.
Vamos a recargar las tareas al momento de tener una nueva tarea.
Vamos a mejorar el diseño de nuestra app instalando el toolkit de Bootstrap con NPM.
Vamos a aplicar los cambios en nuestra app para que luzca como los componentes de Bootstrap.
Vamos a hacer algunos cambios sencillos para mejorar la usabilidad de nuestra app.
Vamos a aprender a detectar la tecla de enter mediante JavaScript.
Vamos a instalar una iconografía para la app.
Vamos a definir nuestro icono para eliminar una tarea.
Vamos a eliminar elementos desde el listado.
Vamos instalar un modulo o paquete para tener un esquema sencillo de base de datos.
Vamos a crear una tabla para guardar los items.
Vamos a crear un método para insertar registros en la bd.
Vamos a crear la tabla mediante la función que nos provee electron-db, pero que se encuentre en nuestro proyecto.
Vamos a mandar mensajes desde Proceso de Renderizado hasta el proceso principal para insertar la tarea del usuario.
Vamos a aprender a mandar múltiples argumentos para pasar un mensaje.
Vamos a hacer una demostración para mandar mensajes de tipo objeto al proceso de renderizado.
Vamos a crear una función para obtener todos los items.
Vamos a crear un método para actualizar un item.
Vamos a crear una función para eliminar un item.
Vamos a crear un método para obtener un item dado el ID.
Vamos a crear un método para obtener las tareas mediante el pase de mensajes.
Vamos a crear una función para recargar el listado.
Vamos a aprender a borrar un item en la vista.
Ahora, vamos a borrar el item desde la base de datos.
Vamos instalar Vue Cli para poder crear un proyecto en Vue.
Vamos a explicar como funciona un proyecto creado por Vue Cli y donde puedes obtener más recursos.
Vamos a instalar el plugin de router mediante la Vue Cli.
Vamos a integrar electron a nuestro proyecto de Vue.
Generamos el build de la aplicación en producción y realizaremos algunas pruebas.
Vamos a crear una simple lista de elementos empleando Vue.
Vamos a crear una simple lista de elementos empleando Vue.
Vamos a crear el proceso para eliminar tareas desde el listado.
Vamos a crear el proceso para editar tareas desde el formulario.
Vamos a hablar de la integración de Electron con Vue.
Mandaremos datos desde el proceso principal para que sean consumidos desde la app en Vue.
Vamos a realizar la operación de crear un ítem en el proceso principal.
Vamos a realizar la operación de editar un ítem en el proceso principal.
Vamos a realizar la operación de eliminar un ítem en el proceso principal.
Vamos a conocer el paquete de Electron DB para simular una base de datos mediante un archivo JSON.
Vamos a realizar las configuraciones iniciales para trabajar con Electron DB.
Vamos a realizar las operaciones para obtener todos los items.
Electron DB: Crear
Electron DB: Actualizar
Electron DB: Eliminar
Vamos a crear un ítem desde Electron DB.
Vamos a realizar la operación de actualizar.
Vamos a realizar la operación de eliminar.
Vamos a instalar el paquete para crear y consumir la Rest Api.
Vamos a crear el recurso rest para obtener el listado de todos los registros.
Mandaremos datos desde el proceso principal para que sean consumidos desde la app en Vue.
Vamos a configurar los cors para poder consumir la rest api.
Vamos a realizar la operación de crear un ítem en la rest api y consumirla desde la aplicación en Vue.
Vamos a realizar la operación de editar un ítem en la rest api y consumirla desde la aplicación en Vue.
Vamos a realizar la operación de eliminar un ítem en la rest api y consumirla desde la aplicación en Vue.
Vamos a recargar todo el listado de la aplicación cada vez que realicemos una operación de crear, actualizar o eliminar.
Vamos a configurar MySQL en el proyecto con la rest api.
Vamos a realizar la operación de obtener el listado de ítems en la rest api y la base de datos MySQL.
Vamos a realizar la operación de crear un ítem en la rest api y la base de datos MySQL.
Vamos a realizar la operación de editar un ítem en la rest api y la base de datos MySQL.
Vamos a realizar la operación de eliminar un ítem en la rest api y la base de datos MySQL.
Configuraremos los CORS en la aplicación de Electron para protegerlo mediante el origen.
Configuraremos los CORS en la aplicación de Electron para protegerlo mediante el origen.
Vamos a abrir una ventana en una ventana nueva.
Vamos a obtener el ID de una ventana para poder obtener referencia a la misma.
Vamos a abrir una ventana en formato modal.
Vamos a crear una ventana no reescalable.
Vamos a crear una tabla para manejar los usuarios.
Vamos a crear una ventana adicional desde Electron que abramos desde la aplicación en Vue.
Vamos a crear el recurso para crear un usuario.
Vamos a crear el recurso para iniciar sesión.
Vamos a crear la estructura base para crear un usuario.
Vamos a crear la estructura base para iniciar sesión.
Vamos a crear una propiedad para almacenar los datos de usuario de manera global.
Vamos a configurar mensajes de confirmación y redirecciones al momento de hacer o acceder a los componentes actuales del usuario.
Vamos a cerrar las ventanas al momento del login y registro.
Vamos a crear el SQL para la tabla de tokens del usuario.
Vamos a generar el token en la base de datos.
Vamos a crear un módulo para generar y consultar el archivo en donde vamos a guardar el token de auth.
Vamos a crear un método que se encargue de consultar si el token existe el mismo.
Vamos a escribir el token en un archivo desde la aplicación en Vue.
Vamos a consumir el token guardado en el archivo desde la aplicación de Vue.
Vamos a devolver mediante un evento de Electron los datos del usuario junto con el token.
Vamos a realizar validaciones adicionales al momento de buscar el usuario por el token.
Vamos a detectar cuando realizamos el login de manera correcta, recargar el token de la instancia principal de Vue.
Vamos a mostrar un dialog cuando las credenciales son incorrectas.
Vamos a registrar los datos de acceso en la ventana en Vue.
Vamos a hacer el proceso para cerrar la sesión que sería destruir el token y borrar el registro en la base de datos.
Vamos a instalar y configurar Bootstrap 5 por NPM en el proyecto en Vue.
Incluiremos el componente de container.
Vamos a configurar el listado de tareas.
Vamos a crear el header de su aplicación.
Vamos a crear el diseño para el formulario de crear una tarea.
Vamos a crear el diseño para el formulario de login y registro.
Vamos a realizar un pequeño cambio para ocultar los enlaces de usuario en registro o login.
Vamos a aprender a recargar la ventana del BrowserWindow al aplicar cambios en el proceso principal.
Vamos a conocer otro ejemplo del paquete anterior aplicado a otra aplicación.
Vamos a conocer otro tipo de herramienta con el cual, podremos recargar la aplicación de Electron al detectar cambios.
Vamos a conocer otro tipo de herramienta con el cual, podremos recargar la aplicación de Electron al detectar cambios.
Vamos a conocer otro paquete para aprender a recargar la ventana del BrowserWindow al aplicar cambios en el proceso principal.
Vamos a conocer como trabajar con los archivos .env y variables de entorno en general en Electron.js.
Configuraremos el token para que funcione con la rest api.
Vamos a colocar la lógica condicional para usar el token de acceso en Electron y el navegador.
Vamos a instalar un plugin de cookie y configurarlo a nivel de la aplicación con los datos de usuario y el token.
Vamos a personalizar el tipo de ruta dependiendo en donde se ejecute la aplicación de Vue.
Daremos una demostración sobre las variables de entorno en Vue.
Vamos a adaptar los enlaces de usuario si se usan desde un navegador de Vue.
Vamos a habilitar el login vía Cookie.
Vamos a implementar la función de cerrar sesión para que funcione desde un navegador.
Vamos instalar Vue Cli para poder crear un proyecto en Vue.
Vamos a crear un proyecto empleando Vue Cli
Vamos a explicar como funciona un proyecto creado por Vue Cli y donde puedes obtener más recursos.
Vamos a integrar electron a nuestro proyecto de Vue.
Vamos a generar un build de la app de Vue, la app de producción de Vue.
Vamos a corregir el path de salida con el cual referencia a los distintos recursos la app de producción.
Vamos a activar los dos servidores, el de Vue y la app de Electron para tener un modo de desarrollo en ambos ecosistemas.
Vamos a instalar el plugin de router mediante la Vue Cli.
Vamos a empezar a trabajar con Vue Router para la navegación entre páginas
Vamos a crear un componente para manejar las tareas de nuestra app.
Vamos a crear una simple lista de elementos empleando Vue.
Vamos a instalar Vue Material, para mejorar la presencia de nuestra app.
Vamos a habilitar la consola de JavaScript programáticamente mediante electron.
Vamos a configurar el Vue Material en nuestro proyecto.
Vamos a reemplazar o modificar el listado anterior con el de un componente de Vue Material.
Vamos a definir algún ícono para nuestro listado.
Vamos a conocer cuales son los colores por defecto que dispone Vue Material.
Vamos a conocer el uso del evento click en Vue.
Vamos a mostrar un dialog o modal de Vue Material.
Vamos a conocer el evento que tenemos sobre los dialogs de Vue Material que se ejecutan cuando son confirmados los mismos.
Vamos a guardar los datos del Array mediante el modal.
Vamos a definir un botón para borrar un item en particular.
Vamos a actualizar un elemento, para eso vamos a colocar un botón sobre los items para realizar esta acción y a posterior mostrar el modal.
Vamos a darle un poco de enfoque 3D a la app, colocando un sombreado al componente de listado.
Vamos a definir un tooltip o mensaje de ayuda a nuestros botones.
Vamos a conocer un poco el ciclo de vida de una aplicación en Vue.
Vamos a configurar electron DB para ver un enfoque de como podemos emplear módulos de electron desde Vue.
Vamos a obtener el listado de elementos desde nuestro electron-db.
Vamos a aplicar los cambios cuando guardemos un elemento en electron-db.
Vamos a aplicar los cambios cuando actualicemos un elemento en electron-db.
Vamos a aplicar los cambios cuando borremos un elemento en electron-db.
Código fuente de la sección
Vamos a instalar los módulos necesarios para crear nuestra Rest Api con MySQL.
Vamos a crear las configuraciones necesarias para que funcione la Rest Api.
Vamos a crear la base de datos en MySQL y la tabla de tareas.
Vamos a crear la conexión a la base de datos MySQL.
Vamos a hacer una petición para obtener todos los registros.
Vamos a obtener un registro desde la base de datos.
Vamos a insertar un registro en la base de datos.
Vamos a actualizar un registro desde la base de datos.
Vamos a borrar un registro desde la base de datos.
Vamos a realizar una petición asíncrona mediante JavaScript para obtener todos los registros empleando los fetch de JavaScript.
Vamos a habilitar los CORS en nuestro express para permitir compartir recursos con la app de Vue.
Vamos a proteger la Rest Api para que solamente nuestra app en Vue pueda consumir los datos de la Rest.
Vamos a crear una tarea en la Rest Api mediante una petición fetch.
Vamos a recargar el listado una vez creada la tarea en la Rest Api mediante una petición fetch.
Vamos a actualizar una tarea en la Rest Api mediante una petición fetch.
Vamos a borrar una tarea en la Rest Api mediante una petición fetch.
Vamos a crear un diálogo para confirmar la tarea a eliminar.
Vamos a instalar axios para realizar peticiones en vez de fetch.
Vamos a adaptar nuestro proyecto para que trabaje con axios.
Código fuente de la sección
Vamos a crear un módulo para generar y consultar el archivo en donde vamos a guardar el token de auth.
Vamos a crear un método que se encargue de consultar si el token existe de manera asíncrona.
Vamos a modificar la función anterior para que funcione de manera síncrona.
Vamos a crear la estructura de la base de datos para manejar la autenticación.
Vamos a aplicar algunas reglas y definir algunos datos iniciales en la base de datos.
Vamos a crear el query y el recurso rest para trabajar con el token de sesión.
Vamos a crear el query y el recurso rest para trabajar con el login.
Vamos a desarrollar otras operaciones en la función de login.
Vamos a generar un recurso y su método get para obtener el detalle del usuario dado el token.
Vamos a crear la ventana mediante un componente de Vue para realizar el login.
Vamos a generar un loading bastante sencillo al momento de realizar el login.
Vamos a crear una función para abrir una ventana modal para el login mediante un botón.
Vamos a quitar unos enlaces de navegación SOLO en la ventana de login.
Vamos a cerrar la ventana de login al dar click sobre un botón.
Vamos a mover todo el código que tenga que ver con el login al módulo correspondiente.
Vamos a crear la petición axios para hacer el login.
Vamos a registrar el token de acceso en el archivo.
Recuerda que para activar el loading que creamos para la ventana de login: this.loading = true; axios .post("http://localhost:3000/login", data) .then((res) => { console.log(res.data.id); this.loading = false});
Vamos a pasar el token/mensaje desde el Proceso Principal hasta el Proceso de Renderizado.
Vamos a crear una función para saber si estamos autenticados o no.
Vamos a aprender a trabajar con propiedades globales desde el root.
Vamos a crear la lógica para cerrar la ventana de login cuando fue exitoso el login desde Login.vue
Vamos a mostrar un dialog de MaterialVue cuando las credenciales son incorrectas.
Vamos a detectar cuando realizamos el login de manera correcta, recargar el token de la instancia principal de Vue.
Vamos a cambiar algún aspecto de la interfaz, por ejemplo, ocultar el botón de login cuando el usuario está autenticado.
Vamos a hacer el proceso para cerrar la sesión que sería destruir el token y borrar el registro en la base de datos.
Código fuente
Vamos a crear la aplicación básica en Vue 3 y agregarle Electron.js
Vamos a crear un proyecto web en Firebase.
Vamos a crear el esqueleto de la app en Vue con el componente de navegación.
Vamos a crear una sencilla página para realizar el login.
Vamos a configurar el proyecto en Firebase para lograr la autenticación.
Vamos a configurar nuestro proyecto en Node con Firebase, de tal manera, que cuando demos un click al botón de login mandemos la petición a Firebase.
Vamos a capturar los datos devueltos desde la plataforma de Firebase en la app localmente en Vue.
Vamos a crear la estructura de la base de datos para los grupos.
Vamos a crear el evento escuchador para detectar los cambios en la data y obtener el primer listado.
Vamos a crear el listado de grupos en una página de Vue.
Vamos a crear la página para los mensajes con pase de parámetros por la url.
Vamos a crear la base de datos o tabla con algunos mensajes de prueba para el chat.
Vamos a crear la función que se encargará de obtener los mensajes de la tabla creada anteriormente.
Vamos a mostrar los mensajes por habitación en tiempo real en el nuevo componente para mostrar los mensajes.
Vamos a enviar un mensaje desde la app en Vue y guardarlo en Firebase.
Vamos a guardar información del usuario autenticado en una propiedad global o en la raíz.
Vamos a registrar información del usuario al momento de enviar un mensaje.
Vamos a registrar la fecha al momento de guardar el mensaje.
Vamos a proteger la página de chat para que tengamos que estar autenticados para acceder a la misma.
Los siguientes vídeos los puedes tomar como opcional ya que son temas netamente estéticos que ya hemos tratado anteriormente.
Vamos a subir la app en un repositorio tal cual está para poder editarla en cualquier momento e implementar el layout de la misma como nosotros queramos.
Vamos a instalar y emplear Bootstrap 5 para nuestra app.
Código Fuente
- Andrés Cruz
Desarrollo con Laravel, Django, Flask, CodeIgniter, HTML5, CSS3, MySQL, JavaScript, Vue, Android, iOS, Flutter
Acepto recibir anuncios de interes sobre este Blog.
!Cursos desde!
10$
En Udemy
Quedan 4d 00:23!
!Cursos desde!
4$
En Academia
Ver los cursos!Libros desde!
1$
Ver los libros