Varias consultas Xojo

Buenos das,

Quisiera haceros varias consultas:

Querra hacer un programa de puntos de fidelizacin, en la que aparezcan la tabla clientes y otra de movientos para ir aadiendo y retirando puntos cada vez que un cliente haga una compra.

La estaba haciendo con VFP y Firebird, pero al descubrir Xojo y ver algn ejemplo que viene incluido en el programa, me ha parecido mucho ms esttico y con ms posibilidades en un futuro para compatibilizarlo con una aplicacin web o una app para mvil. Mi intencin sera continuar desarrolando poco a poco la aplicacin para hacer un TPV.

1.-
Si eligiera Xojo que me recomendarais, hacer la aplicacin desktop o una aplicacin web?

2.-
En cuanto a la bdd, no veo muy claro que pueda utilizar Firebird en Xojo. He visto que hay un pluguin per parece de pago. Realmente se puede utilizar Firebird? O si no, cul me recomendarais?

3.-
Y luego para alojar la bdd, dnde lo harais, en local? En un servidor propio? O en un servidor de pago?

4.- Si hiciera la aplicacin web, podra tener la aplicacin tambin en un servidor? de manera que en el ordenador de la tienda no hubiera programa ni bdd ni nada? Y de esta manera podra acceder al TPV des de cualquier ordenador y lugar?

5.-
Tambin me parece interesante la posibiliad de hacer una APP para smartphone, as los clientes podran consultar los puntos que tienen disponibles des del movil. Sabis si esto se puede/podra hacer?

Muchas gracias,
Sergio
Barcelona

Bienvenido Sergio,

Te voy adelantando mis opiniones hasta que llegue alguien ms experimentado que pueda aportarte informacin adicional:

1 - Depende de tus necesidades, si el TPV tiene que interactuar con algn dispositivo a travs del puerto serie o Usb (lector de cdigo de barras o similar) tendrs que optar por una aplicacin Desktop, sino es as puedes elegir.

2 - Para acceder a bases de datos o bien necesitas una licencia de Xojo a tal efecto, que te permite acceder a PostgreSQL, Ms SQL Server, Oracle, MySQL y SQLite o plug-ins de terceros te permiten acceder a otros servidores de bases de datos.
Personalmente te recomiendo PostgreSQL o SQLite segn tus necesidades.

3 - Dependiendo de tus necesidades; puedes optar por cualquiera de las que indicas.

4 - Si, las aplicaciones web se instalan en el servidor que elijas (Windows. OSX o Linux) de manera similar a como lo haras con una aplicacin Php o similar. Puedes instalarlas de dos modos: CGI (necesitas un servidor web con soporte) o Standalone (corriendo como un servicio).

5 - Si, en este momento puedes disear tu aplicacin Web con varias pantallas para que se vea correctamente en cualquier dispositivo. En breve se espera que Xojo permita programar aplicaciones para IOS de manera nativa.

Te recomiendo que buces en la documentacin de Xojo, tienes varios libros que te permitirn comenzar con buen pie.

Hola Sergio,

Aunque Carlos ya te lo ha dicho, en respuesta a tu cuarta pregunta tienes que tener en cuenta que una aplicacin web se ejecuta en un navegador, y por tanto podr interaccionar con los dispositivos con los que pueda interaccionar el navegador. En una aplicacin TPV puedes necesitar interaccionar con una caja registradora, que no va a ser posible con una aplicacin web.

Otro factor a tener en cuenta es que el tiempo de respuesta de una aplicacin web (que se ejecute en remoto) es mayor, por lo que puede parecer menos gil y cmoda de usar que una aplicacin tradicional.

Ya que te has animado a considerar Xojo, creo que es importante decir que todo el mundo est de acuerdo en que el foro de Xojo es fantstico por la ayuda que se recibe y el ambiente que hay. Y eso tambin es importante a la hora de elegir el lenguaje de programacin.

Julen

Muchsimas gracias Carlos y Julen por vuestras rpidas respuestas y por aclarar mis dudas.

La aplicacin pues tendra que ser sin duda de escritorio ya que lgicamente tendra que estar conectada a la caja registradora, el lector de cdigos de barras, la impresora, etc.
Quizs en dicha aplicacin TPV de escritorio podra hacer lo “bsico” y posteriormente hacer una aplicacin web para la gestin del TPV Backoffice, para en cualquier ordenador y lugar, poder tener acceso y consultar los informes de las ventas y dems estadisticas.

