Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Desarrollo en Delphi para Android (https://www.clubdelphi.com/foros/forumdisplay.php?f=57)
-   -   [SOLUCIONADO] Aplicación Debug funciona Release no. (https://www.clubdelphi.com/foros/showthread.php?t=91889)

jhonalone 26-05-2017 17:58:25

[SOLUCIONADO] Aplicación Debug funciona Release no.
 
Hola, sufridores de Delphi.
En ningún sitio he visto tantos problemas para Android como con DELPHI.
A pesar de no ser NADA BARATO, tienes que poner en cada programa, más trampas que en una película de chinos... YA ESTOY HARTO.

Lo mismo que para Windows era una plataforma FENOMENAL. Para Android es CATASTRÓFICA.

Tengo bastantes aplicaciones para Windows que funcionan de MARAVILLA.

Tengo unas pocas para Android, en las que cuando le pides algo RARO (Como un TEdit, un TMemo) por poner algún ejemplo... o no funciona en cierta versión (ver) o descoloca el texto predictivo (Ver).

No voy a seguir... si quieres ver más despropósitos mira detenidamente este foro de Delphi para Android.

VOY A CONTAROS LA ÚLTIMA.

Llevo un tiempo desarrollando una aplicación, en la que he tenido que "trampear" ya no sé cuantas cosas para hacerla funcionar y compatible. (Podéis ver cuántas veces he solicitado ayuda en este foro y cuántas se han quedado sin resolver)

La última es la siguiente:

Probando la aplicación en varios dispositivos distintos que tengo en mi casa (Cito sólo tres: Tablet Samsung Galaxy Tab3 con versión de Android 4.4.2----- Samsung SIII mini con versión Android 4.1.2 ----- Samsung Galaxy J5 con versión Android 6.0.1)

¿Me pueden Vds. creer que en todos funciona la aplicación instalada en modo Debug desde el PC, y que LA MISMA aplicación compilada en modo Release/Application Store subida a Google Play e instalada desde Google Play, SOLAMENTE funciona en el Galaxy J5?

La aplicación se llama (o llamaba, si es que funcionará alguna vez) RegiControl.

Si alguien quiere probarla en Google Play... y contarme... estaré a la espera de sus comentarios.

Creo que cometí un error al confiar en Delphi (Radstudio 10 Seattle) cuando estaba empezando a trabajar con Android Studio (Gratis) Pues despues de muchos años con Delphi pensaba que ya estaba acostumbrado al lenguaje y me resultaría más intuitivo para leer los programas y modificarlos. Lo que no sabía era de las limitacines que tendría.

Soy un llorón. Perdonarme.

Saludos a todos.

Casimiro Notevi 26-05-2017 19:38:33

No descarga :confused:

EDITO: Sí que descarga, es que ocupa 34 megas :eek:

La ejecuto, sale el logo inicial y se cierra.

jhonalone 26-05-2017 20:33:45

Gracias por probarlo y por responder, Casi.
Es lo mismo que me pasa a mí en los terminales antiguos. Sin embargo en el j5 funciona perfectamente.
Más curioso. Si lo instalo con delphi en modo Debug en ambos terminales (en los que no funciona en modo release desde Google Play) ocupa un poco más 39 megas y pico y funciona correctamente. (¿¡!?)
Un saludo.

Casimiro Notevi 26-05-2017 20:40:03

La verdad es que no he usado ninguna versión delphi para android, no sé cómo va.
Por cierto, tu programa lo he probado en un sony Xperia M con android 4.1.2

jhonalone 26-05-2017 21:14:03

Gracias de nuevo, Casi.
He leído tu mensaje y estoy contigo al 1000 por 100.
Te invito a que entres en mi página www.jmms.es te descargues la versión compilada en modo Debug, la instales y compruebes que funciona perfectamente. Borra antes la instalación anterior, por si acaso. El movil, en este caso debe estar habilitado para fuentes desconocidas y en modo desarrollador habilitada la depuración USB. Subí otro programa de Sudoku el año pasado y no tuve este problema. Algo hay que no está bien, por mi parte o por la parte de Delphi.
Saludos Cordiales.

jhonny 26-05-2017 21:25:12

Es probable que salga un error y Android en lugar de mostrarlo cierra la app, la cosa es... ¿Cuando lo despliegas en modo depuración lo estás haciendo con el Delphi abierto y dandole F9 como para hacer el seguimiento?, esto debería mostrarte dicho supuesto error en el IDE y así hacernos a una idea de lo sucedido.

Aunque he de decir que aún no he probado la app. Por ejemplo... me sucedió alguna vez que no estaba enviando las peticiones al webservice en segundo plano y esto me generaba un error (aunque no siempre, pero me generaba problemas) o alguna vez usé ciertos componentes de terceros que me bloqueaban la aplicación... ¿Cuáles componentes de terceros estás usando? y repito la primera pregunta ¿Al desplegarlo en modo Debug, estás haciendo el seguimiento usando el IDE de Delphi para que te salgan los posibles errores?

fredo 26-05-2017 22:37:39

que te dijo soporte de esto?? tienes derecho a 3 eventos en un año...

jhonalone 26-05-2017 22:58:17

Hola a todos.

Fredo, no he consultado al soporte, no lo he hecho nunca, uso mejor el foro.
Jhonny, tengo conectado el terminal, no el simulador. Cuando lo instala en el terminal, funciona conectado al PC y después también cuando lo desconecto. Queda instalado en el dispositivo.

Estoy revisando el Deployment y las opciciones de la app. Que ésa es otra, las cambia a las opciones y el Deployment y de Options por defecto la primera vez que cambias de Debug/Development a Release/Appication Store.

Os contaré. Gracias por vuestro interés.
Saludos a todos.

AgustinOrtu 26-05-2017 23:01:36

Pues yo busco RegiControl en el Play Store y no me sale nada

jhonalone 27-05-2017 12:15:43

Hola, Agustín.
A mí me sale sólo esta app con este nombre y creo que a Casimiro también porque la prueba que ha hecho es como reacciona el programa.

Te ruego que lo intentes de nuevo. Quizá estaba actualizando alguna versión.

Gracias por tu interés de todos modos.
Un saludo.

AgustinOrtu 27-05-2017 17:23:29

Ni desde el telefono ni desde la web:

https://play.google.com/store

En el cuadro de buscar pongo "RegiControl". Esto me lleva a este link:

https://play.google.com/store/search?q=RegiControl

El cual me muestra un cartel:

Cita:

No hemos podido encontrar resultados que coincidan con tu búsqueda (RegiControl).
Sugerencias:
Asegúrate de que todas las palabras estén escritas correctamente.
Prueba con otras palabras clave.
Inténtalo con palabras clave más generales.
Solo se me ocurre que tenga algo que ver con la region. Ustedes son ambos españoles, sera eso? Me ha pasado de no poder bajar/acceder a ciertos sitios por ser de otra region (yo soy de Argentina).

No podes darme un enlace directo a tu aplicacion?

Casimiro Notevi 27-05-2017 17:45:03

Puede que sea lo que dices:


jhonalone 29-05-2017 14:15:19

Hola a todos. (Agustin y Casimiro especialmente)
Me dirijo a Agustín.
CLARO, CLARO... MUY CLARO.

Tienes TOOOOODA la razón, Agustín. No te sale porque al subir la aplicación a Play Store, (ahora recuerdo) que solamente seleccioné el pais de España. Ya que pesaba que básicamente interesaría a los empresarios autónomos de mi país, pues ni siquiera sé si puede interesar a otros países con una legislación distinta.

A ver si lo puedo cambiar (temporalmente, salvo que tú me digas que puede interesar en Argentina) para otros países. Lo cambiaré para que tú lo descargues y luego me cuentas. Ya lo hice, pero "puede tardar varias horas en actualizarse" según Play Store.

Mis disculpas por no responder antes. El fin de semana no estuve en casa.

Gracias por vuestro interés, sigo probando ideas lo que pasa que es lento por las actualizaciones en Play Store.
Saludos a todos.

dec 29-05-2017 18:56:22

Hola a todos,

Probando la aplicación aquí en Android 6 (Samsung Galaxy A3 2016) parece funcionar como se espera. :)

AgustinOrtu 29-05-2017 19:56:13

Yo tengo un Nexus 5X corriendo la ultima version de Android, Nougat 7.1.2, y la aplicacion corre normalmente, pero no puedo probar demasiado por esto:



Yo creo que es mas un problema que es muy comun a Android, hay demasiada fragmentacion, demasiados dispositivos, demasiado hardware, demasiadas capas que ponen encima del SO, que ser compatible con todo es casi imposible

Casimiro Notevi 29-05-2017 20:26:26

Cita:

Empezado por AgustinOrtu (Mensaje 517321)
Yo tengo un Nexus 5X corriendo la ultima version de Android, Nougat 7.1.2, y la aplicacion corre normalmente, pero no puedo probar demasiado por esto:
Yo creo que es mas un problema que es muy comun a Android, hay demasiada fragmentacion, demasiados dispositivos, demasiado hardware, demasiadas capas que ponen encima del SO, que ser compatible con todo es casi imposible

A ver si algún día se sientan a pensar bien lo que van a hacer, porque es un problemón que lo que funciona bien en unos, no funciona en otros... y muchas veces parecen decisiones aleatorias o sin mucho sentido.

dec 29-05-2017 21:32:41

Hola a todos,

No debería decir esto, porque, tengo un programa que está relacionado, pero, prometo que no lo digo por eso, sino porque, después de ver y probar la aplicación del compañero... no he podido dejar de pensar en ello. Llevo tres o cuatro semanas trabajando en una aplicación HTML/Javascript/CSS/Cordova que no es para nada sencilla: usa Websockets para montar todo un chat, bastante complejo, consulta bases de datos, inserta, actualiza, etc., etc. Tiene ya como dos docenas de "views" o "forms" en el "lenguaje Delphi".

Luce bien en cualquier versión de Android, porque, en efecto, hablamos de una aplicación HTML que se interpreta en la "WebView" de Android como en cualquier navegador web. De hecho, esta aplicación no sólo corre en Android, puede hacerlo (y lo hace) en iOS y en todos los navegadores modernos, tanto de escritorio como para móviles. Lo único que no funcionaría en este último caso sería lo que Apache Cordova aporta, como las notificaciones "push" que la aplicación recibe. Y hasta esto puede tener otra solución en el futuro... que no pase por usar un plugin de Apache Cordova.

De hecho ya existe algo así para los navegadores, pero, sería, fijáos bien, la primera vez en que habría que codificar "según la plataforma", porque, esa es otra, la aplicación de que hablo corre en todos los sitios mencionados... con la misma base de código, sin cambiar nada en absoluto y sin ni siquiera usar ninguna "condición". En el caso del push podría hacerse dicha "condición", y usar un "push" que sí se soporte en los navegadores ya actualmente.

¿Qué quiero decir con todo esto? Pues que, tal vez uno viera HTML/Javascript/CSS/Cordova como algo que "no sirve", que es mejor lo "nativo"... pero, en mi opinión (y ya experiencia) nada más lejos de la realidad. Se pueden hacer aplicaciones muy curiosas y muy complejas y muy completas usando los lenguajes y herramientas mencionados (conste que no he mencionado a mi programa para nada) y desde luego no existen los problemas que encontramos con Delphi a cada momento con esta o aquella versión de Android. La app en que estoy trabajando (para un cliente) corre en Android 4, 5, 6... y seguramente 7, sin ningún problema en absoluto.

En fin... queda dicho, porque, tenía que decirlo y ya está... me parece a mí que HTML/Javascript/CSS son más potentes cada día que pasa. Rara es ya la web/app que no nos pide acceder a nuestra ubicación, mostrarnos notificaciones, en fin, se tiende a dar cada vez más poder a estos lenguajes, que, por otro lado, ya digo, se comportan de forma excelente también fuera de su ámbito, que serían los navegadores web. Gracias a Apache Cordova, lo que todavía no es posible hacer de forma nativa (cada vez menos cosas), podemos hacerlo, tal como acceder a sensores del dispositivo, tomar fotos, etc., etc.

P.D. Este mensaje debe ser tomado como lo que es: un intento de mostrar otras posibilidades para llevar a cabo aplicaciones para móviles, sin los problemas que se encuentran con Delphi, lamentablemente. Android puede cambiar mucho en el futuro (que puede ser la causa de los problemas de Delphi, no sé) pero no creo que Android ni ningún sistema operativo deje de tener un "WebView" o cualquier otro componente similar capaz de procesar los lenguajes "web" tal como lo hacen ya los modernos navegadores. Esto, por supuesto, garantiza que nuestra aplicación funcionará versión tras versión del sistema operativo.

P.D.2. Si alguien quiere que aporte más información como posibles frameworks, que no dude en preguntar aquí. Ni siquiera mencionaré mi programa... porque en realidad no es necesario, como es obvio, pues todas o casi todas estas tecnologías son de código abierto y gratuitas. Frameworks, herramientas, lenguajes, bases de datos, servidores web (porque nosotros hablamos aquí de la aplicación "cliente"), todo se puede montar usando software libre, de modo que queda claro, otra vez, que no estoy hablando en absoluto de mi programa, que, tendrá su público, pero, no es imprescindible: de la misma forma que podríamos plantearnos usar Android Studio o cualquier otro entorno, hablo aquí del entorno "web", por decirlo así.

Casimiro Notevi 29-05-2017 22:00:17

Cita:

Empezado por dec (Mensaje 517324)
HTML/Javascript/CSS/Cordova

¿Pero eso sirve para hacer programas de gestión de ventas y similares?

dec 29-05-2017 23:04:23

Hola a todos,

Cita:

Empezado por Casimiro Notevi (Mensaje 517327)
¿Pero eso sirve para hacer programas de gestión de ventas y similares?

Claro, ¿por qué no? Fïjate que me arriesgo a decir que sí sin saber exactamente qué se entiende (porque no lo sé) por un "programa de gestión de ventas y similares". Lo que puedo decir es que no hablamos de un juguete, sino de una serie de tecnologías, que, bien utilizadas, pueden dar muchísimo juego, de modo que, ¿por qué no va a servir para hacer casi cualquier tipo de aplicación? ¿Qué tienen de particular este tipo de programas que dices Casimiro?

roman 30-05-2017 03:12:05

Cita:

Empezado por dec (Mensaje 517324)
Hola a todos

Hola ;)

