Comparativa acerca de un app web vs una nativa, sus pros y sus contras.
Por Gustavo Barrientos (@tavobarrientos) de Acid Studios(@acidstudios) en el Barcamp Monterrey 2011, 3 de diciembre del 2011 @ CEDIM.
Presentación del desconferencista.\nIntroducción al tema\nDinámica smartphone\n
Jon Lech Johanssen, DVD Jon, Hacker Noruego, viejo conocido de Apple.\nNo se ofendan amigos linuxeros, pero es la verdad....\n\n\n
TROLOLOOOL!!!\nY bien porque Jon realizo este comentario de forma sarcastica?\nSimplemente, porque HTML5 no puede reemplazar al 100% a las apps nativas.....\n
Bueno Angry Birds tal vez no sea el mejor ejemplo del porque un App debera ser Nativa\nLa interfaz puede ser PERFECTAMENTE creada via CSS, incluso, Rovio ya lanzo hace un buen tiempo\nuna version para Chrome.... y de hecho el desempeño de la version web esta por debajo\nde la version Nativa para smartphone y tablets(incluso Windows y Mac).\nIncluso hay motores como LimeJS, Rocket Engine o Impact por mencionar algunos, con los\nque podemos crear juegos en HTMl5/JS.\n
Quien no ha jugado en su vida Unreal Tournament? Gears of War?\nBueno este juego fue creado directamente bajo el motor de estas dos joyas del videojuego, por Chair Entertainment Group LLC\nEstas apps no pueden ser creadas con HTML5/JS, forzosamente tendran que ser nativas...\nHablar de CloudMach, utiliza HTML5 y renderea con WebGL de lado del servidor...\nElimina la necesidad de un plugin.\n\n\n
He de reconocer CloudMach promete, pero actualmente no hay nada en concreto, salvo un video de presentacion....\nMe huele a Vaporware....\nY obviamente, si corremos algun juego con motor HTML5/JS, no obtendremos los mismo resultados en un Blackberry(por algo no lo soportan).\n\n\n
Pero volvamos al territorio de las Apps, los juegos son harina de otro costal, \nson requerimientos muy diferentes.....\nUn app muy sencilla que podremos comparar con la version web.\n\n\n
Otra app que podemos comparar es, una que todos hemos usado alguna vez, version web o movil\nFacebook..\n
Que pudimos apreciar? Tienen practicamente los mismos controles, ofrecen una interfaz muy similar a las versiones nativas...\nPero vamos a analizar mas a fondo las dos formas de crear apps.\n\n\n\n
Apps Nativas\nDejandonos del lado de si iOS o Android es mejor, si Blackberry no, hay muchas ventajas de un app nativa sobre una web, mencionemos algunas....\n\n\n
La primera, Monetizacion, todos buscamos dinero, y las apps hoy por hoy generan dinero\nPreguntenle a la gente de Rovio, Chair, a la gente de Tapbots(Creadores de Tweebot y Calcbot)....\nOfrecen formas muy comodas de generar ingresos, vender las apps, compras dentro de las apps,\nPublicidad dentro de las apps, aun el Blackberry App World, es una tienda a considerar dentro de\nnuestra vision de desarrollo movil.\n
El performance de la aplicacion, si bien HTML5 nos provee un performance rapido, aun no se puede comparar con el de una aplicacion nativa, especialmente cuando se envuelven animaciones y graficos algo pesados.\n
Percepcion del usuario...\nUn usuario asocia mas rapido el app nativa al dia de hoy que el app web, aunque esto va cambiando...\nEjemplo de iPod.\n
Acceso a Calendarios y Contactos del Telefono\nAcceso a la Camara, GPS...\n
Otra ventaja que tenemos con las apps nativas, podemos utilizar herramientas como Corona SDK(Lua), Appcelerator Titanium(JS, PHP, Phyton, Ruby, HTML), Xamarin(C#) o Rhomobile(Que ofrece varios productos para poder manejar, desarrollar e incluso para el deployment de la app).\n
Ya vimos las principales ventajas dentro de un app nativa, vamos a voltear el papel y a ver ahora a las apps web, no podemos descartarlas dentro del desarrollo movil....\n
Si procesos de aprobacion, escriobe tu app, publicala en tu servidor y dale promocion.\nAsi mismo tu puedes diseñar tu estrategia de Mercadeo y Monetizacion que mas te convenga.\n
Obviamente tendrias que probar el app, sobre varias plataformas, pero actualmente la mayoria de las plataformas moviles tienen \nun navegador con tecnologia webkit, entonces solo es cuestion de publicar tu app.\n
Si bien con las apps nativas, resaltamos el acceso a ciertas caracteristicas del telefono, como calendarios, contactos, camaras, GPS, gracias a HTML5, esto YA es posible(hablando del acceso a camaras, GPS), pero siendo sincero, calendarios y contactos, las apps ya utilizan la nube para guardar informacion, porque no usarla para tus contactos/calendarios, no entraremos en dilemas de seguridad :)\n
Finalmente, esta es mi parte favorita, porque no juntamos lo mejor de los dos paradigmas en uno solo?\nQue ventajas tendriamos?\n
Velocidad de Desarrollo...\nTendriamos una curva de aprendizaje demasiado corta, ya que aprender HTML es relativamente sencillo, un desarrollador experimentado, se adecuaria muy facil a la sintaxis de HTML5 y los frameworks de JS que existen en al actualidad.\n
Caracteristicas antes habladas de las apps nativas.\n
Que es Phonegap?\nEs un framework de desarrollo movil, desarrollado por Nitobi Software, que provee a los desarrolladores, la posibilidad de programar en HTML5/CSS3/JS en vez de usar lenguajes como Objective-C o Java.\nActualmente soporta una gran variedad de SO como iOS, Android, Blackberry, Web OS, Symbian, Bada y Windows Phone 7.\n
Me gustaria hablar de un caso de exito que tuvimos, y que uds pueden consultar en sus dispositivos, el app nativa de Barcamp Mty, esta misma fue publicada en la App Store de Apple y Android Market, la misma puede ser descargada a sus telefonos.\n
En estas imagenes se aprecia el app en un iPhone 4S y un Samsung Galaxy S2\n