Noticias

¡RECUERDA QUE SI ERES UN NUEVO USUARIO, DEBES PRESENTARTE PARA PODER PUBLICAR MENSAJES! | TENEMOS CANAL OFICIAL DE TELEGRAM: t.me/unity3dspain

Guardar datos en servidor.

Iniciado por juanma_teso, Septiembre 16, 2018, 10:36:38 AM

Tema anterior - Siguiente tema
Hola!! Resulta que un familiar me ha pedido una app para su negocio (panadería), en síntesis se trata de hacer solicitudes a un servidor para bajar la información de los productos que tiene, la cuestión es que tengo que hacer los dos lados y del lado del servidor no tengo claro cuál es la mejor opción ya que no es necesario hacer una web, solo necesito guardar datos; texto y algunas imagenes.
 
Primero pensé en usar unos cuantos textos, en plan:
 

id-nombre-descripcion.

 
Pero no puedo meter imágenes en un documento de texto, además no me fío tener que dejarle manejar las imágenes sueltas e independientes, quiero hacerle algo chulo y super fácil de usar.
 
Luego he pensado en XML y JSON, o incluso en un archivo binario, pero no me decido, más que nada porque los dos primeros no los he llegado a usar y para usar el tercero tengo que hacerle también una forma de crearlo y editarlo que me llevará algo más de tiempo.
 
Pues eso, en principio la estructura que tengo que manejar es la siguiente:
 

id - nombre - descripcion - imagenes - tags.

 
Quiero hacerle diferentes archivos; "pan", "postres", "batidos" donde vayan varios productos... me ha pedido que la gente pueda hacer pedidos desde la app, como tampoco quiero complicarme le he dicho que nada de cobrar por la App, es simplemente subir otro archivo con la misma estructura.
 
Con estos datos qué camino escogerían? Gracias!

Septiembre 16, 2018, 11:04:02 AM #1 Ultima modificación: Septiembre 16, 2018, 11:38:05 AM por OldGuy
Yo no utilizaría Unity para lo que deseas hacer, se puede hacer está claro, pero no creo que sea el sitio más óptimo para sacar una app con un buen rendimiento de cpu y batería. Unity está bien para juegos 2D/3D o aplicaciones que requieran 3D (realidad virtual o similares), para programas como el que deseas yo tiraría más por algo un poco más nativo y orientado a aplicaciones dependiendo a la plataforma que vaya dirigido.
 
En caso de que Unity es la mejor opción porque vas a necesitar algo del motor, para lo que necesitas yo tiraría por bases de datos en un servidor, si vas a trabajar con pedidos y clientes, y cada uno va a tener la app esos datos van a tener que estar en algún sitio en red a los que poder acceder.
 
Una forma fácil es con peticiones a archivos php que se comunican con sql normal y corriente, es sencillo. Ya si quieres algo más currado pues te puedes crear un backend con laravel o node y hacer request con sus bodys, headers, jwt, etc... Tiene un poco más de trabajo al principio para construir todo el backend, pero después todo viene más rodado, ya que tienes todo controlado y sabes lo que vas a recibir o necesitas enviar.
 
Yo tengo algún proyecto con el backend en node.js y para db utilizo MongoDB todo metido en un VPS. Para realizar los request, utilizo Best Http Pro, te da muchas opciones para trabajar con request (Get, post, put). Puedes recibir las respuestas en Json y en unity parsear. También puedes trabajar con websockets y muchas opciones que para mi lo hacen indispensable en Unity si trabajas en algo un poquito más serio y necesitas mucho más control de lo que permite WWW de unity.
 
Para trabajar con clientes necesitaras algún sistema de login, hay algunos assets en unity, yo probé un par en el pasado, estaban basados en php y sql, no me terminaron de convencer (aunque no estaban mal), y al final yo me decidí también por hacerlo también con Node, y tengo un sistema creado con identificación con jwt, que utilizo para hacer todas las peticiones después del login. También tengo integrado login con Google para hacerlo un poco más fácil al usuario final, aunque sea un sistema que a mi no me gusté utilizar, sí que es bastante usado.
 
Bueno, más o menos, es todo, espero haberte ayudado un poco, todo dependerá de lo grande que sea el proyecto o de las necesidades del cliente.
 
 

Para esto no utilizaría unity, es mas fácil tenerlo todo en una pagina web, poner un código bidi en la panadería y que la gente acceda directamente a la web.

Bueno, se me olvidó poner que también estaba pensando en usar algún otro framework no tan enfocado en videojuegos, de momento he pensado en Xamarin, y la idea es tener aplicación no Web, es lo que me ha pedido...

mirate android studio, aunque seguramente te dé por pegarte un tiro en cuando veas como se programa en eso xD
 
xamarina es buean opción, se programa con C# y puedes hacer la app compatible con muchas cosas :)
 
PD: no uses JSON para pasar datos del cliente al servidor, eso lo hice yo y la verdad es mucho mejor en binario, no pide tanto ancho de banda

Cita de: juanma_teso date=1537086998Hola!! Resulta que un familiar me ha pedido una app para su negocio (panadería), en síntesis se trata de hacer solicitudes a un servidor para bajar la información de los productos que tiene, la cuestión es que tengo que hacer los dos lados y del lado del servidor no tengo claro cuál es la mejor opción ya que no es necesario hacer una web, solo necesito guardar datos; texto y algunas imagenes.
   
   
      Primero pensé en usar unos cuantos textos, en plan:
   
   

id-nombre-descripcion.

   
      Pero no puedo meter imágenes en un documento de texto, además no me fío tener que dejarle manejar las imágenes sueltas e independientes, quiero hacerle algo chulo y super fácil de usar.
   
   
      Luego he pensado en XML y JSON, o incluso en un archivo binario, pero no me decido, más que nada porque los dos primeros no los he llegado a usar y para usar el tercero tengo que hacerle también una forma de crearlo y editarlo que me llevará algo más de tiempo.
   
   
      Pues eso, en principio la estructura que tengo que manejar es la siguiente:
   
   

id - nombre - descripcion - imagenes - tags.

   
      Quiero hacerle diferentes archivos; "pan", "postres", "batidos" donde vayan varios productos... me ha pedido que la gente pueda hacer pedidos desde la app, como tampoco quiero complicarme le he dicho que nada de cobrar por la App, es simplemente subir otro archivo con la misma estructura.
   
   
      Con estos datos qué camino escogerían? Gracias!
   


Claramente para esto necesitas trabajar con una base de datos, en este caso recomendaría SQL como MySQL - 
 
1º Diseña la base de datos de manera abstracta .
 
2º Normaliza los campos y luego las referencias entre tablas.
 
3º (Opcional) crear las Funciones SQL (Store Procedure) que requiera la aplicación.
 
4º (Opcional) crear las vistas que vas a utilizar.
 
Si no vas a hacer la opción 3 y 4 te recomiendo que utilices Entity Framework para optimizar el tiempo de trabajo.
 
Para las imágenes siempre debes seguir el modo clásico,  guardar la imagen en un lugar público como por ejemplo un server FTP o HTTP (puede ser el mismo que contenga la base de datos) y en la base de datos guardas la URL.
 
 
 
Para el desarrollo te recomiendo utilizar XAMARIN por la ventaja del multiplataformas, o en su defecto CORDOVA.JS
 
 
 
 

Cita de: OldGuy date=1537088642Yo no utilizaría Unity para lo que deseas hacer, se puede hacer está claro, pero no creo que sea el sitio más óptimo para sacar una app con un buen rendimiento de cpu y batería. Unity está bien para juegos 2D/3D o aplicaciones que requieran 3D (realidad virtual o similares), para programas como el que deseas yo tiraría más por algo un poco más nativo y orientado a aplicaciones dependiendo a la plataforma que vaya dirigido.
   
   
      En caso de que Unity es la mejor opción porque vas a necesitar algo del motor, para lo que necesitas yo tiraría por bases de datos en un servidor, si vas a trabajar con pedidos y clientes, y cada uno va a tener la app esos datos van a tener que estar en algún sitio en red a los que poder acceder.
   
   
      Una forma fácil es con peticiones a archivos php que se comunican con sql normal y corriente, es sencillo. Ya si quieres algo más currado pues te puedes crear un backend con laravel o node y hacer request con sus bodys, headers, jwt, etc... Tiene un poco más de trabajo al principio para construir todo el backend, pero después todo viene más rodado, ya que tienes todo controlado y sabes lo que vas a recibir o necesitas enviar.
   
   
      Yo tengo algún proyecto con el backend en node.js y para db utilizo MongoDB todo metido en un VPS. Para realizar los request, utilizo Best Http Pro, te da muchas opciones para trabajar con request (Get, post, put). Puedes recibir las respuestas en Json y en unity parsear. También puedes trabajar con websockets y muchas opciones que para mi lo hacen indispensable en Unity si trabajas en algo un poquito más serio y necesitas mucho más control de lo que permite WWW de unity.
   
   
      Para trabajar con clientes necesitaras algún sistema de login, hay algunos assets en unity, yo probé un par en el pasado, estaban basados en php y sql, no me terminaron de convencer (aunque no estaban mal), y al final yo me decidí también por hacerlo también con Node, y tengo un sistema creado con identificación con jwt, que utilizo para hacer todas las peticiones después del login. También tengo integrado login con Google para hacerlo un poco más fácil al usuario final, aunque sea un sistema que a mi no me gusté utilizar, sí que es bastante usado.
   
   
      Bueno, más o menos, es todo, espero haberte ayudado un poco, todo dependerá de lo grande que sea el proyecto o de las necesidades del cliente.
   
   
       
   


No me había dado cuenta de este post!!  Aunque lo terminaría antes en Unity, prefiero que la interfaz sea nativa y esto Unity no lo ofrece (aunque no he buscado Assets), tiraré por peticiones a base de datos como comentabas, me parece la mejor opción.
 
