Ver Mensaje Individual
  #8  
Antiguo 22-06-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!

He leído vuestros mensajes esta mañana, pero, no he podido responderlos hasta ahora mismo. Pido disculpas. ¡Y vamos allá!

Cita:
Empezado por newtron Ver Mensaje
Muy buen artículo.

Pero como está en "La Taberna" no le he hecho mucho caso.
Bueno, tú de lo que leas créete la mitad de la mitad por si acaso.


Cita:
Empezado por mamcx Ver Mensaje
Mucho mejor que Cordova, es usar React Native . Si vamos a sufrir el uso de JS entonces al menos usar la opción que da el mejor desempeño:

https://facebook.github.io/react-native/

(O http://www.telerik.com/nativescript tambien)

(Ademas que es posible usar TypeScript, que es JS pero menos horrible)

P.D: React Native es lo mas cercano a desarrollo nativo usando JS que hay.

Cita:
Empezado por roman Ver Mensaje
Leyendo...



Mientras tanto...



A ver compañero , que el maese dec se ha echado un rollote informativo y como que eso de desdeñar la info de un plumazo, pues, no digo que no tengas razón, que muchas veces la tienes, pero, ¿no podrías ahondar un poco y así ayudarnos a fijar posturas?

LineComment Saludos
Bueno, pero, también para eso estamos aquí, ¡para discutir!

Cita:
Empezado por mamcx Ver Mensaje
La informacion de dec esta bien, el porqué react es en general mejor es debido a que:

- Cordova y similares: Usas el control WebView y cargas todo como si fuera una página web, con un poco de comunicación entre el webview & el host para lo demás.

En donde quizás esto tiene mucho sentido es cuando queremos empaquetar un sitio existente y darle un toque de acceso al móvil, pero la app es definitivamente un sitio web "local".

- React & NativeScript: Solo usas el runtime de JS y los controles y clases son los NATIVOS de la plataforma. React también es una librería de hacer UI de forma declarativa, y se puede compartir una buena parte entre servidor/cliente.

Aquí estamos usando Javascript como un lenguaje de scripting sobre el runtime nativo del host, no usamos HTML, ni CSS, ni el DOM. Si tenemos un "Button" es el del host.

Esto es mejor si queremos que la app desempeñe prácticamente si fuera hecho de forma nativa, acceso casi completo a toda la API del host, etc. Es decir, es como si usaramos Xamarin o Delphi, solo que aqui es con JS.

React ADEMÁS es una excelente librería que resuelve el tema de cómo operar la UI y notificar los cambios (ie: data binding). Piensen que es como los controles RAD de Delphi, pero sobre una MUCHO MEJOR base lógica.

P.D: React es también usado en el servidor y para hacer páginas web, tanto directamente en el cliente, como compilado en el servidor. Se puede usar agregado al HTML/CSS o de forma totalmente independiente.
Ciertamente, no he probado "React-Native", aunque, recuerdo haber leído al respecto. El "framework" "React" sí que lo he probado, he leído su documentación, y, en efecto, podría ser un candidato para implementar en nuestras aplicaciones el "Two-Way-Data-Binding" mencionado arriba.

En efecto, no sólo existe Apache Cordova, ni tan siquiera "React-Native", también hay otras herramientas similares, por ejemplo, las que tratan (como Apache Cordova) de utilizar el "WebBrowser" las diferentes plataformas añadiéndole algunos "componentes nativos" accesibles vía Javascript. Digamos, no obstante, que Apache Cordova está en desarrollo constante desde hace más de cuatro años... hasta donde yo llego.

No estoy muy seguro de si "React-Native" trabaja de este modo, pero, según entiendo de tu mensaje no se basa en los "WebBrowser", sino en otras cosas. Está bien, Mario, no hay ningún problema, seguramente "React-Native" puede ser también una buena herramienta para según qué aplicaciones.

Sin embargo, creo que hay algún que otro punto que puede al menos debatirse. Ciertamente, "React-Native" te liga a un "framework" Javascript determinado, como es "React". Apache Cordova, en este aspecto, no sólo no te liga a ningún "framework", pero, tu aplicación podría ser la siguiente después de escribirlo en el bloc de notas que mejor te parezca:

Código PHP:
<!DOCTYPE html>
<
html lang="en" dir="ltr">
 <
head>   
  <
meta charset="utf-8" />
  <
meta name="viewport" content="width=device-width, initial-scale=1" />
  <
title>Mi app</title>
 </
head>
 <
body>
  
¡Hola mundo!
 </
body>
</
html
Por eso también, precisamente, una aplicación HTML, Javascript y CSS, aunque use partes de Apache Cordova, siempre funcionará en cualquier navegador. Por supuesto, no podrá contar con lo que Apache Cordova le proporciona, pero, podrá seguir contando con todo lo demás, cosa que, si desarrollamos en "puro nativo", no vamos a poder hacer.

A lo mejor me equivoco y una de las plataformas de "React-Native", como también ocurre en Apache Cordova, es, precisamente, la plataforma "Browser", es decir, de manera que algunos de los plugins de Apache Cordova estén disponibles también en los navegadores. Como digo, no sé si esto es posible utilizando "React-Native".

Sin embargo, aunque la plataforma "Browser" no estuviese disponible en Apache Cordova (que lo está), lo cierto es que, poniendo por ejemplo la aplicación en que estoy ahora trabajando, de las más o menos 20 vistas conque cuenta, en sólo tres de ellas es necesario el uso de cierto plugin para Apache Cordova: el plugin Camera.

En realidad, si quisiéramos, podríamos preparar lo necesario para que, en dicha aplicación, se utilizase un posible sustituto al plugin Camera de Apache Cordova: de hecho estaba ya implementado así, utilizando controles HTML "input file". Esto, insisto, al menos ha de considerarse: nuestras aplicaciones correrán también en cualquier navegador en cualquier dispositivo.

A la hora del desarrollo también nos viene muy bien que nuestra aplicación pueda correr en cualquier navegador. En el caso de la aplicación en que trabajo y del programa con el que lo hago, probar una aplicación en Android puede llevarme menos de 20 segundos con mi teléfono conectado al PC, pero, probarla en el navegador me lleva aún menos tiempo: esto mismo, el tiempo de "compilación y prueba" se agradece mucho en Delphi también. "Compilamos" muchas veces al cabo del día...

¿Posibles desventajas del desarrollo "web"? Pues que acaso los controles no luzcan como los nativos. Afortunadamente, con "frameworks" como "Bootstrap CSS" (nótese que es el único que he recomendado aquí), esto no parece un mayor problema: nuestras aplicaciones pueden lucir realmente bonitas y aún espectaculares: dependerá de nosotros mismos, del estilo de nuestra app, de las imágenes utilizadas, etc.

A más a más, de entre los cientos de temas que hay para "Bootstrap CSS", seguramente existirá alguno que "imite" los controles nativos de esta o aquella plataforma. Cambiar de tema, si es que se precisa, es cuestión de enlazar con este o con aquél archivo CSS y tal vez algún otro Javascript. Pero, sinceramente, lo digo de verdad de forma sincera, yo no me preocuparía por la comparación con los controles nativos en este aspecto.

Otra cosa que quiero añadir, para ir terminando, es que, en mi opinión, Mario, has mencionado de una forma un tanto "despectiva" (pero sin malos rollos) a las aplicaciones HTML "que corren en local". No sé si conocerás el cliente de correo web de Google, GMail, que, podría perfectamente correr en local. Personalmente, llevo usando GMail desde hace años... con estupendos resultados, hasta el punto de que no uso ningún otro cliente de correo desde que lo conocí. ¿Cómo te quedas?

Uno de los puntos que mencioné arriba trata del hecho de que las aplicaciones HTML, CSS, Javascript (cada vez más, y, hoy día con cosas como Apache Cordova o similares herramientas, siempre que no rompan la "compatibilidad web", como tal vez sea el caso de "React-Native"), digo, que estas aplicaciones, están lejos de ser "simples" o "meros juguetes". Antes al contrario, se ven aplicaciones, juegos, "sitios web", en definitiva, la mar de útiles y para nada "simples".

No voy a comparar la aplicación en la que trabajo con GMail (aunque cumple su cometido perfectamente), empero, como dije en mi primer mensaje, esta aplicación permite el acceso a documentos privados para cada usuario, publicar artículos en un mercadillo, y, al modo de Wallapop, el contacto entre compradores y vendedores. La aplicación implementa varios tipos de "avisos" en forma de notificaciones "push" (que te llegan a tu dispositivo casi en tiempo real), noticias de la empresa a sus trabajodes, el acceso a programas, cursos, y, en definitiva, un montón de cosas útiles que esperamos satisfagan a sus usuarios.

Para terminar sólo diré que yo no soy ningún máster del universo, quiere decirse, que, con el debido conocimiento y el trabajo que sea menester, las aplicaciones HTML, CSS y Javascript pueden resultar muy, muy potentes. No olvidemos una cosa que tal vez los desarrolladores Delphi pasamos por alto al enfocarnos en el "local" que significa Microsoft Windows y la posibilidad de acceso al sistema de archivos, etc.: en las aplicaciones HTML, Javascript y CSS podemos tener a nuestra disposición uno o más servidores detrás para ofrecernos todo tipo de datos e información con la que trabajar.

¡Y eso es todo de momento! ¡Siento haberme enrrollado tanto!

P.D. Estoy seguro de que "React-Native" tiene también no pocas ventajas, pero, como no lo conozco, no las he mencionado.

P.D.2. Se me ha olvidado comentar acerca de Javascript vs Dart vs TypeScript vs [Ponga aquí lo que quiera]. En realidad nadie te impide usar estos lenguajes, que, al cabo pueden y aún deben "compilarse" a Javascript. Personalmente, no sé porqué, llámame estúpido, porque, seguramente no es otra cosa, prefiero el Javascript "puro"... pero, como digo, Apache Cordova no te impide usar estos lenguajes si luego los compilas al Javascript que al final se termine usando.
__________________
David Esperalta
www.decsoftutils.com

Última edición por dec fecha: 22-06-2017 a las 21:15:01.
Responder Con Cita