Cómo muchos ya sabrán, el jueves pasado Apple dió a conocer la actualización del OS4 para iPhone. Pero creo que eso no fue lo que generó tanto interés y discusión como la actualización de las políticas que se tendrán para el desarrollo sobre dispositivos de Apple bajo el SDK 4, en resumidas cuentas: Apple considera como ilegales las aplicaciones desarrolladas para sus dispositivos las cuales se generaron con lenguajes que no han sido autorizados por Apple. Los lenguajes autorizados son: ObjectiveC (nativo de la plataforma Mac), C, C++ y JavaScript. Bueno, ¿Qué pasa con las nuevas características que han sido anunciadas en la suite CS5, Flash específicamente?, la cual es capaz de generar aplicaciones que se pueden exportar a un dispositivo como: iPhone y iPod Touch, la respuesta es que estas aplicaciones, como ya mencionamos, son consideradas como ilegales. (more…)
April 12, 2010
November 11, 2009
Interfaz nativa o Interfaz a la medida.
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 6, 2009
Programación iPhone
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.