PDA

Ver la Versión Completa : Sugerencia para optimizar interfaz


nfrfabian
30-08-2015, 17:00:27
Buenas a todos.

Escribo para pedirles algunas recomendaciones, sugerencias o consejos para un proyecto que estoy desarrollando. Les cuento un poco de que se trata.

Tengo una aplicación web (LAMP) y quiero ampliar el sistema desarrollando una aplicación móvil que acceda al mismo por medio de REST, la aplicación móvil tambien deberá realizar funciones especificas de un celular (funciones relacionadas con SMS, envió, recepción, procesamiento, etc). La aplicación móvil también debería poder funcionar sin conexión a Internet (problemas de conexión, o simplemente esta configurado para trabajar en forma independiente). Como el sistema móvil a realizar es muy complejo mi idea era armarlo por partes.

La primer parte a desarrollar era la del manejo de SMS. Esta parte que sin un análisis profundo parecía relativamente simple, resulto ser bastante complejo (por lo menos para mi que tengo conocimientos básicos de delphi, la ultima aplicación la hice hace varios años con delphi 2005, base de datos MsSql y mecanismo de conexión ADO). Hasta estos momentos tengo desarrollado lo siguiente:

- Servicio android encargado de enviar sms, tuve que implementar un servicio porque Delphi xe7 tiene funciones para mandar sms pero con estas funciones no se puede hacer un control de los envíos (detectar errores de envío, notificación de estado del envío, etc).

- implementacion de un broadcastreceiver para recibir notificación de sms recibidos, para realizar el procesamiento correspondiente.

- Creación de bd sqlite con las tablas necesarias para realizar las funciones de manejo de sms (como la funcionalidad requerida no esta totalmente implementada seguro la bd tendrá modificaciones).

- Creación de la interfaz (70% aproximadamente de esta primera parte).

Problema:

- Me parece que la interfaz no se esta haciendo de la forma correcta, solo tengo un form principal, adentro de este único form tengo todos los componentes (un multiview, un treeview, 5 tabcontrol con un promedio de 5 tabitem cada uno, mas de 5 listview que muestran información de tablas, etc.). Yo estoy acostumbrado a trabajar con muchos forms en aplicaciones de pc.

Esta es la forma correcta de armar la interfaz? Por lo menos con delphi xe7 no se podía (o no era recomendado) tener mas de un form por aplicación.

Desde ya muchas gracias por todo.

AgustinOrtu
30-08-2015, 19:29:02
Esta es la forma correcta de armar la interfaz? Por lo menos con delphi xe7 no se podía (o no era recomendado) tener mas de un form por aplicación

Desde cuando no se puede o no se recomienda tener mas de un form? Yo diria que lo contrario

Yo creo que una combinacion un poco mas robusta hoy es: Pestañas + Frames. Dentro de cada Pestaña metes un Frame, y ahi dentro de cada uno esta separado el manejo de ese frame y no te queda un "super form" principal lleno de eventos de miles de componentes

En realidad la discusion Form vs Tabs es masomenos como decir Windows vs Linux :)

Yo diria que va en gustos

Por ejmplo, tanto un "super form" con todo como tenes ahora, o un form principal con tabs, y dentro de cada tab un frame, son mas "pesaditos" y podria llegar a tardar en iniciar mas la aplicacion; obviamente depende de lo que metas en cada uno. Por otro lado, una ves que cargo, ya tenes todo disponible y accesible rapidamente.

Casimiro Notevi
30-08-2015, 20:22:23
Por lo menos con delphi xe7 no se podía (o no era recomendado) tener mas de un form por aplicación.
Eso nunca ha sido así, ni mucho menos, mi último proyecto Delphi "grande" tenía casi mil Forms. Parecen muchas, pero una cosita aquí, otra allá, ahora pones esto, luego lo otro... y finalmente juntas un montón de Forms. :D

nfrfabian
30-08-2015, 21:30:46
Hola AgustinOrtu, como te darás cuenta soy nuevo en la programación de dispositivos móvil con delphi. Mi forma de trabajar era la clásica (de hace años con delphi solo para windows), es decir una aplicación con muchos formularios que se mostraban con show o showmodal dependiendo la necesidad..
Volví a programar en delphi a principios de año con delphi xe7 y todo lo que hice fue a base de prueba y error. Voy a investigar sobre el componente Frame.

Con respecto a que no se recomienda tener mas de un form te paso la pagina http://docwiki.embarcadero.com/Libraries/XE8/en/FMX.Forms.TCommonCustomForm.ShowModal , mi ingles es muy básico pero yo entiendo eso. Si se puede usar varios forms en las aplicaciones móviles te pido que me digas como los nostras. En estos momentos estoy tratando de implementar un form de login y no encontre nada para xe8, encontré una posible solución en https://www.youtube.com/watch?v=KxO6VxfHcmE que es para xe5.

Lo de tener un superform con cientos de componentes y miles de eventos no me gusta para nada, si usar frames me evita eso seguro me inclino por frame. Para mi una solución ideal seria dividir en forms (por lo menos uno por cada perfil de usuario). Toda la interfaz realizada hasta ahora (que con mucha suerte corresponde a un 10% del total del sistema) tarda bastante en cargarse en un galaxy s5.

nfrfabian
30-08-2015, 21:46:57
Hola Casimiro Notevi, seguro que tenes razón si la aplicación es para windows (o mac, nunca use mac), pero me parece que no es tan así en dispositivos móviles, es mas en delphi xe7 había una función tipo showmessage con dos botones (no me acuerdo el nombre exacto de la función) que se podía utilizar en IOS pero no en Android porque no lo soportaba. Pero como no conozco mucho de la ultima version de delphi voy a investigar de nuevo.

Casimiro Notevi
30-08-2015, 22:53:18
Pensé que te referías a Forms VCL.
De todas formas, en Android puedes tener también todas las "pantallas" que necesites, por ejemplo, el proyecto que tengo abierto ahora mismo suma 28 pantallas distintas.

blaiselaborde
27-11-2018, 17:44:49
Lo cierto es que estaba que me tiraba de los pelos porque toda la vida he trabajado con ShowModal y encuentro que Android no trabaja bien (o mejor, no lo trabaja) con este comando . . . .

Pensé que tocaba crear la super Unit con miles de líneas de código . . . Pero la idéa de los Tabs + Frames es lo mejor que he podido encontrar hasta el momento . . . Aunque ésto es una solución sólo para evitar la Super Unit, pero el Formulario tendrá tantos Tabs como Frames se requieran y además, aquella ventaja que se tenía de crear un formulario y destruirlo cuando ya no lo requieras, desaparece por completo . . . Toca cargar TODA la aplicación de un sólo golpe y jugar con los Tabs para mostrar el que esté activo . . .

Así mismo, me gustaría saber si los MenssageBox con opciones toca simularlos con Frames? . . . El hecho de no poder mostrar un mensaje con botones de selección me parece surrealista . . .

Muchas gracias.

mamcx
27-11-2018, 18:17:25
El error fundamental aqui es tratar un movil como un desktop. Es una UI totalmente diferente.