por .

Ventajas del desarrollo móvil multiplataforma

Luego de haber desarrollado CarteleraPanama durante los últimos meses, recibimos muchas preguntas de developers curiosos de como desarrollamos la aplicación y como hemos hecho una aplicación (funcional) tanto para Android como para iOS en un corto tiempo y totalmente nativa.

La respuesta es simple: todo gracias por haber escogido una tecnología que nos permitiera desarrollar las aplicaciones móviles multi-plataforma, con casi un mismo código base. Nosotros escogimos utilizar Appcelerator, una plataforma que permite la creación de aplicaciones para Android, iPad y iPhone (y ahora mobile web) utilizando tecnologías de la web.

Ventajas del desarrollo móvil multi-plataforma

Al decir multi-plataforma no nos referimos directamente a "escribir una vez, ejecutar en cualquier lado" sino más bien a "escribir una vez, adaptar en cualquier lado", término utilizado por Yehuda Katz, parte de la comunidad de SproutCore (ahora Ember.js) y jQuery.

¿Qué ventajas tiene hacer desarrollo móvil multi-plataforma sobre utilizar el desarrollo nativo directo? Muy fácil, listamos ciertas ventajas del desarrollo móvil utilizando tecnologías como Appcelerator:

1. Desarrollo rápido

Aún cuando no parezca, desarrollar CarteleraPanama nos tomó poco menos de 1 mes (contando servicios). Si desarrollamos aplicaciones más rápido tenemos clientes satisfechos y podemos desarrollar más en menos tiempo.

2. 100% de reutilización de código "no visual"

Toda la lógica utilizada en la aplicación ha sido utilizada y compartida para todas las versiones. Una misma lógica fue utilizada para desplegar todo tanto en Android como para iOS.

Casi reutilizamos toda la lógica visual también para la primera versión del app (la cual es meramente funcional), salvo ciertas "mejoras" dependiendo del dispositivo. Por ejemplo la utilización del menú contextual en Android o algunos estilos específicos para iPhone.

En este punto hay que destacar que es necesario leer, aprender y estudiar sobre las convenciones de UI por dispositivos. Cada dispositivo tiene características únicas:

  • En iOS los gestures son el centro de todo. En Android tenemos más funcionalidad por hardware (botones).
  • En iOS es un must leer sobre HIG. En Android existen los Android Interface Guidelines.
  • En iOS las interfaces son batante homogeneas entre las aplicaciones, en Android no.

3. Menos código = menos bugs

No necesariamente, pero es casi probable que entre menos código escribas vayas a generar menos bugs. Ha sido muy fácil el mantenimiento del app.

4. Te enfocas en una sóla tecnología

Te enfocas en una sóla tecnología, no tienes que enfocarte en varias tecnologías, lenguajes, editores ni nada. En Android harías Java con Eclipse, en iOS Objective-C con XCode, pero con Appcelerator haces todo en JavaScript, un lenguaje que muchos de nosotros nos resulta familiar.

5. Desarrollas para más público en casi el mismo tiempo.

CarteleraPanama en realidad estaba centrada en iPhone. Migrarla a Android fue cuestión (sin mentirles) de menos de 3 horas. Aún así tenemos más usuarios de iPhone que de Android, pero si si no hubiésemos hecho esa movida no tendríamos tantos usuarios.

Al final hacemos aplicaciones para que puedan usarse. Si hacemos aplicaciones que la usa sólo un porcentaje de nuestros posibles usuarios y el resto de ellos no la usan porque no tienen acceso a ellas es un error nuestro. Entre más abarcas más usuarios, es simple.

Algunas desventajas

No todo es lindo, claro que no. Hemos encontrado varias desventajas de trabajar multi-plataforma también:

  • Piensa (y mantente) "dentro de la caja". Si tratas de hacer algo nuevo, innovador o totalmente distinto vas a encontrarte con algunos problemas o tendrás que hacer módulos en Java y Objective-C.
  • Igual son necesarias mejoras específicas: ya sea para Android o iOS. No es mágico todo.
  • Rapidez de la aplicación, memory leaks, memory usage: Hemos encontrado uno que otro problema con la carga de la aplicación. Gracias a nuevas versiones del SDK de Appcelerator se han corregido la gran mayoría, pero hay que dedicarle mucho tiempo a hacer Profiling.

Demóstenes lidera el equipo de Ingeniería en Pixmat Studios. Es Ingeniero Electrónico y amante del café.


Comentarios

Nosotros

Pixmat Studios es una agencia de diseño y desarrollo de soluciones tecnológicas basado en Ciudad de Panamá.


Twitter

Continuemos la conversación en las redes sociales. ¡Síguenos en Twitter!



Artículos Recientes


Tags


Notice: Array to string conversion in /var/www/pixmatstudios.com/htdocs/site/plugins/tagcloud.php on line 38

Fatal error: Uncaught Error: Function name must be a string in /var/www/pixmatstudios.com/htdocs/site/plugins/tagcloud.php:38 Stack trace: #0 /var/www/pixmatstudios.com/htdocs/site/snippets/blog_sidebar.php(42): tagcloud(Object(page)) #1 /var/www/pixmatstudios.com/htdocs/kirby/lib/template.php(36): require('/var/www/pixmat...') #2 /var/www/pixmatstudios.com/htdocs/kirby/lib/helpers.php(66): tpl::loadFile('/var/www/pixmat...', Array, false) #3 /var/www/pixmatstudios.com/htdocs/site/templates/article.php(73): snippet('blog_sidebar') #4 /var/www/pixmatstudios.com/htdocs/kirby/lib/template.php(36): require('/var/www/pixmat...') #5 /var/www/pixmatstudios.com/htdocs/kirby/lib/template.php(25): tpl::loadFile('/var/www/pixmat...', Array, true) #6 /var/www/pixmatstudios.com/htdocs/kirby/lib/site.php(206): tpl::load('article', Array, true) #7 /var/www/pixmatstudios.com/htdocs/kirby/system.php(65): site->load() #8 /var/www/pixmatstudios.com/htdocs/index.php(71): require_once('/var/www/pixmat...') #9 {main} thrown in /var/www/pixmatstudios.com/htdocs/site/plugins/tagcloud.php on line 38