Advertisement
  1. Code
  2. Mobile Development

Cómo crear una aplicación

by
Read Time:10 minsLanguages:

Spanish (Español) translation by Carlos (you can also view the original English article)

Existen varias formas de crear una aplicación móvil. ¿Quieres saber cuál es la mejor? Depende. ¿Con qué tecnologías tienes experiencia? ¿A qué plataformas te piensas dirigir? ¿Cuánto tiempo quieres dedicar a la creación de tu aplicación?

El espacio móvil experimentó una revolución después de la introducción del iPhone en 2007. En 2008, Apple introdujo el SDK (siglas en inglés de Kit de desarrollo de software) nativo, lo que hizo crecer aún más esta revolución. Actualmente, existen millones de aplicaciones móviles, docenas de plataformas e innumerables frameworks, así como plataformas y herramientas para crear las aplicaciones.

¿Cómo decidir lo que es adecuado para ti? Responder a esa pregunta es el objetivo de este artículo. Analizaré los tipos de aplicaciones móviles que se encuentran en el mundo real, las ventajas de las aplicaciones nativas e híbridas, e incluyo una lista de algunas de las plataformas más populares.

Tipos de aplicaciones

Las aplicaciones móviles se pueden dividir en tres amplias categorías:

  • aplicaciones web
  • aplicaciones híbridas
  • aplicaciones nativas

Cada uno de estos tipos tiene sus ventajas y desventajas. Si me preguntaras qué tipo se adapta mejor a tus necesidades, mi respuesta sería «depende». Para justificar mi respuesta, primero necesito explicarte sobre cada tipo de aplicación. Empecemos con las aplicaciones web.

Aplicaciones web

Tal vez ya estés familiarizado con las aplicaciones web. Una aplicación web no es más que un sitio web, que actúa y se comporta como una aplicación. Antes de la introducción del SDK de iOS en 2008, las aplicaciones web eran la única opción para los desarrolladores que quisieran crear aplicaciones para el iPhone original.

Las aplicaciones web tienen una serie de distintas ventajas, la más importante es el tiempo de desarrollo. Debido a que una aplicación web es un sitio web, se crea una vez y se puede acceder desde todas las plataformas que ejecuten un navegador web. Para algunas empresas, esta es una solución muy atractiva, pues el desarrollo nativo, el cual analizaremos en un momento, puede ser costoso y lleva mucho tiempo. Podríamos decir que las aplicaciones web son, por definición, multiplataforma.

Otra ventaja importante es la curva de aprendizaje que se necesita para desarrollar aplicaciones web. Para desarrollar una aplicación web, se requieren tecnologías web con las que quizá ya tengas experiencia, como HTML, CSS y JavaScript. De ser así, estarás preparado en un tiempo mínimo.

Genial. ¿Tiene inconvenientes? Hay algunos. Los dos más importantes son el rendimiento y el acceso a las capacidades del dispositivo. Si planeas desarrollar un juego, una aplicación web no es tu mejor opción. Es posible, pero el rendimiento no será estelar. Los sitios web y las aplicaciones web tienen acceso limitado a las capacidades del dispositivo, como la cámara, los servicios de ubicación, etc. Esto ha mejorado significativamente con el paso del tiempo, pero no está a la altura de las aplicaciones nativas.

Si quieres reducir los costos en el desarrollo y el mantenimiento de tu aplicación móvil y el rendimiento no es el aspecto más importante, entonces, sin duda, vale la pena considerar una aplicación web.

Si quieres saber de qué se tratan las aplicaciones web y cómo empezar, este tutorial es un buen lugar para iniciar, por ejemplo, con Laravel:

Aplicaciones híbridas

Las aplicaciones híbridas fueron y siguen siendo increíblemente populares. Combinan algunos de las mejores aspectos de ambos mundos, es decir, web y nativo. Las tecnologías que se utilizan para crear aplicaciones híbridas son idénticas a las utilizadas para crear aplicaciones web, HTML, CSS y JavaScript. La razón es obvia si conoces cómo funcionan las aplicaciones híbridas.

Una aplicación híbrida es una aplicación web que se ejecuta en una vista web de una aplicación nativa. Dicho de otra forma, una aplicación híbrida utiliza una aplicación nativa como su contenedor para que parezca una aplicación nativa. Esto significa que, para el usuario, una aplicación híbrida se ve y se siente nativa ... en cierto modo. El usuario puede descargarla desde la tienda móvil de la plataforma y el ícono de la aplicación aparece en su pantalla de inicio.

¿Alguna desventaja? Debido a que las aplicaciones híbridas se basan en tecnologías web y se ejecutan en una vista web, estas se ven afectadas por la mayoría de los mismos problemas que las aplicaciones web. El rendimiento no está a la altura de las aplicaciones nativas. No obstante, esto está cambiando, cada año el rendimiento es mejor. Es impresionante cómo ha mejorado el rendimiento de JavaScript durante la última década.

La solución más popular para desarrollar aplicaciones híbridas es Apache Cordova, Cordova para abreviar. Cuando Adobe adquirió PhoneGap hace unos años, abrió la mayor parte del código base y nació Cordova. PhoneGap aún existe y es el primo comercial de Cordova.

Para acelerar el desarrollo, los desarrolladores con frecuencia usan Cordova en combinación con otros frameworks, como Ionic y Onsen UI.

Para aprender más sobre las aplicaciones híbridas, te recomiendo que consultes algunos de los tutoriales que hemos publicado sobre Cordova:

Aplicaciones nativas

Al elegir el desarrollo nativo estamos eligiendo rendimiento y confiabilidad. ¿Por qué el desarrollo nativo asusta a tantos desarrolladores? Tomemos la plataforma iOS como ejemplo. Si quieres crear una aplicación nativa de iOS, necesitas aprender un nuevo lenguaje, Objective-C o Swift. También debes familiarizarte con Xcode, el IDE (siglas en inglés de entorno de desarrollo integrado) de Apple. Por lo general, para crear una aplicación nativa se requiere más tiempo, simplemente porque estás trabajando más cerca del hardware, por así decirlo. Objective-C y JavaScript son dos lenguajes muy diferentes.

¿Qué obtienes a cambio? El rendimiento es probablemente la ventaja más atractiva de las aplicaciones nativas. Las aplicaciones nativas se sienten rápidas y, especialmente los juegos, pueden aprovechar al máximo los recursos del dispositivo y el sistema operativo. El desarrollador puede acceder a todas las funciones y capacidades del dispositivo que se exponen mediante las APIs del SDK. Esta es otra ventaja clave que tienen las aplicaciones nativas sobre las híbridas y las aplicaciones web.

Hay una serie de métodos híbridos que hacen que el desarrollo de aplicaciones nativas sea accesible para más desarrolladores. La solución es simple, escribe el código en el lenguaje de tu elección y compílalo en una aplicación nativa. Al momento de redactarse este artículo, las soluciones más populares son Xamarin y React Native.

Xamarin permite a los desarrolladores escribir aplicaciones nativas para iOS, Android y Windows Phone utilizando C#. Las herramientas de Xamarin aprovechan el proyecto de código abierto Mono. React Native tiene sus raíces en Facebook y permite a los desarrolladores escribir aplicaciones nativas utilizando JavaScript.

Envato Tuts + cubre una gran variedad de plataformas, incluyendo iOS, Android, Xamarin y React Native. Revisa los siguientes tutoriales para familiarizarte con ellas:

Nativa o híbrida

¿Cuál es la mejor solución? ¿Nativa? ¿Híbrida? ¿O una aplicación web? No hay una sola respuesta. Depende de varios factores. Si eres desarrollador, la respuesta es menos complicada. ¿Con qué tecnologías estás familiarizado? ¿Quieres enfocarte en una plataforma o deseas crear aplicaciones para varias plataformas?

Se está volviendo un verdadero reto mantenerse al corriente de iOS, Android y Windows Phone. Algunos desarrolladores escriben aplicaciones nativas para múltiples plataformas, pero es un desafío y no lo recomiendo. El espacio móvil evoluciona a un ritmo rápido y es casi imposible conocer todas las plataformas a la perfección. Si optas por el desarrollo nativo, entonces ese debería ser tu objetivo, familiarizarte bastante con la plataforma que hayas elegido. Ese deber ser tu objetivo como desarrollador nativo.

Esta es una de las razones por las que muchos desarrolladores escogen una solución híbrida. Si eres un desarrollador web experimentado, estarás listo de inmediato. Apache Cordova, en combinación con Ionic u Onsen UI, puede acelerar el desarrollo de forma significativa.

Las aplicaciones web son, sin duda, algo a tener en cuenta. Sin embargo, son una categoría diferente. Al crear una aplicación web, no se pretende tener una aplicación en ninguna de las tiendas móviles. Muchas empresas eligieron esta ruta hace varios años. Actualmente, si se dispone de presupuesto y recursos, las modalidades nativas e híbridas son más populares.

Preguntas que te debes hacer

Me gustaría finalizar este artículo haciéndote algunas preguntas que te ayudarán a decidir qué método te puede funcionar mejor.

¿El rendimiento es crítico?

Una aplicación nativa es tu mejor opción. Si planeas desarrollar un juego, quizá debas considerar Unity.

¿Es importante el soporte multiplataforma?

¿No? Entonces deberías considerar la ruta nativa. Si el soporte multiplataforma es vital, entonces una modalidad web híbrida-nativa o híbrida es tu mejor opción. Echa un vistazo a Xamarin o React Native si el rendimiento y las capacidades del dispositivo son igualmente importantes.

¿Es este tu próximo gran objetivo?

Si tu objetivo es convertirte en desarrollador móvil, mi sugerencia sería que optaras por un método nativo. Sin embargo, esto es muy personal. Soy un desarrollador de iOS y no lo querría de ningún otro modo. Al centrarme en una plataforma (iOS, tvOS, watchOS y OS X), tengo tiempo para familiarizarme con ella. Este es un aspecto importante del desarrollo móvil si quieres crear aplicaciones atractivas y una excelente experiencia de usuario.

Si tienes experiencia en desarrollo web, el enfoque nativo sigue siendo una opción. No obstante, si deseas sacar algo pronto, entonces la modalidad híbrida o web es la solución más rápida.

Conclusión

Si esperabas una respuesta clara, tal vez te haya decepcionado. Si aún no te has decidido, te sugiero que pruebes algunas de las opciones que mencioné. Experimenta con Cordova o toma un curso rápido sobre Swift y ve si te gusta. No tomes el camino más fácil o el más rápido hacia tu objetivo. Asegúrate de disfrutar también del viaje porque ahí es donde está la diversión.

Si ya sabes qué método es el mejor para ti, quizá quieras acelerar el desarrollo de tu próxima aplicación con algunas de las plantillas para iOS y Android. Échales un vistazo en Envato Market:

Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.