Cita:

Empezado por dec (Mensaje 517324)
P.D.2. Si alguien quiere que aporte más información como posibles frameworks, que no dude en preguntar aquí.

Yo.

Sé que es mucho pedir, pero un panorama general de estas tecnologías no estaría mal así como una precisión de eso que llamas webview. He visto algo en google, para Android, pero no sé si aplica por igual a iOS.

LineComment Saludos

dec 30-05-2017 08:28:22

Hola a todos,

Cita:

Empezado por roman (Mensaje 517332)
Hola ;)



Yo.

Sé que es mucho pedir, pero un panorama general de estas tecnologías no estaría mal así como una precisión de eso que llamas webview. He visto algo en google, para Android, pero no sé si aplica por igual a iOS.

LineComment Saludos

De acuerdo Román. Tengo que ir ahora al hayuntamiento de mi aldea, pero, prometo escribir aquí algo sobre el asunto, aunque, ya adelanto que no soy ningún experto: buscando en Google igual se acaba antes y mejor. :eek:

Pero intentaré esbozar aquí algunas de mis escuálidas ideas en cuanto pueda. :)

Neftali [Germán.Estévez] 30-05-2017 09:15:06

Cita:

Empezado por dec (Mensaje 517335)
Tengo que ir ahora al hayuntamiento de mi aldea....

