lunes, 23 de diciembre de 2013

Mi primera app Android escrita en pascal.

Quisiera compartir mi experiencia en la construcción de una aplicación para Android muy simple.

Mi aplicación tiene 3 pantallas, la pantalla principal , la pantalla de datos y pantalla de configuración. Eso sólo se conectan a un servidor de RO construir con delphi y trabajando ver bien desde algunos como 5 años , creo.

Tengo que hacer una decisión de diseño . Que usar? Tengo una herramienta familiar con tantos cambios de menor importancia que pueda hacer una aplicación en la hora , y por otro lado tengo Oxygene , una buena herramienta, pero que requiere una gran cantidad de conocimiento de Java y los secretos de Android .

Podrán entender fácilmente mi decisión inteligente fue Delphi.

Entonces, a empezar!

Diseñar la interfaz de usuario ha sido fácil , muy fácil. En unas horas tengo toda la interfaz de usuario y el comportamiento básico. Observo algunos errores aquí y allá , pero mi aplicación estaba funcionando. Eso fue impresionante y era muy feliz de tener una aplicación android trabajando sin saber nada de Android!

El paso siguiente fue conectar con el servidor de Delphi . El problema principal era la falta de apoyo de RO a Delphi móvil.

Debo utilizar SOAP para esto. Después de algunos problemas, resueltos por Team de RO , me pongo en marcha.

Ok , es hora de probar ! La aplicación comienza a tener algunos errores , cerrarse de la nada sin ningún mensaje , se estrelló aquí y allá ... No puedo conseguir que funcione más de 2 horas en mis pruebas.

Intento todo para simplificar aún más la aplicación , utilice hilos para asegurarme de que no se sobrecargue ,  todo lo que puedas imaginar. No hubo suerte . Siempre sale con errores relacionados con los hilos , gráficos, etc, en su mayor parte de las veces.

¿Qué hacer? Mi aplicación debe ejecutarse en modo 24x7 kiosco , no puedo liberar algo tan  inestable. No puedo encontrar una solución allí, siempre cerca de la señal 11 , el funcionamiento de puntero no válido o error en los canvas.

Ok , vamos a tratar de hacer algo , no con la misma calidad , creo , pero correr para probar Oxygene estabilidad.

Mi aplicación estaba listo en 2 días, y hace todas las cosas que necesito. La dejo ejecutando días con prueba de esfuerzo, y el resultado fue una aplicación muy estable , conectandose utilizando canales RO estándar , que reincida el equipo android si no encuentra el servidor a la hora determinada , y tienen 150 Kb (vs 15 mb en Delphi)

Mi conclusión:

El proceso de trabajar en Oxygene fue increíble. Tenía un montón de prejuicios antes del arranque. La necesidad de conocer java y Android por ejemplo, pero la realidad el completado de código, gendarme y oxidizer hace la mayor parte del trabajo y todas las preguntas relacionadas con android se resuelven con una simple búsqueda en google .
Lo mismo para la interfaz de usuario , el trabajo fue rápido y fácil al ajustar mi interfaz de usuario mediante editores externos y ajuste de XML a mano cuando sea necesario. Incluso en el último tiempo, ya no uso los editores y añadí algunos controles a mano.

Soy un amante de delphi , amo delphi y yo he sido un amante de delphi durante años. Aquí todo el mundo lo sabe , yo incluso estuve muy contrariado a la idea que viene de RO de no permanecer compatible con móviles delphi, y siento que es como una traición .

Ahora tengo que decir que FM no está listo todavía , y hasta cuándo va a estar listo si sucede algún día, es una opción muy diferente ( no quiero decir inferior ) que la oferta Oxygene . Ahora entiendo por qué mh se queja mucho de lo que la FM tiene que ofrecer y por eso la mejor manera de ir es Oxygene .

Espero que no se pierdan mis amigos de la Comunidad delphi pero siempre ser honesto y yo no pienso dejar de ser honesto ahora .

Es bueno tener opciones y tal vez en una próxima versión de Delphi estará listo para una experiencia más estable.

Enjoy!