Qu base de datos utilizar y dnde alojarla es lo que no tengo claro. Al principio podra estar en el mismo ordenador del TPV, pero si hiciera una aplicacin web para consultar datos e informes, solo se podran hacer estas consultas en las horas en que el ordenador est encendido. Y si ms adelante pudiera hacer un APP dnde los clientes pudieran consultar su saldo de puntos, los datos tendran que estar visibles las 24h.

Y por otro lado, lo malo de no tener los datos en local, es que si falla la conexin a internet de la tienda, no se podra acceder a los productos, precios, puntos que tenga el cliente, nmero de tiquet…

No s que opinis sobre esto?

Saludos,
Sergio

La verdad es que yo no te puedo ayudar en lo de la base de datos, pero de vez en cuando aparece en el foro la pregunta de qu base de datos es ms adecuada y si encuantras alguna de esas conversaciones vers qu posibilidades hay y sus ventajas y desventajas. Como dice Carlos, mucha gente recomienda PostgreSQL o SQLite, pero hay otras.

Ten en cuenta que Xojo ofrece la posibilidad de usar SQLite con las licencias Desktop y Web de Xojo, pero si quieres otra bases de datos necesitas una licencia dicional (ya sea de Xojo o de un tercero) o encontrar un plugin gratuito (creo que hay alguno, pero puedo estar equivocado).

En cuanto a la base de datos en local o remoto, se me ocurren ideas pero no tengo ninguna experiencia as que mejor ni las escribo.

Si el ingls no es una barrera, te recomiendo que cuando hagas preguntas las hagas en ese idioma porque el nmero de respuestas que vas a recibir va a a ser mucho mayor.

Julen

Si esta pensando hacer la app Desktop y Web te recomiendo usar de base de datos MYSQL.

Gracias Julen.

Gracias tambin Darwin, comentas de usar MYSQL por algn motivo/s en particular si quisiera acceder a la bdd desde la aplicacin Desktop y desde una aplicacin Web?

Saludos.

Hola Sergio,

Sin ms detalles es dificil poder responderte. Te hago unas preguntas para que nos des ms informacin y as poder ir dndote lo que yo creo sera apropiado.

Es un proyecto que vas a desarrollar slo o en grupo?
Tienes intencin de comercializarlo?
Si no lo comercializas, distribuas el el cdigo fuente como Open Source?
Cuantos TPV funcionaran para un comercio? (1 o varios)
Vas a actuar como SAAS? (Pones tu el servidor para los informes o son los clientes lo que lo hacen)
Es un proyecto multiplataforma o solo para Windows, p.j?

Lo ms importante al embarcarte en un proyecto de esta magnitud es tener un buen documento de diseo, donde expliques sin extenderte demasiado cmo va a funcionar tu aplicacin, el diseo, las etapas; parecido al manual de diseo de un videojuego que es fcil de encontrar en google.

Estas preguntas que te hago son la base de las respuestas. Si es OpenSource y vas a distribuir el cdigo, MySQL puede ser la eleccin. Si no, tendrs que ir a PostgreSQL. Si es multiusuario, descartar SQLite (es una base de datos embebida, y para un slo usuario, a pesar que a algunos opinen lo contrario).

Por eso te hago estas preguntas, porque la planificacin en un proyecto tan complejo, importantsimo. No debes escribir ni una sola lnea de cdigo sin tener un documento de diseo. Salirte de las bases de ese documento pueden suponer semanas o meses de cambio en el desarrollo.

Un saludo y espero que Xojo sea la plataforma que elijas para tu proyecto!

Hola Armando, gracias por tu tiempo, te cuento:

¿Es un proyecto que vas a desarrollar sólo o en grupo?
Sólo.

¿Tienes intención de comercializarlo?
No.

¿Si no lo comercializas, distribuías el el código fuente como Open Source?
No, únicamente lo desarrolo para mi y a mi medida, según mis necesidades y particularidades de la tienda, empleados, forma de gestionarla, etc.