ufffff David,.... se me han puesto los ojos vidriosos y la gallina de piel cuando lo he visto... ;-DDD

Cita:

Empezado por dec (Mensaje 517324)
P.D.2. Si alguien quiere que aporte más información como posibles frameworks, que no dude en preguntar aquí.

A mi también me interesa David. Sabes que he estado revisando tu programa aunque no muy a fondo (por temas de tiempo), así que si nos puedes ampliar algunas funcionalidades del tuyo o de otros frameworks que usen tecnología similar, pues estaría bien.
Seguramente algunas de estas cosas son triviales o incluso en este entorno no tengan sentido, pero mi única referencia es Delphi.

* Se que no tienes problemas para conectar vía Rest.
* Tengo dudas de hasta dónde llega el acceso al hard (si es necesario).
* Acceso a sensores de dispositivos,...
* Te iba a preguntar por las notificaciones push, de lo que ya has hablado.
* Haciendo paralelismo con Delphi, cuando no existe una clase en Delphi para acceder al control de volumen (por ejemplo), siempre podemos usar un bridge con la clase de Android AudioManager (https://developer.android.com/refere...ioManager.html) y acceder a esas propiedades. ¿Hay algo similar aquí? (desconocimiento)
* ¿Cómo se solventa la multiplataforma? Lo que en Delphi haríamos con {$IFDEF}, por ejemplo para Android y iOS.
* ¿Hay algun problema para programar Threads? ¿Hay clases para ello?
* Por ejemplo, para acciones "habituales" en los dispositivos móviles como "Compartir", "tomar foto", "Enviar a"... ¿Hay algo hecho? ¿Aquí me vuelve a salir la duda de la multiplataforma? ¿Cómo se solventa?
* Tema de conexión a Bases de Datos "locales" si fuera necesario...
* Guardar y acceder a archivos locales de los dispositivos. ¿Alguna complicación? Fotos almacenadas, configuraciones,...
* Tethering o/y accceso por bluetooth a dispositivos externos. ¿Qué soporte hay? ¿Cómo se haría?

Casimiro Notevi 30-05-2017 09:50:01

Cita:

Empezado por dec (Mensaje 517328)
Hola a todos,
Claro, ¿por qué no? Fïjate que me arriesgo a decir que sí sin saber exactamente qué se entiende (porque no lo sé) por un "programa de gestión de ventas y similares". Lo que puedo decir es que no hablamos de un juguete, sino de una serie de tecnologías, que, bien utilizadas, pueden dar muchísimo juego, de modo que, ¿por qué no va a servir para hacer casi cualquier tipo de aplicación? ¿Qué tienen de particular este tipo de programas que dices Casimiro?

Hola, con gestión de ventas me refiero a típicos programas de facturas, pedidos, tpv, preventa/autoventa, etc. que tienen que acceder a impresoras bluetooh y de red o wifi, al gps, balanzas, escaneres, pantalla táctil, lectores de tarjetas de pago, cámara de fotos, etc. Y doy por seguro que no hay problema con sql, ftp, crear pdf, etc.

Neftali [Germán.Estévez] 30-05-2017 10:07:22

Volviendo al tema original...

Cita:

Empezado por jhonalone (Mensaje 517224)
Probando la aplicación en varios dispositivos distintos que tengo en mi casa (Cito sólo tres: Tablet Samsung Galaxy Tab3 con versión de Android 4.4.2----- Samsung SIII mini con versión Android 4.1.2 ----- Samsung Galaxy J5 con versión Android 6.0.1)

¿Me pueden Vds. creer que en todos funciona la aplicación instalada en modo Debug desde el PC, y que LA MISMA aplicación compilada en modo Release/Application Store subida a Google Play e instalada desde Google Play, SOLAMENTE funciona en el Galaxy J5?

Al ejecutarla conectada al PC tienes activadas las excepciones para detectar algún problema (imagino que si).
Revisa los permisos asignados a la aplicación, no en todas las versiones se gestionan igual.
¿Utilizas ficheros que deban ir en el Deploy? Si es que si revisa los errores que puede provocar que estén o no estén donde deban estar. Volvemos a lo mismo, no todas las versiones tratan los errores de la misma manera.
Estoy pensando en cosas que se hagan diferentes en Debug y ejecutando desde el Store, de ahí que me venga a la cabeza el Deploy.
Ya se que es un método rudimentario, pero es efectivo. Usa debug del de toda la vida, volcado a fichero para ver por dónde pasa el programa y hasta donde llega.
Piensa si hay alguna diferencia más entre los casos que pruebas (diferente tipo de conexión WIFI/4G -este me pasó a mi-).
...

dec 30-05-2017 12:48:44

Hola a todos,

No sé si debería iniciar un nuevo hilo para no estropear este que el compañero ha abierto, pero, en fin, espero no extenderme demasiado. Casimiro y Germán han preguntado sobre el acceso a multitud de dispositivos y otras características del hardware. Yo me pregunto a mi vez si Delphi puede ya atacar tantas características y hardware, a tenor de este mismo hilo, por ejemplo. ¡Pero vamos adelante!

HTML, Javascript y CSS son los lenguajes que usamos en el lado del cliente para llevar a cabo no sólo páginas web, pero, también aplicaciones, extensions para navegadores ("addons" para Chrome, Opera, Firefox y otros navegadores -y se espera a Microsoft Edge en esta lista) y aplicaciones híbridas para múltiples plataformas como Android, iOS, Windows, etc.

HTML5 es cada día más potente, y, cosas que hace unos años no podían hacerse, ahora no sólo pueden hacerse, pero, con la garantía de funcionar además en cualquier navegador web moderno, sea para móviles o para los escritorios: Windows, Mac OS, Linux, etc. Una aplicación HTML5, con la ayuda de Javascript y el estilo de CSS, puede ya hacer bastantes cosas que van más allá de una sencilla página web.

Estamos hablando de aplicaciones cliente, no exactamente iguales que una aplicación nativa, puesto que no puede acceder alegremente al disco duro, por ejemplo. Sin embargo, si nuestra aplicación dispone de un servidor, guardar información mediante llamadas HTTP no resulta un problema. Hablando del servidor, se puede escoger el que cada uno prefiera, pues, una aplicación cliente, no sabe del servidor más que lo que tiene que "pedir" y lo que puede "recibir"

Terminando acaso con el servidor, por ejemplo, a la aplicación cliente le da exactamente igual que allí se trate de Apache, PHP y MySQL, o bien de Microsoft IIS, ASP.NET y MSSQL. La aplicación cliente hace llamadas HTTP y recibe, por ejemplo, un JSON listo para ser presentado en la interfaz, por ejemplo.

Lo que quiero decir con lo ya dicho es, básicamente, que una aplicación HTML es ya bastante potente de por sí, de hecho lo podemos ver en cantidad de aplicaciones que usamos todos los días en nuestros navegadores. Esto lo podemos lograr con HTML, Javascript Y CSS sin irnos más lejos aún, pero, ahora vamos a pasar a tratar lo que es Apache Cordova y para qué puede resultarnos útiles.

En pocas palabras, Apache Cordova toma una aplicación HTML (con su Javascript, su CSS, sus imágenes, etc.) y la transforma en una aplicación "híbrida" para Android, de modo que lo que nosotros obtenemos es directamente un archivo APK listo para usar. Esto mismo que se hace para la plataforma Android, se hace para otras plataformas, como iOS. En este último caso, Apache Cordova, al menos en Windows, nos "compila" la aplicación HTML en un proyecto para XCode, que, es el entorno de desarrollo de Mac OS.

En efecto, es preciso contar con un MacOS o similar para "compilar" para iOS, pero, vamos por partes: en primer lugar, si vas a desarrollar para la plataforma iOS, probablemente, será bien que cuentes con un MacOS y con un móvil donde probar... en segundo lugar, también Delphi, si no me equivoco, precisa al final de un MacOS o algo parecido para "compilar" para iOS, y es que, tal vez no quede más remedio en este sentido.

Siguiendo con Apache Cordova, la gracia de este proyecto es que permite a nuestras aplicaciones HTML ir más allá de lo que el HTML y Javascript actuales permiten. Apache Cordova ofrece una serie de plugins "de serie" para acceder a archivos, cámaras, sensores de movimiento, sensores de orientación, geolocalización, contactos, información sobre el dispositivo, etc. Además, Apache Cordova tiene una arquitectura en la que caben los "plugins", y, hay cientos de ellos desarrollados por terceros.

De hecho, si uno quisiese (o si fuese necesario) es posible, siguiendo la documentación, crear plugins para Apache Cordova, quiero decir, no sólo disponer de los que ya existen, pero, también se cuenta con la posibilidad de desarrollar nuevos plugins si es necesario. En cualquier caso, todos los plugins para Apache Cordova tienen algo en común: proporcionan una interfaz Javascript, que, justamente, será la que usaremos en nuestras aplicaciones.

En este punto cabe decir que ya podemos hacer una cantidad de cosas bastante considerable. Tal vez una aplicación no necesite usar plugins de Apache Cordova en absoluto, puesto que, de hacerlo, Apache Cordova se convertirá en un requisito, por decirlo así, o sea, la aplicación, mejor dicho, el plugin o plugins en cuestión, no funcionarán en un navegador, por ejemplo. Apache Cordova proporciona una plataforma que llaman "browser", de modo que, en principio, podríamos "compilar" para la plataforma "browser", pero, lo que yo digo aquí es que nuestra aplicación ya no será nunca una aplicación independiente pues necesitará de Apache Cordova.

Esto último puede ser un problema o no, evidentemente. Si lo menciono es porque, confío mucho en las aplicaciones HTML, y, como digo, si no usamos plugins de Apache Cordova, podremos desplegar nuestra aplicación en cualquier navegador y esta funcionará sin problemas. Un ejemplo podría ser la aplicación en que estoy trabajando ahora: excepto las notificaciones "push" (que usan un plugin para Apache Cordova) la aplicación funciona, se puede probar y depurar perfectamente en cualquier navegador.

Dicha aplicación lista muchas tablas de una base de datos, hace muchas peticiones HTTP, recibe muchos datos, los muestra al usuario, permite su edición, inserción y actualización, cuenta con un completo "chat" basado en Websockets que incluso te avisa de los mensajes no recibidos... y por supuesto no hablo de esta aplicación en concreto, pero, lo que quiero indicar es la potencia de una aplicación HTML sin más... su aspecto, por ejemplo, utilizando algún framework como Bootstrap CSS, será el mismo exactamente en cualquier plataforma además.

Quiero terminar ahora con este mensaje... sé que no he referido apenas frameworks como prometí, pero, quede esto para un posible siguiente mensaje. De momento, quedáos con la idea de que una aplicación HTML corre en cualquier navegador y hoy día puede hacer muchas, muchas cosas interesantes. Pensad en las aplicaciones que vosotros mismos usáis "online" en vuestros navegadores. Y quedáos también que, con la ayuda de Apache Cordova, estas mismas aplicaciones HTML podrán acceder a características de los dispositivos, usando una sola API (Javascript) en todas las plataformas soportadas.

Para terminar de verdad, la idea de estos mensajes míos no es tirar por tierra a Dephi (¡diosito me libre!) o poner en las nubes las "tecnologías" web. Es, simplemente, que me causan pavor estos mensajes de que una aplicación sencillísima a más no poder (una prueba, de hecho) funcione en Android 5 pero no en Android 6. Este problema, en mi experiencia, no existe para las aplicaciones HTML e híbridas. Si estas últimas son la mejor opción para nosotros o no... es algo que tenemos que decidir nosotros mismos en función de nuestras necesidades y otras cuestiones.

¡Eso es todo de momento, que, tampoco es mi intención aburrir a nadie!

dec 30-05-2017 12:49:54

¡Hola de nuevo!

Notad cómo en mi anterior mensaje no he mencionado en absoluto a mi programa... y es que no es necesario. Como dije ayer, tiene su público (¡cada vez más espero!) pero, hablamos de HTML, Javascript y CSS. Si se quiere, hasta con el "notepad". Creo que se entiende lo que quiero decir. :)

jhonalone 30-05-2017 13:22:49

Hola, de nuevo, a todos.
Gracias por vuestro desinteresado interés en mi problema.
Voy a haceros algunos comentarios sobre vuestras apreciaciones y consejos.

A David le funciona porque tiene la versión 6.

La pantalla que muestra Agustín, también es correcta, pues he condicionado el programa al uso de una tarjeta SD, donde se guardan todos los datos de la facturación, para no usar el espacio de almacenamiento interno del dispositivo. (Veo que ya pudiste descargarlo, Agustín, gracias)

El problema no está en la instalación. Está al ejecutar el programa en versiones inferiores a la 6, cuando está compilado en modo Release, pero no en modo Debug. (Esto ya lo he comentado) (E problema es que no se ejecuta, se aborta antes de mostrar la primera pantalla en estas versiones y en modo Release.)

Neftalí, gracias, ya estoy revisando los ficheros que van en Deployment y son los mismos. Como sabes no soy (ni muchísimo menos) tan experto como tu. Cuando te refieres al "modo Debug de toda la vida", no lo he utilizado y no sabría cómo hacerlo, por favor instrúyeme. Probablemente no sea tan complejo como a mí me parece. Actualmente estoy haciendo pruebas, cambiando los permisos y algunas opciones, a ver si acierto...
Pero dado que el problema está en el arranque sería muy útil lo que me comentas del modo Debug para saber "hasta dónde llega". Antiguamente (en Windows) era más fácil, pues se ejecutaban los programas en el entorno de Delphi y se podían poner puntos de ruptura, ejecutar paso a paso y demás...

