Cuanto cuesta desarrollar una app

¿Cuánto cuesta desarrollar una app?

Como desarrollador me encuentro a menudo con clientes que quieren desarrollar una app, tienen una gran idea, pero no saben por dónde empezar. Lo primero que me preguntan es ¿cuánto cuesta desarrollar esta idea? Mi respuesta a menudo es: ¿Cuánto cuesta un coche? Salvando las distancias, y dando por hecho que construir software no es lo mismo que construir coches ni casas de ladrillos, todos sabemos que no es lo mismo un Ford Ka que un Lexus descapotable, ¿no? Esto mismo podemos extrapolarlo al desarrollo de apps.

Estimar el coste de desarrollo de un proyecto es de las tareas más complicadas para un programador o diseñador freelance. Sin unas especificaciones claras, y unas directrices de diseño previamente establecidas es muy complicado dar una cifra concreta.

Podríamos basar el presupuesto en el número de pantallas a implementar: hasta 2000€ una app sencilla con 5 pantallas, de 4000€ a 6000€ una app de hasta 10 pantallas con conexión a un backend sencillo, etc. Pero esta aproximación puede ser engañosa, pues una app puede tener pocas pantallas pero una complejidad de implementación alta en cada una de ellas, o bien tener muchas pantallas con datos estáticos presentados de forma tabular, y ser por tanto, muy sencilla de desarrollar.

En mi caso concreto, a la hora de estimar presupuesto de una app, atiendo a varios factores que impactan directamente el coste de desarrollo. Por ejemplo, para cada interacción del usuario con el sistema, me planteo las siguientes cuestiones:

1- Nivel de personalización o estilo de diseño

Desde el punto de vista de un programador, no es lo mismo implementar una pantalla de datos tabulares y estáticos (típico menú de opciones fijas), que una pantalla con varias micro interacciones, dos animaciones, y un acabado estilo “Mr Wonderful”.

2- Política de cacheo de datos

¿La aplicación debe mostrar datos aún cuando no haya conexión a internet? ¿Cuando un dato se modifica en la versión web del sistema, los cambios han de reflejarse en la app? Y si es así, ¿Cuándo han de reflejarse, automáticamente, o haremos una consulta al servidor preguntando por cambios a cada minuto? Las casuísticas que se pueden dar son variadas. Y hay que elegir la técnica de cacheo de datos que mejor encaje en el proyecto.

3- Complejidad en la manipulación de datos

Cada caso de uso tiene un coste de implementación diferente. No es lo mismo mostrar una pantalla de datos estáticos, que un conjunto de datos filtrados, por ejemplo, por algún criterio seleccionado por el usuario.

4- Dispositivo en el que mostraremos la información

Existen apps que muestran los datos de una manera determinada en iPhone, pero que en dispositivos de pantalla más grande (como puede ser un iPad), al tener más espacio en pantalla, se podrían implementar diseños más adaptados.

5- Integración con sistemas o servicios de terceros

Hoy en día la comunicación con los backends modernos se hace a través de mensajes en JSON, pero aún existen sistemas legacy que usan otro tipo de comunicaciones basadas en XML. O incluso se puede dar el caso de necesitar comunicación en tiempo real usando websockets. El parseo y manipulación de objetos en formato JSON es relativamente sencillo de implementar, pero la complejidad aumenta cuando hablamos de XML o de protocolos diferentes.

6- El número de llamadas a servicios externos

Es otro de los indicadores que impactan directamente en el tiempo de desarrollo de una app, y por tanto en su coste. Ten en cuenta, que para cada llamada de red hay que prever la implementación uno o varios mensajes de error que se mostrarán al usuario (si tiene sentido hacerlo).

7- Soporte multi idioma

En iOS hay que mantener tantos ficheros de cadenas como idiomas en los que esté soportada la app. Esto tiene su traducción en el coste de la app.

8- Backend personalizado

Tampoco debes olvidar que, si vas a almacenar datos de tus usuarios en la nube, necesitarás un servidor donde alojarlos y un servicio web para consumirlos, es decir, un backend. Si el backend no es muy complejo puedes empezar por opciones como Firebase (gratuito hasta cierta cantidad de tráfico/datos almacenados). Pero si tienes necesidades de backend específicas, con procesamiento en la nube, o lanzamiento de trabajos en servidor programados, necesitarás invertir también en hardware y un perfil en el equipo que se encargue de programar y mantener este componente de tu app.

 

 

También es cierto que muchos emprendedores que quieren publicar su app no tienen la idea lo suficientemente madurada como para proporcionarme este tipo de información en la primera reunión, por lo que es necesario que alguien les acompañe durante esta fase inicial hasta que consigan obtener unas especificaciones listas para implementar. En esta fase, comúnmente llamada conceptualización, los roles más interesantes son: el propio emprendedor o product owner (propondrá funcionalidades), un experto en usabilidad y/o diseño (propondrá wireframes y especificaciones para el desarrollador), y un desarrollador frontend especializado (analizará la viabilidad de implementar las funcionalidades propuestas por product owner y experto en usabilidad). En algunas ocasiones, si se detecta la necesidad de implementar un backend personalizado, también será necesaria la presencia de un desarrollador backend especializado.

Además, y aunque es posible estimar un coste de desarrollo inicial para lanzar la versión 0.1 de tu app, una vez lanzada hay que mantenerla y evolucionarla. Una app es un proyecto vivo y que evoluciona con el tiempo. Es un proceso iterativo de publicación de versión + escuchar a tus usuarios +  medir resultados + añadir/cambiar/eliminar funcionalidades para volver al inicio del ciclo otra vez. Y este es un coste que no mucha gente prevé desde un principio. Tampoco debes olvidar, si tu app se dirige a un mercado B2C, que necesitarás una estrategia de marketing y servicios de ASO para optimizar la búsqueda de tu app dentro del Store.

Fuente de la imagen que acompaña el artículo: pixabay

 

 

7 Comments
  • Jorge González
    Posted at 08:31h, 23 April Reply

    Muy interesante Roberto intentar responder a la eterna pregunta. Lo cierto es que aunque tengas experiencia en desarrollo de productos de apps, siempre siempre, antes de implementar nada debes definir el proyecto con un programador y alguien de UX. Primero, simplemente por que estarán más al día que tú en tendencias y funcionalidades. Te podrán decir lo que no se puede hacer (o es más caro), pero también lo que sí en base a nuevas posibilidades.

    Por otro lado antes del desarrollo también está bien reunirse con alguien de marketing para ver qué implementar en la versión 1 de la app. No he dicho nada de negocio, pero eso lo doy por supuesto 🙂

    • Roberto
      Posted at 09:10h, 23 April Reply

      Jorge, ¡gracias por tu comentario!
      Tienes toda la razón, y la fase de la que hablas es la que comunmente llamamos conceptualización, donde vislumbramos el alcance del proyecto en cuanto a diseño y programación, detectamos funcionalidades y también riesgos asociados. Totalmente fundamental.
      Estoy también de acuerdo sobre lo que comentas del apoyo de gente de app marketing también desde un inicio, pues aportarán mucho valor sobre todo justo antes de salir al mercado, pero también: sugerencia de KPIs interesantes, diseño de analíticas, estrategia de engagement, optimización del ASO, etc. una vez lanzado el producto.
      ¡Un abrazo!

  • Victor Tejada Yau
    Posted at 16:40h, 08 May Reply

    Tremendo post amigo, aprendo mucho con estos post, saludos desde Panama crack

    • Roberto
      Posted at 17:02h, 08 May Reply

      Muchas gracias por tus palabras, compañero. Un fuerte abrazo!

    • Roberto
      Posted at 17:23h, 08 May Reply

      Y si tienes alguna duda o quieres que trate algún tema en concreto, dímelo también. Abrazo!

  • Fernando Zepeda
    Posted at 11:59h, 10 May Reply

    Hola! una disculpa, se que no tiene nada que ver con tu sitio, que me parece genial lo que haces, pero vi uno de tus comentarios en themeforest sobre la integaración de thrive leads y el tema de bridge y no he podido hacer que funcione, ojalá me puedas ayudar 🙂 muchas gracias

    fernando

    • Roberto
      Posted at 05:02h, 12 May Reply

      Hola Fernando,
      los de thriveleads me pasaron una actualización en un zip y me dijeron que podía sustituirla tranquilamente porque la siguiente actualización ya llevaría los cambios. Así que me lo solucionaron en el momento, y luego no se ha vuelto a romper.
      Suerte, y un abrazo!

Deja un comentario