¿Cuantos TPV funcionarían para un comercio? (1 o varios)
Realmente es para una tienda y un ordenador. La cuestión de plantearme todo esto es porque no me quiero cerrar puertas, es decir, si me tengo que poner a escribir tanto código y tengo que elejir una base de datos y el lugar dónde alojarla, lo quiero hacer de manera que la aplicación la pueda utilizar si en un futuro la tienda tuviera 2 TPV, o poder utilizarlo si se abriera otra tienda, etc. No es para necesidades actuales, pero si para posibles necesidades futuras. Por ejemplo, que no elija ahora una bdd que me pueda ir bien, y si algún dia pongo otro TPV me dé cuenta de que con otra bdd diferente me iría mejor y tener el doble de trabajo volviendo a crear triggers, procedures…que si de principio ya lo enfoco todo para una aplicación mutliusuario y multipuesto.
También por ejemplo en un futuro me gustaría que yo o alguien me hiciera una app para movil para que los clientes pudieran consultar sus datos y sus puntos de cliente des del teléfono, y por lo tanto con la aplicación movil tendrían que poder acceder a la bdd para hacer la consulta.
Són cosas que ahora mismo no las haré, y hasta puede que ni las haga, pero repito que no me quiero cerrar puertas, y prefiero sentar bien las bases ahora que estoy a tiempo para posteriormente no tener más complicaciones que la de desarrolar la nueva aplicación.

¿Vas a actuar como SAAS? (Pones tu el servidor para los informes o son los clientes lo que lo hacen)
Mis necesidades actuales son un TPV con una bdd que podría ser local, ahora bien, también me gustaría a nivel interno (No los clientes) poder manejar los datos e informes a través de una aplicación. Y me gustaría poder acceder y consultar estos datos en cualquier ordenador independentemente del sistema operativo que tenga, y poder consultar estos datos en el ordenador de la trastienda, por la noche en casa, etc. Quizás me daría lo mismo si fuera desktop y se pudiera hacer la versión para windows y para mac. Pero me da la sensación que si la hago web, siempre desde cualquier ordenador podría consultar los datos e informes.

¿Es un proyecto multiplataforma o solo para Windows, p.j?
El ordenador dónde iría el TPV es Windows. El TPV no sería multiplataforma. Si hiciera otra aplicación para consultar datos e informes si que me gustaría que fuera multiplataforma, o si se pudiera, web, así de esta manera entiendo que se ejecutaría independientemente del sistema operativo.

Gracias,
Sergio

Si no vas a comercializo pero le vas a dar un uso comercial, no puedes optar por MySQL (hay que comprar una licencia para fines comerciales) sin pagar la licencia o quiz lanzar el fuente bajo GPL.

Si vas a usar 1 solo puesto de TPV, SQLite sera la opcin, si en un futuro tienes planteado aadir la opcin de 2 o ms puestos, entonces mejor empezar por una base de datos como PostgreSQL. CubeSQL es de pago, aunque permite usar SQLite en modo multipuesto, amn de otras virtudes. Mi consejo: olvidare de SQLite y ve a algo ms potente y multiusuario, que podrs usar con la web o el gestor de informes con ms de 1 usuario.

Si vas a crear una Intranet, si que puedes crear una web para los empleados de la tienda y poder generar informes, accesibles nicamente dentro de la tienda. Aqu ambas soluciones, la Desktop, Web e incluso ms adelante iOS son perfectas y Xojo te encaja muy bien al ser multiplataforma. Hay un ejemplo que puedes usar (Eddie’s Electronics) que tiene una versin Web y Desktop, y te puede servir de base para tu proyecto. Pero si decides que los clientes accedan a esos datos, entonces todo cambia: Diseo, Implementacin, Seguridad… harina de otro costal.

Personalmente creo que te puedes beneficiar mucho de Xojo para este proyecto. Filemaker es otro candidato, pero los precios de las licencias, el servidor, es realmente disparatado. Si lo puedes hacer con Xojo y tienes tiempo, vas a ahorrar en dinero y ganar mucho en conocimientos con Xojo. He usado ambos programas desde aos y ambos son candidatos muy buenos para tu proyecto.

Suerte con el proyecto y mantednos informados!

Amando

Perfecto Amando, gracias.

Los clientes únicamente accederían a través de la aplicación móvil, para consultar sus datos y sus puntos de fidelización. Y así también se podría aprovechar para lanzar ofertas al dispositivo móvil y que el cliente pudiera hacer su compra, por ejemplo. Pero bueno, esto ya lo veo bastante complicado, al menos para programarlo yo.
Por eso que como en estos momentos me es un poco indiferente que base de datos elegir y dónde alojarla y que aplicación de desarrolo utilizar, pues si que me gustaría elegirlo y hacerlo ya con vistas a eso. Que luego no se hace, pues bueno, quizás me he complicado algo más la vida en un principio, pero nada más.

Gracias de nuevo.
Sergio

hola amigos donde puedo conseguir el PDF DE QUICK STARTER DE XOJO pero EN ESPAOL???

Aristides - you can get it here: http://documentation.xojo.com/index.php/Localized_Guides