Si llego a descubrir el problema, lo haré público para ayuda e alguien que tenga una dificultad similar.
Gracias a todos y saludos.

jhonalone 30-05-2017 13:53:14

Gracias por tu lección magistral, David.

Habrá que irse planteando algunas cosas.

El problema de esto es que (al menos a mí) me cuesta salir de la "comodidad" de "mi casita" (Entiéndase Delphi), donde se está tan "comodito" para adentrarte en un "bosque" (Entiéndase aprender nuevas tecnologías y lenguajes) que para mí es desconocido. (Ya estoy muy mayor para ésto) pero estoy seguro que tu aportación va a ayudar a mucha gente más joven con la mente más abierta y (sobre todo) más despejada que la mía.

Gracias por tu esfuerzo y por compartir con nosotros tus conocimientos.

Un Saludo.

dec 30-05-2017 14:30:05

Hola a todos,

Cita:

Empezado por jhonalone (Mensaje 517357)
Gracias por tu lección magistral, David.

Habrá que irse planteando algunas cosas.

El problema de esto es que (al menos a mí) me cuesta salir de la "comodidad" de "mi casita" (Entiéndase Delphi), donde se está tan "comodito" para adentrarte en un "bosque" (Entiéndase aprender nuevas tecnologías y lenguajes) que para mí es desconocido. (Ya estoy muy mayor para ésto) pero estoy seguro que tu aportación va a ayudar a mucha gente más joven con la mente más abierta y (sobre todo) más despejada que la mía.

Gracias por tu esfuerzo y por compartir con nosotros tus conocimientos.

Un Saludo.

No hay de qué, no faltaba más. Lo que dices me lo he planteado yo también, quiero decir, hacerlo notar en mis anteriores mensajes: en efecto, estamos hablando de otros lenguajes y entornos, y, esto puede tener su peso. Sin embargo, alguien habituado a Delphi está también habituado a objetos, eventos, etc. De modo que todo será ponerse a ello, claro está, empezando más o menos despacio, según nuestras posibilidades, puesto que pretender hacer una aplicación más o menos compleja "de cero" tal vez no sea posible... pero ni en estos lenguajes ni en Delphi ni en nada, vamos...

P.S. Quedo pendiente un nuevo mensaje con algunos frameworks y herramientas. Tal vez lo abra ya en otro hilo diferente para no copar este. :)

Neftali [Germán.Estévez] 30-05-2017 15:20:20

Cita:

Empezado por jhonalone (Mensaje 517356)
Cuando te refieres al "modo Debug de toda la vida", no lo he utilizado y no sabría cómo hacerlo, por favor instrúyeme. Probablemente no sea tan complejo como a mí me parece.

Pues no, no o es. Tal vez al decirlo de esa forma lo ha parecido.
Estaba pensando (y yo lo he usado en casi todas mis aplicaciones) en realizar un Log que se graba en disco en un fichero TXT. Puedes utilizar un TStrings, con los métodos SaveToFile y LoadFromFile.
Una vez que la aplicación peta, recuperas ese fichero del dispositivo y a ver lo que hay.