Cita de: Kvashir date=1537333876mirate android studio, aunque seguramente te dé por pegarte un tiro en cuando veas como se programa en eso xD
   
   
      xamarina es buean opción, se programa con C# y puedes hacer la app compatible con muchas cosas :)
   
   
      PD: no uses JSON para pasar datos del cliente al servidor, eso lo hice yo y la verdad es mucho mejor en binario, no pide tanto ancho de banda
   


AndroidStudio no está tan mal, pero con Xamarin está la posibilidad de exportar a iOS el mismo proyecto, gracias creo que tiraré por base de datos.
 
Cita de: francoe1 date=1537337214Claramente para esto necesitas trabajar con una base de datos, en este caso recomendaría SQL como MySQL - 
   
   
      1º Diseña la base de datos de manera abstracta .
   
   
      2º Normaliza los campos y luego las referencias entre tablas.
   
   
      3º (Opcional) crear las Funciones SQL (Store Procedure) que requiera la aplicación.
   
   
      4º (Opcional) crear las vistas que vas a utilizar.
   
   
      Si no vas a hacer la opción 3 y 4 te recomiendo que utilices Entity Framework para optimizar el tiempo de trabajo.
   
   
      Para las imágenes siempre debes seguir el modo clásico,  guardar la imagen en un lugar público como por ejemplo un server FTP o HTTP (puede ser el mismo que contenga la base de datos) y en la base de datos guardas la URL.
   
   
       
   
   
      Para el desarrollo te recomiendo utilizar XAMARIN por la ventaja del multiplataformas, o en su defecto CORDOVA.JS
   
   
       
   
   
       
   


En un principio no se me ocurrió usar una base de datos, pero creo que será la mejor opción, de esta forma si cambia un campo de un solo producto de un grupo de productos no hay que descargar todo el grupo de nuevo, no sé cómo no se me ocurrió al principio...

Cita de: juanma_teso date=1537366828En un principio no se me ocurrió usar una base de datos, pero creo que será la mejor opción, de esta forma si cambia un campo de un solo producto de un grupo de productos no hay que descargar todo el grupo de nuevo, no sé cómo no se me ocurrió al principio...
   


y en tu perfil poner coder, jajajaj 
 
 
 
Cita de: OldGuy date=1537088642Para trabajar con clientes necesitaras algún sistema de login, hay algunos assets en unity, yo probé un par en el pasado, estaban basados en php y sql, no me terminaron de convencer (aunque no estaban mal), y al final yo me decidí también por hacerlo también con Node, y tengo un sistema creado con identificación con jwt, que utilizo para hacer todas las peticiones después del login.
   


puedes descargar la librería de mysql y programar todo en C#, cuidado, busca la librería compatible 

Cita de: Kvashir date=1537536798y en tu perfil poner coder, jajajaj 
   
   
       
   


Jajajajaja si te contara cómo me está costando acoplarme al modelo MVVM pues ya flipas
 
Definitivamente acomodarse en un solo Framework o lenguaje no es nada bueno!!

Cita de: juanma_teso date=1537537287
Cita de: Kvashir date=1537536798 
            
         
      
   

      Jajajajaja si te contara cómo me está costando acoplarme al modelo MVVM pues ya flipas


ya, al principio es un poco raro dividir todo bien
 
PD: creeme cuando tengas que modificar algo mas adelante (que siempre vas a modificar algo en un proyecto activo) lo vas a agradecer muchísimo

Cita de: juanma_teso date=1537537287Jajajajaja si te contara cómo me está costando acoplarme al modelo MVVM pues ya flipas
   
      Definitivamente acomodarse en un solo Framework o lenguaje no es nada bueno!!
   


Desarrolle grandes proyectos web y lo mejor sin dudas alguna es utiliza VUE.js con WebPack busca en google WebPack with VUE.JS de NPM y te vas a encontrar super cómodo.
 
Para backend puedes utilizar PHP con peticiones basadas en REST -
 
 
 
Sin dudas lo mejor que se puede hacer y lo mas sencillo de utilizar, tambien puedes ver Angular pero no te lo recomiendo por la complejidad y la dificultad que tiene para empezar.. 

Cita de: Kvashir date=1537537427ya, al principio es un poco raro dividir todo bien
   
   
      PD: creeme cuando tengas que modificar algo mas adelante (que siempre vas a modificar algo en un proyecto activo) lo vas a agradecer muchísimo
   


Bueno, lo que más me está costando es crear el ModelView y enlazar bien los datos, además la forma "correcta"  de crear la interfaz es usar el XAML... con lo a gusto que estaba yo con UI .
 
@francoe1 sí, hace mucho hice un par de clases y archivos PHP para aprender a conectarme a una bbdd, no voy a complicarme la vida y reutilizaré eso, creo que solo hacía un consulta y obtenía un string, eso sí, en Unity y usando WWW, creo que en C# se usa la clase WebClient, pero tendré que mirarlo...

Etiquetas: