Cómo desarrollar app

Cómo desarrollar tu propia app

Carlos Yañez

18-09-2020

Cada día se publican nuevas apps para móviles y el crecimiento de estas es exponencial.

Desarrollar una app requiere obviamente de conocimientos de programación, y si queremos que nuestra app sea multiplataforma es posible que debemos convertirnos en grandes programadores, pero también hay otros aspectos que debemos tener en cuenta.

Aspectos para tener en cuenta para el desarrollo de una app móvil

De cara a desarrollar nuestra propia app, hay tres aspectos básicos que debemos tener claro para poder empezar y que son los que aquí revisaremos. Debemos contestar a las siguientes preguntas:

  • ¿Cuál es el objetivo de la app?
  • ¿Sobre qué plataformas va a poder ejecutarse?
  • ¿Qué tecnología usaré para su desarrollo?

 

  • Objetivo de la app

El primer paso para desarrollar nuestra app es tener claro qué queremos que haga nuestra app. Es una obviedad, pero es necesario tenerlo claro e incluso crear una pequeña maqueta o mockup de cómo será nuestra app.

Para esto tenemos diversas opciones de aplicaciones entre las que destacan NinjaMock o InvisionApp que son las más extendidas. 

Dediquemos un tiempo a tener clara la idea, el concepto y la creación de una maqueta previa.

Plataforma de ejecución.

Para la ejecución de nuestra app, también deberemos tener claro si queremos que se ejecute en una sola plataforma o que sea multiplataforma.

Las plataformas que tienen el 99% del mercado son Android y iOS y siempre es buena idea intentar tener un desarrollo multiplataforma para poder llegar al máximo de usuarios posibles.

Si embargo, podemos centrarnos en el desarrollo en una sola plataforma si el uso de la app está limitado a un conjunto de usuarios como por ejemplo los comerciales de una empresa cuyos terminales son Android.

La decisión sobre la plataforma o plataformas a utilizar es importante, ya que tiene un impacto económico en el desarrollo de la app. Desarrollar para iOS es más caro y requiere de una licencia, pero también es más rentable porque los usuarios de iOS suelen tener mayor poder adquisitivo y están dispuestos a pagar por apps que funcionen bien

 

  • Tecnología para usar en el desarrollo

En el mundo del desarrollo de app móviles nos encontramos con diversas opciones de herramientas, lenguajes y entornos para la programación de estas.

Antes de iniciarnos en este mundo en importante decidir entre una de estas opciones de cara al desarrollo de nuestras apps:

  • Usar lenguajes y herramientas nativos de cada plataforma:

  • ObjectiveC/Swift y XCode en iOS
  • Java y Android Studio en Android
  • C#, XAML y Visual Studio en el caso de Windows 10.
  • Herramientas multiplataforma que compilan a código nativo. La más conocida y utilizada es Xamarin.

Herramientas multiplataforma basadas en HTML5. La más conocida es PhoneGap/Apache Cordova, pero existen muchas más.

Encontraremos ventajas e inconvenientes en cada una de las opciones por lo que podemos tener dudas a la hora de elegir uno de los caminos. Voy intentar orientaros en la elección.

  • Desarrollar con lenguaje nativo

Desde mi punto de vista, desarrollar de forma nativa es sin duda lo mejor, ya que puedes sacarle el máximo provecho a tu programación al adaptarse totalmente al entorno en el que se ejecutará la app.

El problema existe en que cada plataforma (Android, iOS, etc.) usa un lenguaje de programación diferente por lo que si se pretende desarrollar de forma nativa para varias plataformas el tiempo de desarrollo se dispara pues se debe partir de cero para cada plataforma, no pudiendo reutilizar código entre una y otra plataforma.

Normalmente los programadores solo se especializan en una plataforma de desarrollo para poder hacerse expertos en la misma.

  • Desarrollar en multiplataforma con compilación a código nativo

Existen herramientas en el mercado que permiten programar en un único lenguaje que luego compilan al código nativo de cada plataforma.

La ventaja de estas herramientas es que solo es necesario usar un código de programación para poder desarrollar para todas las plataformas. Además, te permite reutilizar el código y acelerar de esta forma la programación de tus apps.

Quizás la herramienta más conocida es Xamarin. Si sabes programar en C# y .NET, este entorno de desarrollo te permitirá crear tus propias apps para las tres plataformas principales del mercado (Android, iOS) con un único código que será compilado de forma nativa para cada plataforma.

Es un entorno muy completo, ya que las aplicaciones escritas con Xamarin en C# al compilarse a código nativo en cada plataforma, tienen un rendimiento exactamente igual al que el de una aplicación nativa. Además, ofrece acceso directo nativo a todas las APIs de cada plataforma, así como a los controles de interfaz de usuario nativos

  • Desarrollar en multiplataforma basado en HTML

Para un programador web lo más sencillo para desarrollar una app móvil es usar alguna herramienta basada en HTML que permita generar aplicaciones para las diferentes plataformas.

Aunque existen varias opciones en el mercado, quizás una de las más usadas es PhoneGap/Apache Cordova (dos nombres para un mismo entorno de desarrollo).

Las apps escritas en HTML5 y compiladas con PhoneGap, permiten crear la interfaz usando HTML, CSS y JavaScript, y desplegar a las diferentes plataformas.

En cada una además podemos utilizar un “skin” concreto para que el aspecto sea lo más similar posible al de las aplicaciones nativas.

PhoneGap crea un contenedor para la aplicación que la ejecuta como si estuviesen en un servidor web local. Además, exponen gran parte de la funcionalidad nativa del dispositivo móvil a través de librerías JavaScript, de modo que es muy sencillo “engancharse” desde la aplicación HTML5 que estamos creando.

El problema o desventaja principal de este tipo de entornos de desarrollo es el rendimiento de las aplicaciones resultantes que es inferior al de una aplicación desarrollada de forma nativa.

Otro aspecto “negativo” es que tampoco tenemos acceso a las API’s nativas de cada plataforma, limitando algunas funcionalidades.

  • Desarrollo híbrido

El desarrollo de aplicaciones híbridas combina lo mejor de las dos opciones anteriores (desarrollo nativo y desarrollo sobre HTML), ya que son multiplataforma y permiten un desarrollo relativamente rápido y a unos costes muy contenidos.

Este desarrollo se realiza sobre un navegador web y acceden a las APIs nativas de cada sistema operativo para poder acceder a los recursos propios del dispositivo.

El rendimiento es mejor que una aplicación desarrollada en tecnología web, aunque inferior al de una aplicación desarrollada de forma nativa.

Por un lado, podremos realizar un desarrollo válido para cualquier plataforma solo con un poco más de esfuerzo que si lo realizásemos íntegramente web. Estamos combinando tecnologías web con funciones nativas del sistema operativo sobre el que se ejecuta.

Respecto a las actualizaciones y distribución de este tipo de aplicaciones, se realiza desde la AppStores, ya que requieren una instalación, lo cual significa que pueden llegar a utilizarse sin conexión a Internet, en función de la naturaleza de la propia aplicación.

Lo más interesante es que podremos usar las capacidades del dispositivo sobre el que se ejecuten. Es decir, tendremos acceso a por ejemplo el GPS, la cámara, etc., ya que al usar las API’s proporcionadas por el sistema operativo, podremos interactuar con él.

Esto es realmente interesante, ya que, con un coste contenido, podremos desarrollar multiplataforma sin limitar el acceso a funcionalidades propias del dispositivo.

¿Por qué opción debo decantarme?

Después de exponer estas alternativas se nos plantea la duda de qué tipo de entorno utilizar. Yo creo que la elección es bastante sencilla y dependerá por un lado de nuestras capacidades y de otro de nuestras necesidades:

  • Si solo vas a programar para una sola plataforma (por ejemplo, Android) y no conoces C# ni HTML, entonces aprende las herramientas y el lenguaje nativo de la plataforma elegida.

 

  • Si conoces C# o HTML, puedes optar por programar en un entorno como Xamarin o como Phone Gap

 

Sí, sin embargo, quieres tener una aplicación para todas las plataformas, entonces tus opciones son:

  • Aprende ObjectiveC y Cocoa Touch para iOS, Java y el SDK de Android para Android. Esto es bastante complicado pues requiere ser un experto en diferentes lenguajes

 

  • Usa C# y Xamarin y podrás desarrollar para todas las plataformas con compilación nativa.

 

  • Usa HTML5 y PhoneGap (u otra herramienta similar) y podrás desarrollar para todas las plataformas, aunque con algunas limitaciones.

 

  • Desarrolla una aplicación híbrida.

 

Ya hemos contestado a las tres cuestiones necesarias para poder desarrollar tu app, ahora solo hay que ponerse manos a la obra.

Mucha suerte y a por el desarrollo de una buena app.

Profile picture for user Carlos Yañez
Carlos Yañez

Ingeniero Superior de Telecomunicaciones por la UPC. Director de Informática en un Laboratorio de Análisis con implantación nacional. Profesor de los cursos de Electrónica y Técnico en Sistemas Microinformaticos y Redes.

FP de Grado Superior en Desarrollo de Aplicaciones Multiplataforma

en FP de Grado Superior / Informática y Tecnología

Consigue ahora tu título de FP de Grado Superior de Desarrollo de Aplicaciones Multiplataforma con la mejor preparación a pruebas libres.

1.500 Horas

Videotutoriales

Prácticas Profesionales

Solicitar información