Ver Mensaje Individual
  #25  
Antiguo 30-05-2017
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Reputación: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
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!
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita