Algunos de mis lectores me han preguntado y, ya que es un tema que me encanta, aprovecho para enseñárselo por si esto además les anima a que aprendan a programar que es supergenial. Aunque mi prioridad principal son las obras de mi nueva casa, ya que hay ratos sueltos o días que no puedo ir estoy aprovechándolos para crear un software que ya verán que tiene características bastante originales.
La mayoría de programas o apps que todo el mundo usa son "cajas aisladas". Tienes un editor de texto, por ejemplo, o un programa para ver vídeos, que hace lo que hace y ya. Yo estoy creando algo que está un nivel por encima: se trata de un "ecosistema", o un "entorno de sinergias" donde puedes meter apps o programas que hagas, y el sistema los detecta (siempre que cumplan unos requisitos) y los conecta a los demás programas que estén detectados como compatibles con el ecosistema. Claro, esto para ti en tu casa en privado no tiene mucho interés; pero si tienes una empresa, o estás en una asociación o una organización con otros que comparten actividad e información, es una súper idea y en seguida verán por qué.
Por ejemplo: tú tienes a tus usuarios registrados (en la app de usuarios), y decides hacer un curso (lo creas en la app de eLearning y le añades los usuarios registrados que quieras). ¿Hace falta que tengas un chat del curso en la app de eLearning? No, porque puedes simplemente irte a la app de chats y decirle "créame un chat para este curso y mete a estos usuarios: X, Y y Z". O si en la aplicación de noticias publicas una noticia sobre conciliación laboral/familiar y quieres que la lean solo los usuarios que tengan hijos, puedes decirle a esa aplicación de noticias "esta noticia solo se la enseñas a los usuarios que estén en los grupos A, B o C. Pregúntale a la app de usuarios que ella es la que gestiona quién es quién".
¿Empiezan a ver la utilidad brutal que puede tener esto? Hasta aquí la idea no es nueva: es lo mismo que por ejemplo hace Google cuando te da por una parte email, por otra te registras (con tu email) en YouTube o en tu móvil Android, etc. Se trata de que, cuando vas a meter una app nueva en el sistema, hay cosas de las que no te tienes que preocupar porque ya tienes otras apps que se encargan de gestionar esa parte, y solo tienes que centrarte en lo tuyo (ejemplo: YouTube solo muestra vídeos) y mientras que el resto te lo ahorras y solo preguntas (ejemplo: YouTube no necesita un registro de usuarios, simplemente le pregunta a GMail si tiene un registrado determinado email con determinada contraseña, y GMail le dice "autorizado" o "no autorizado" para continuar).
Vale, pero entonces por qué estoy haciendo yo una cosa que ya existe? Bueno, es que la idea que he tenido yo sí que es nueva; y además va a ser increíblemente útil para determinadas empresas/organizaciones. Todo lo que existe de este tipo hasta ahora te obliga a algunas de estas cosas: 1) a contratar servicios externos (Google, Microsoft, etc), 2) a tener a informáticos o gente con conocimientos muy avanzados (o que desde cero se pasen muchísimas horas valiosas de trabajo aprendiendo) sobre cómo instalar y manejar las herramientas que ya existen, o 3) instalar cosas que luego no vas a tener ni idea de dónde están o cómo puedes manejar para copias de seguridad por si pasa algo, etc (más horas de aprendizaje y de romperte la cabeza cuando no sepas algo).
Mi software no requiere en absoluto conocimientos avanzados de nada: sí ser un poquito "mañoso" con los ordenadores y seguramente hay detalles que tendrás que googlear (detalles no de mis programas sino de cómo se contrata un servidor y te conectas a él para subir tus cosas), pero en lo que es mi suite en sí todo está pensado para que 1) no tengas que instalar absolutamente nada, solo copiar la carpeta y hacer doble-click en el programita para que todo funcione instantáneamente y por arte de magia tus usuarios ya se puedan conectar y empezar a trabajar; 2) no tengas que depender de terceros que guarden tu información privada ni pagarle nada a nadie; 3) si tienes que hacer copias de seguridad o llevarte todo o partes a otro sitio solo es cosa de copiar unas carpetas súper fáciles de encontrar; y 4) si el día de mañana quieres aprovechar todo esto para desarrollar tus propias aplicaciones puedes hacerlo con cualquier tecnología o lenguaje que te guste solo teniendo en cuenta unos mínimos requisitos chorra para que el sistema pueda reconocer tu programa e integrarlo con los demás. Booom.
Les voy a ahorrar los detalles técnicos, y solo les enseñaré un ejemplo gráfico de lo que llevo hecho hasta ahora. Mi sistema detecta nuevas aplicaciones "instaladas" (no se instala nada, solo se copian a una carpeta común de apps) y que cumplen los requisitos para ser reconocidas (básicamente: un icono, un nombre de app, descripción y un par de cosillas más). El administrador del sistema tiene una ventanita donde puede elegir cuáles de las aplicaciones reconocidas quiere que estén disponibles para sus usuarios...
... Y, solo con marcar o desmcarcar, sin reiniciar nada, los usuarios ven que su lista de aplicaciones disponibles se actualiza sola por arte de magia:
No merece la pena enseñárselo ahora pero todo tiene versión móvil, aunque en un entorno profesional lo normal es que la gente trabaje con su pc de escritorio o en todo caso con un portátil. En fin, me queda mucho trabajo pero estoy disfrutando mucho no solo con la programación (que no me cansaré de recomendarles aprender) sino con el diseño gráfico y las soluciones de experiencia de usuario. Como parece que lo de la casa me va a llevar aún un tiempo más seguiré con esto a ratos, y les enseñaré el resultado cuando toque.