Archivo de la categoría: Uncategorized

R.I.P. Silverlight y Flash

RIP Creo que lo que el difunto Steve Jobs alguna vez vaticino sobre Flash se cumple. HTML5 crece junto con el segmento mobile y la necesidad de unificar un standard de codificación independiente de la plataforma y que por supuesto no este basada en mágicos generadores de código.

Los frameworks que aprovechan todas las facilidades de HTML5 + CSS3 + JavaScript compiten con aplicaciones nativas en algunos casos mano a mano. Hoy  en dia claramente si buscamos fluides en el UI, velocidad de procesamiento, acceso a  recursos de hardware no podes escapar a utilizar codigo nativo de la plataforma. Pero donde esta necesidad no prima encontramos mayores facilidades en un entorno HTML5.

Ese es el hoy, pero el futuro plantea un escenario en donde las ventajas del codigo nativo no seran tales y las GUI seran tan fluidas en HTML5 como lo son las nativas.

Hoy hay que entender que las plataformas que permiten la utilizacion de HTML5 frameworks son aquellas que poseen navegadores basados en webkit y no son muchas pero si las mas importantes:

  • Apple Safari en su linea Mac OSX, iPad,  iPhone, iPod Touch.
  • Android
  • Chrome
  • etc.
Quienes quedan fuera del juego:
  • Windows Mobile
  • Windows Phone 7
  • Windows 8?
  • RIM (todos sus equipos no touch anteriores al o.s. ver6)
Para cada uno de estos podemos encontrar ad-hoc scripts y HTML pero ninguno cumplimenta el standard HTML5. Algunos de los features que HTML5 provee son:
  • OFFLINE STORAGE
  • DEVICE ACCESS
  • CONNECTIVITY / REALTIME
  • PERFORMANCE & INTEGRATION
  • MULTIMEDIA
  • SEMANTICS
  • GRAPHICS, 3D & EFFECTS
  • CSS3 / STYLING
Al margen, una serie de compras y modificaciones marcan el camino a una unificacion sobre HTML5.
  1. Phonegap fue comprado por Adobe. Para los que no lo conocen Phonegap es un framework de apps. HTML5 que le permite a los desarrolladores un acceso común a las funciones nativas de cada dispositivo: acelerometros, cámara, captura de imágenes, compás digital, conexión, gps, media, notificaciones,  almacenamiento, etc. Como todos sabemos Adobe en su momento habia adquirido Macromedia quien era el creador de Flash y sobre esto baso su tecnologia Air. Con lo cual esto seria un paso decidido de Adobe hacia HTML5. Notas relacionadas: Adobe adquiere Nitobi.
  2. Windows Phone 7 ha anunciado compatibilidad webkit y soporte completo de HMTL5 en sus futuras actualizaciones de Windows Phone 7 que vendrian con IE9. (también incluye en el anuncio la inclusión de soporte para Silverlight, pero no creo que eso haya impactado como lo primero).
  3. Ripple fue comprada por RIM. Si si, el lento y pesado elefante moribundo del mundo mobile, resiste. Ha comprado una empresa cuyo principal producto es un conjunto de herramientas HTML5 y JS que forman una suerte de IDE (siendo muy generoso) que permite emular un dispositivo móvil. Pero no estamos hablando de un simulador iOS o Andriod, sino de un emulador de webkit (en definitiva un iframe en un navegador Chrome) que nos permite jugar con los diferentes tamanos de pantallas, inclinar el dispositivo, actualizar el gps, etc. Todo esto es realizado utilizando Phonegap y alternativas. Con lo cual no estamos hablando de un framework de desarrollo propiamente dicho sino de un entorno o set de herramientas que junto con el debugger de Chrome es una suerte de IDE.
  4. Microsoft apuesta ahora a las Metro Apps para su plataforma Windows 8. Alguien dijo Silverlight? no… de hecho quieren que Windows 8 corra bien en una core i7 como en una tablet con ARM, donde no hay lugar para Flash o Silverlight.
  5. Para Microsoft es oficial:
 ”In a post to the Building Windows 8 blog, Internet Explorer development chief Dean Hachamovich made clear the IE 10 browser in Windows 8 will not support plug-ins. That means that neither flash nor Silverlight will run in IE (though other apps, including other browsers, may support the Flash and Silverlight players.) Instead, Microsoft will follow Apple’s lead and rely on native HTML 5 for rich web applications and media play.”
Microsoft, Apple, Google, Android y ahora Adobe están en la carrera del por el calis sagrado: un framework HTML5 CSS3 JS multiplataforma. Solo espero que en el medio respeten los standards.

Appcelerator Titanium

Introducción

Segun la version oficial:

Titanium es un Open Source Framework, para construir aplicaciones Desktop y Mobile nativas utilizando tecnologias web abiertas como JavaScript, HTML5 y CSS.

Titanium permite desarrollar sobre una API JavaScript y portar el proyecto fácilmente a iPhone, iPad, Android y en poco tiempo BlackBerry. Sin duda a simple vista suena excelente pero como todo tiene sus bemoles.

Algunos contra que podemos encontrar son:

  • Lack de documentacion
  • Lack de IDE
  • Lack de Debugger
  • No convierte el codigo JS a nativo. Sino que es solo precompilado y ejecutado en un runtime JS que hace un mapeo directo a las funciones nativas del OS.
  • Los controles no se comportan 100% igual de una plataforma a otra, pequeñas diferencias de render.

    Algunos puntos a favor pueden ser:

    • Open Source. apache 2.0 License
    • Comunidad en constante crecimiento
    • Baja curva de induccion para desarrolladores que tengan conocimiento en JavaScript y HTML/CSS
    • Compatibilidad con iPad, iPhone, Andriod, y pronto BlackBerry en beta
    • Extensible, por medio de Titanium+Plus Modules
    • Acceso a la comunidad Open Source JavaScript
    • Las aplicaciones corren de manera fluida como cualquier otra nativa
    • Reduce los costos de desarrollo

      En realidad no se trata de un compilador Cross-plataforma sino de un runtime que ejecuta linea por linea nuestro JavaScript que ejecuta nuestro código y provee de un puente común para ejecutar codigo nativas de cada OS Mobile. Lo positivo es que permite utilizar HTML5 y CSS e insertar con una baja curva de inducción desarrolladores web a la plataforma Mobile.

      Toda nuestra aplicación puede ser desarrollada en JavaScript y HTML5/CSS, pero como en todos los frameworks de este estilo el gran problema se plantea cuando se requiere alguna funcionalidad o control out of the box.

      Dado que provee un puente que permite ejecutar código nativo por detrás, si deseamos un control especifico que solo puede ser implementado en código nativo Objective-C o Android, debemos utilizar lo que ellos denominan desarrollo de Titanium+Plus Modules que son extensiones para poder invocar código nativo propio.

      En el caso de que necesiten saber mas sobre Titanium+Plus Modules para iPhone sigan el link. Luego de buscar, encontre una guia para Andriod en Titanium+Plus Modules para Android.

      Un buen punto de entrada es comenzar leyendo las Started Guides. Si aun no tenemos la plataforma instalada hay buena informacion de como hacerlo en Mac, Windows y Linux en Get Started. Luego Titanium provee otros puntos de encuentro para la comunidad como un el blog Appcelerant, twiter, irc, etc. Por mi parte lo que más me ayudo a tirar algo de codigo en esta plataforma fueron las Programming Guides.

      Mi sugerencia es hacer la instalacion directamente en Mac OSX donde podremos ver el potencial real de Titanium al poder ver nuestra aplicacion corriendo en iPhone y Andriod al mismo tiempo.

      Si quieren agregarle al ambiente Titanium un IDE con un minimo de auto completar visiten Appcelerator + Aptana + Intellisense.

      Plataforma

      Nuestra aplicacion sera desarrollada principalmente en JavaScript, utilizando la API que Titanium provee en comun para las plataformas mobiles. Titanium precompila el JS y lo empaqueta junto con un runtime y las  clases nativas iPhone o Andriod.

      El runtime  ejecutara nuestro codigo linea por linea y cada invocacion JS a la API de Titanium deriva en una llamada a codigo nativo.

      Teniendo una vision simplicada de este framework, diria que es como tener macros de alto nivel JS que terminan invocando por detras codigo de nativo. Hay que tener en claro que el compilador de titanium precompila el JS para una ejecucion rapida y empaqueta el proyecto, pero NO convierte nuestro codigo en codigo nativo al momento de la compilacion, esto solo sucede durante la ejecucion y por medio del bridge.

      Continuara…


      Usuarios avanzados

      Dado la demora en algunos releases de Titanium SDK 1.5.0, estoy comenzando a probar las “continuous builds” estas se pueden conseguir en http://builds.appcelerator.com.s3.amazonaws.com/index.html.

      Para poder utilizar las nuevas funciones de +Plus Modules for Andriod necesitamos el Titanium Mobile SDK 1.5 el cual solo puede ser encontrado entre las continouos builds. Esta version se encuentra actualmente en QA y esperamos un release para este mes o diciembre.

      Appcelerator Issue Tracker, podemos dejar nuestros issues registrados y seguirlos en https://appcelerator.lighthouseapp.com/dashboard


      Buscando hosting de SVN

      En a busqueda de un hosting SVN que que sea rapido, gratuito, y que permita versionar proyectos que no son Open Source (no por ser propietario sino por verguenza de que cualquiera ver menudo mamarracho) bueno he aqui un excelente indice, con una tabla comparativa de los hosting disponibles y filtros a gusto. http://www.svnhostingcomparison.com/


      Seguir

      Get every new post delivered to your Inbox.