jhonalone 30-05-2017 16:44:18

Gracias Neftalí (sé que te gusta que te llamemos así).

Dado que mi programa no arranca en ciertas versiones, ¿qué puedo incluir en el fichero .txt? ¿ y si "casca" el programa sin cerrar el fichero, se podrá leer?

Con las pruebas que estoy haciendo, tengo una sospecha... a ver si consigo saber por dónde van los tiros, para poder buscar la solución.

Saludos.

Neftali [Germán.Estévez] 30-05-2017 17:05:28

Cita:

Empezado por jhonalone (Mensaje 517361)
Gracias Neftalí (sé que te gusta que te llamemos así).

Me es igual, el nombre o el apodo, como más te guste.

Cita:

Empezado por jhonalone (Mensaje 517361)
Dado que mi programa no arranca en ciertas versiones, ¿qué puedo incluir en el fichero .txt? ¿ y si "casca" el programa sin cerrar el fichero, se podrá leer?

Que no veas nada en pantalla no significa que no arranque.
Puede ser que se ejecute el Create, pero falle antes del show.
Puedes capturar excepciones a nivel de aplicación y volcarlas al fichero
...

En cuanto al fichero, debes hacer una rutina que grabe el fichero cada vez que llamas al procedimiento de Log. No debe grabar al final, como haríamos habitualmente, porque sino pasa lo que tú comentas.
Es más lento, pero en este caso en necesario.

