Diario de un programador PHP. Tecnología y embutidos.

Desarrollando un aplicación móvil

Abril 25th, 2011 Posted in General

Hace 2 semanas estaba sentado en el sofá trasteando con el ordenador, viendo la tele. Miré a mi mujer que estaba con el iPhone mirando el Facebook. Hacía días que la observaba. Durante al menos 2 semanas no había abierto su ordenador:
1- Para correo y facebook el iPhone
2- Para ver un a página web el iPad

Todo el día mira el facebook. Con sus amigas se envía mensajes con el Whatsup, y habla con su hermano con el Viber.

Los niños si no quieren comer, les damos el móvil y ponen sus juegos y sus vídeos.

En mi casa el ordenador ya es algo anacrónico y yo soy el “antiguo” que lo sigue usando (teniendo en cuenta que soy informático no me queda mucho remedio…al menos por un tiempo)

Así que … vivan las aplicaciones móviles!!!

Me he puesto manos a la obra para hacer una aplicación.

1- he conseguido un iphone 4
2- me he instalado xcode
3- he comprado la licencia anual de desarrollador (80 Euros)

y me he puesto a trastear

Fase I: phonegap.

Leido libro Buiding iPhone apps with html and javascript (http://www.amazon.com/Building-iPhone-Apps-HTML-JavaScript/dp/0596805780)
Instalado Xcode
Instalado phonegap + jqtouch (para L&F iphone like)
Aplicación hola mundo
Pequeña prueba de concepto

Lo que me gusta
- Es html +css + js
- html5 mola!!! la api de gestión de BDD local es la bomba
- La aplicación que queda es muy pequeña
- Realmente multiplataforma
- Se puede probar en el webkit en local antes de llevarlo al móvil.

Lo que no me gusta
- he leido que a nivel de rendimiento se nota (a pesar de que el iPhone 4 va muy rápidooo)
- En mi móvil noto algún bailoteo en las pantallas, se nota que no es nativo

- cuesta ajustar el look and feel aunque uses
- no he conseguido que me funcione la api de acceso a los contactos
- no se puede hacer todo

Nativo!!!: Objective C + Xcode

Rascamos un poco más, y me leo 1 libro de desarrollo nativo para iphone (supongo que todos son parecidos), y uno de objective-C.

Primera sensación: Qué raro es todo. Ya no me acordaba de C++ (hace más de 9 años!!!!) y objective C es aún más raro.
Segunda sensación: La sintaxis tiene su gracia, parece que estás leyendo un libro… me empieza a gustar
Tercera sensación: Xcode va guay, el editor de formularios es chulo y ya me empiezo a enterar de cómo funciona.

Me pongo a probar y en poco tiempo tengo una aplicación sencilla funcionando que añade lineas en un label al escribir en un campo de edición y hacer click

Conclusiones:
1- no está tan mal como pintaba. Pensaba que costaría más
2- el entorno de desarrollo funciona muy bien y puedo probarlo rápidamente.
3- pero, a estas alturas, aprender otro idioma
4- y encima tener que hacer a parte lo mismo con Android… ufff que pereza

Total que me pareció cojonudo, pero primero tocaba probar que funcionaba la idea antes de dedicar 1 mes de desarrollo (que no tengo) a la aplicación.

Fase 3: Titanium appcelerator

Desarrolla aplicaciones para iphone, android programando JS.
Se ejecuta con un runtime de js que genera un interfaz con elementos nativos del navegador (mejor rendimiento que phonegap). Nada de ventana web.
Un montón de ejemplos en la aplicación de ejemplo

Conclusiones
1- La aplicación de ejemplo (kitchenSink) tiene ejemplos para todo, listos para copiar y pegar
2- los tiempos de generación son más o menos razonables, pero para pasar la aplicación al iphone me tarda 2 min compilando las 500 CLASES QUE ME AÑADE PARA SU MOTOR!!!!!
3- En android es demencial hacer una prueba. Tarda casi 6 min en levantar y arrancar el móvil (me parece que es cosa del SDK de android más que de Titainum
4- tiene un IDE basado en Eclipse bastante chulo
5- la API es muy completa, tiene muchas funcionalidades.
6- He conseguido hacer la POC en 2 horas trasteando bastante y sin muchos problemas

Al final la jugada es …

Los generadores de código no me gustan, pero depués de leer muchos casos de éxito y fracasos en cada una de las plataformas, la jugada es…
1- hacer una primera versión con appcelerator. Creo que pone a tu disposición una cantidad de herramientas más que suficientes para hacer algo muy chulo.
2- si triunfa tirar por la solución nativa (hacerla o subcontratarla)

Iré comentando cómo va…

Post a Comment