🏛️ Un poco de historia
A lo largo de estos cuatro años, hemos trabajado con una gran variedad de lenguajes y tecnologías: desde Android e iOS nativo a React Native 📱; desde NodeJS con Express, pasando por Go, PHP, hasta Ruby on Rails 🚀; y desde jQuery hasta React o Angular. Todo esto con un objetivo claro: explorar, aprender y seleccionar las herramientas más adecuadas para cada proyecto.
Confesión rápida: le tenemos un cariño especial a Ruby on Rails 💖. Lo hemos usado desde la universidad, y desde hace un año, es nuestra tecnología predilecta en casi todos los proyectos. Al principio, fue difícil para algunos miembros del equipo, pero los resultados que vimos en términos de velocidad de desarrollo, calidad del código y gestión de proyectos nos convencieron de que era la decisión correcta
🛠️ Interfaces complejas
Ruby on Rails utiliza archivos JavaScript para mejorar las interfaces HTML de forma predeterminada. Esto funciona perfecto para interfaces simples como formularios, tablas y dashboards estáticos 📊. Sin embargo, en proyectos que requieren interfaces interactivas y dinámicas (es decir, que no se recarguen tras cualquier acción), usar solo HTML + JavaScript/jQuery puede volverse un rompecabezas 🧩 lleno de listeners, DOM poco elegantes y problemas de compatibilidad. 😖
⚙️ Webpacker + React al rescate 🦸♂️
Aquí es donde entran dos gemas: Webpacker y React-Rails 🏆.
• Webpacker mejora o reemplaza el pipeline tradicional de Rails, permitiendo que todos los assets se gestionen a través de Webpack, lo que acelera la compilación ⚡ y agrega un montón de funcionalidades.
• React-Rails, por su parte, nos permite inyectar componentes React en archivos .html.erb con gran facilidad. ¡Es una combinación explosiva! 💥
🚀 Manos a la obra
Imagina que estás creando una aplicación web con formularios estándar de texto, fechas e imágenes 📝. Para esto, puedes confiar tranquilamente en el scaffold de Rails.
Sin embargo, si tu aplicación necesita interfaces más interactivas y dinámicas (como la edición de permisos sin recargar la página), es fácil implementar una solución más elegante con las herramientas que mencionamos. 😎
Ejemplo: si en un formulario de creación de usuarios quieres añadir la edición de permisos y que estos se actualicen automáticamente sin tener que hacer un submit, Ruby on Rails con jQuery/JavaScript podría complicarse bastante. Aquí entra React para salvar el día. 💡
🧩 ¿Y con React?
Si implementamos lo mismo con React (por ejemplo, usando React 16 + Material UI), conseguimos una serie de ventajas:
1. Toda la lógica en un solo archivo 📁.
2. La arquitectura orientada a componentes de React simplifica mucho el manejo del DOM, enfocándose en estado y propiedades (state y props).
3. El manejo de errores es más limpio y elegante 🎨.
4. Además, puedes acceder a millones de paquetes open source que enriquecen tu aplicación: Redux, Axios, Sagas… ¡y muchos más! 🌐
Resultado: un formulario de permisos totalmente encapsulado en un archivo (como PermissionsForm.jsx) que gestiona la vista, la captura de inputs, el envío de datos al servidor y el manejo de errores, ¡todo desde un solo lugar! 🛠️
¡Gracias por acompañarnos hasta aquí! 🙌 Estamos encantados de compartir lo que hemos aprendido en ResIT, tanto en tecnología como en la relación con clientes y usuarios. Nos emociona ver cómo Rails sigue evolucionando, y con la inclusión de Webpack en la versión 6, esperamos ver muchas más novedades.