Cita:

Empezado por jhonalone (Mensaje 517361)
Con las pruebas que estoy haciendo, tengo una sospecha... a ver si consigo saber por dónde van los tiros, para poder buscar la solución.

Ya dirás si averiguas algo más...

roman 30-05-2017 17:09:46

David,

Muchas gracias. Por tomarte el tiempo, por tu claridad y port u disposición. De verdad, muchas gracias.

LineComment Saludos

Neftali [Germán.Estévez] 30-05-2017 17:31:09

Cita:

Empezado por dec (Mensaje 517354)
¡Eso es todo de momento, que, tampoco es mi intención aburrir a nadie!

Gracias David por la completa explicación.
^\||/^\||/^\||/^\||/

jhonalone 30-05-2017 18:00:50

Hola. Neftalí.
Puedes estar seguro que si lo averiguo, lo compartiré. ¡Para éso está el foro! Si no....
Saludos.

Casimiro Notevi 30-05-2017 18:21:01

Cita:

Empezado por dec (Mensaje 517354)
Hola a todos...

:eek:
^\||/^\||/^\||/

jhonalone 02-06-2017 16:16:26

Hola a todos nuevamente.
Encontré el origen del problema. Pero mis conocimientos no alcanzan a explicar el por qué.

Intentaré ser telegráfico, más que breve.

La aplicación tiene un ayuda en línea basada en un TWebBrowser.

Para adaptar el tamaño de la ventana del TWebBrowser al tamaño de la ventana del dispositivo estaba usando una unit llamada FMX.DeviceInfo.pas descargada de aquí. Bastante útil, por cierto, para obtener información del dispositivo. Si no la conocéis os aconsejo que la echéis un vistazo.

Esta unit necesita una serie de permisos, (no se me ocurrió sospecharlo) que yo no le estaba dando en mi App. (Mi App como tal no los necesita)

EL PROBLEMA FINALMENTE ERA DE PERMISOS.

Pero la pregunta, todavía sigue en el aire ¿por qué si la instalas en modo debug, funciona bien y si la instalas en modo release no?

Ahora tengo dos nuevos problemas:
1.- ¿cómo adaptar el tamaño del WebBrowser a la pantalla del dispositivo?
2.- ¿cómo evitar que en los dispositivos más antiguos ( versión < 6), el margen derecho de la página mostrada no se agrande?

Pondré sendos posts para que alguien me ayude, si es posible. Mientras seguiré buscando soluciones a problemas que no sería necesario, si las herramientas que usamos fueran más perfectas.

A propósito. SUGERENCIA PARA LOS ADMINISTRADORES DEL FORO: Se me ocurre que ayudaría muchísimo en las búsquedas que cada post que esté resuelto tuviera una indicación. (Se me ha ocurrido ahora y no sabría dónde comentarlo)

Muchas gracias a todos por vuestro interés y vuestro tiempo.

Saludos.

jhonalone 02-06-2017 16:56:24

Hola.
¿Soy tan poco observador que no he visto las marcas de [ SOLUCIONADO ]?
Perdón, perdón.... mil veces perdón.
Perdón.

Casimiro Notevi 02-06-2017 17:58:00

Cita:

Empezado por jhonalone (Mensaje 517570)
Hola.
¿Soy tan poco observador que no he visto las marcas de [ SOLUCIONADO ]?
Perdón, perdón.... mil veces perdón.
Perdón.

Te lo ha cambiado a mano algún moderador :)
De momento no tenemos ningún método para hacerlo de otra manera.

jhonalone 02-06-2017 19:23:03

Hola Casi.
Lo importante es informar. No creo que importe el método.
Saludos.


La franja horaria es GMT +2. Ahora son las 05:47:10.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi