Sernart

November 11, 2009

Interfaz nativa o Interfaz a la medida.

Filed under: Programación,Tendencias — Tags: , — sernart @ 2:10 pm

A lo largo de mi experiencia como desarrollador, que ya es más de 10 años, he ido observando la evolución de las herramientas más populares en el mercado: Visual Basic, Delphi, C y C++, Magic (¿Alguien lo conoce?), los lenguajes del tipo script como: PHP, Java Script, Java con sus JSP’s, los cuales están inmersos en el HTML de nuestras páginas favoritas y más recientemente: AJAX, FLEX, AIR y la plataforma de desarrollo para aplicaciones de iPhone.

He mencionado los lenguajes con los que en algún momento he tenido oportunidad de trabajar y a últimos días creo que las tendencias nos han llevado a que los desarrolladores tengamos habilidades de diseñadores y viceversa. Sinceramente, conozco más desarrolladores que son buenos diseñadores que diseñadores desarrolladores, al menos en el ambiente en el que me muevo, aunque sé que eso es relativo.

El cuestionamiento que me hice al leer un artículo en una revista acerca del diseño de aplicaciones para móviles y específicamente para iPhone fue el detonador para este post.

¿Cómo sabemos cuándo centrarnos en la funcionalidad y cuando en la presentación?

Bueno, la respuesta es: depende del usuario al que vaya enfocada la aplicación y eso, creo, forma parte del diseño de la misma. Un día, en la presentación de un sistema con una inglesa, me di a la tarea de crear un módulo estadístico con animaciones, colores y demás parafernalia, lo anuncie con bombo y platillo y su respuesta fue: “No me interesa eso, yo quiero lo resultados en una lista de Excel”.

Ahora bien, considero que hay plataformas con ambientes gráficos que no necesitan mucho diseño detrás pues su vista es sobria, limpia y de buen ver. Para mí ejemplos de lo anterior son: FLEX, AIR y la plataforma de desarrollo para iPhone. Este último adopta el look de la interfaz del SO cómo: Delphi, Visual Basic y todos aquellos dinosaurios que hacían sus peripecias bajo ambiente MSDOS.

Concluyendo, creo que como desarrolladores debemos de ir adoptando la sensibilidad para poder llevar el diseño de nuestra interfaz a buen puerto dependiendo de las necesidades que reconozcamos en nuestros clientes y si bien quizá no ejecutemos los designios del diseño de las vistas de nuestras soluciones, esa sensibilidad que adoptemos nos ayudará a guiar a alguien más a obtener lo que llevamos en la mente y que presumiblemente es lo mismo que nuestro usuario final. Lo más recomendable es encontrar un balance y una firma que distinga nuestras aplicaciones en cuento a performance, presentación y usabilidad. A final de cuentas desarrollar es un arte ¿o no?

Les dejo unos puntos a considerar relacionado a Interfaces nativas y las que se hacen a la medida:

Nativas

  • Permiten aprovechar controles que ya están disponibles junto con la plataforma de desarrollo, en viste y funcionalidad.
  • Nos hacen el desarrollo más rápido.
  • Pueden crear dificultad en nuestros desarrollos para sobresalir ante los demás.
  • Generan desarrollos más optimizados.
  • Permiten enriquecer la funcionalidad y la rapidez de operación.

A la medida

  • Pueden ayudar a sobresalir a una aplicación aunque esta no sea la mejor programada.
  • Generan aplicaciones más pesadas.
  • Llevan más tiempo, implican costos y esfuerzos extra.
  • Generan distracción a los usuarios finales del verdadero objetivo de la aplicación.

Happy Coding.

October 15, 2009

¿Es realmente confiable la nube?

Filed under: Programación — Tags: , — sernart @ 2:37 pm

Actualmente, entre otras tendencias, podemos ver que muchas grandes empresas están apostando a la tecnología llamada: “Cloud Computing” (Computo en la nube). El concepto anterior se refiere a ofrecer servicios e infraestructura vía Web, sin que el usuario final se preocupe por instalar algo en su computadora personal o una empresa, por ejemplo, invierta en infraestructura de servidores para proveer servicios.

Ejemplos de empresas y tecnologías que siguen el paradigma de Cloud Computing podrían ser: Google con: Google Docs, Gmail, Google Wave;  Macintosh con Mobile me;  Microsoft con el desarrollo de su nuevo Office 2010;  Amazon con Amazon S3 y un largo etcétera.

La pregunta es: ¿Qué tanto confías en estos servicios? Recuerdo a Gmail quedar fuera de combate por un par de horas, un par de veces. La explicación saturación en los servidores. Más allá de una falla y de encontrar el por qué, se debe reflexionar en el estatus de la tecnología y en su viabilidad.

Quizá en algún momento dejemos de guardar cosas en nuestros discos duros externos, en el de nuestras laptops, pero que tan dispuesto estas a sufrir cuando tus datos no están disponibles o peor aún cuando estos se dañen y no se puedan recuperar…..

October 7, 2009

Open Laszlo

Filed under: Programación — Tags: — sernart @ 5:53 pm

Open Lazlo, es una herramienta open source para crear aplicaciones RIA (Rich Internet Applications), la descubrí por que unos canadienses nos contactaron para desarrollar un proyecto. Ayer comencé a explorarlo, equipe mi Macbook con Tomcat, que al final no fue necesario, y baje el install de Open Laszlo, lo instale con éxito. Revise la documentación en su página y me di cuenta de que es amigable, puede ser publicado como un SWF y como parte de DHTML. Hoy, busque un libro para irme guiando, prepare un documento descriptivo de las secciones del proyecto y un timeline, ahora a esperar a que nos den el banderazo de salida y a comenzar a codear. A pesar de lo anterior, sigo siendo fiel al buen Flex….

Sernart explorando Laszlo….. Loszla, alguien recuerda el capitulo de Don Gato y su pandilla?

Happy Coding

October 6, 2009

Programación iPhone

Filed under: Programación — Tags: , — sernart @ 3:25 pm

Llevo explorando la tecnología de programación para iPhone’s cerca de 2 meses. De poco en poco, he ido descubriendo un framework de programación sumamente apegado al modelo MVC (Modelling, View, Controller). En el recorrido de la curva de aprendizaje he ido encontrando similitudes con conceptos que se manejan en otros lenguajes que suelo manejar actualmente y que manejé en el pasado.

Los últimos dos fines de semana tome un curso en Activ (@activMX), impartido por Daniel Fernández (@tangamampilia) quien está dando un curso mucho más amplio y en forma de programación para iPhone’s en la universidad Iberoamericana. Dicho curso cumplió ampliamente con mis expectativas ya que pude conocer a una persona que tiene experiencia en esta tecnología y que nos transmitió esas pequeñas vicisitudes que se va uno encontrando en el camino y que muchas veces no están en los libros. En Activ están preparando un curso más largo de programación para iPhone’s y en propias palabras de Daniel Fernández, se vislumbra una futura comunidad de desarrollo sobre esta plataforma. Así es que habrá que estar pendientes de lo que suceda.

Resumiré mi experiencia en 10 puntos que seguramente con el tiempo irán creciendo e igualmente irán siendo divulgados:

  • Hay dos cosas sumamente importantes en el desarrollo de aplicaciones para iPhone’s y en general para móviles. Estas programando sobre un dispositivo con: display, memoria y procesador diferente al de una computadora. Por lo anterior: cuida tus diseños tomando en cuenta las medidas del display del teléfono, usa y libera la memoria en tus programas y planifica bien el flujo de tu aplicación antes de codificar, así identificaras procesos en los cuales tienes que poner más atención en aras de ganar performance.
  • Por cortesía de Daniel Fernández, no te estreses con los “warnings” del compilador, este suele ser sumamente quisquilloso.
  • Para programar aplicaciones para iPhone utilizamos Objective-C.
  • Existen 3 tipos de archivos principales: .h para definir las clases, .m para la implementación de las mismas y .xib para el manejo de los componentes gráficos de la aplicación.
  • En Objective-C existen IBOutlets e IBActions.
  • IBOutlets, son variables de instancia que permiten a la clase hacer referencia a los objetos gráficos del .xib.
  • Los objetos en un .xib pueden lanzar métodos especiales definidos en nuestra clase (.h) mediante IBActions.
  • Un modo de decirle al compilador que nos asigne métodos de tipo “accessors” y “mutators” (también conocidos como setters y getters) es mediante la palabra reservada @synthesize.
  • Se utiliza release para liberar objetos de memoria. “Nunca liberes memoria que no apartaste”.
  • Finalmente,  y por cortesía de Daniel Fernández, trata de no utilizar Xml para intercambio de información. Experimenta con Json, es sumamente sencillo.

Happy Coding.

Powered by WordPress