Desarrollar y publicar una aplicación móvil en Google Play Store
Índice
Introducción
Vivimos en un mundo controlado por aplicaciones móviles. Es por esto que quise vivir la experiencia de un desarrollo para dispositivos móviles. Fue en mayo de 2023, que empecé un proyecto personal que pretendía cubrir una necesidad hogareña. Enfrente variedad de obstáculos que fueron moldeando y dando vida a este proyecto hasta terminar publicándolo en la tienda de apps más grande del mundo: Google Play.
Enfoque
Esta aplicación me permitiría llevar un control sobre los medicamentos que hay por casa. En el momento de redactar este artículo, existen pocas aplicaciones destinadas a esto, y las que hay, carecen de características básicas para esa labor. Entonces, me puse manos a la obra y comencé a buscar la forma de llevarla a cabo con con tecnologías web.
Tecnologías
Existen variedad de lenguajes y framework dedicados a esta labor, pero tenía claro que quería usar mis conocimientos de React y no complicarme mucho con nuevas tecnologías, porque eso retrasaría mucho todo el proceso.
Entonces, descarté opciones como Flutter o React Native (pese a sus similitudes con React). Había oído hablar de Ionic Framework, pero trabaja con un catálogo de componente y eso no me llamaba mucho la atención. Tiene una cosa buena y es asegurarte, en un porcentaje muy alto, de que la interfaz funciona correctamente en los dispositivos de Apple y los Android. Yo, tenía más que suficiente con el proceso de Android…
Pero investigando sobre Ionic, descubrí la que sería la tecnología que impulsaría mi aplicación hasta la store de Google: Capacitor. Es lo que usa de base Ionic Framework para comunicarse con las funciones nativas de los dispositivos. Lo genial de Capacitor es que puedes usarlo con el framework web que más te guste.
Proyecto
Tenía las dos tecnologías principales: React y Capacitor. Lo unico que debía aprender, eran las funciones propias de la librería de Capacitor. Pero fue al poco tiempo que comenzaron los quebraderos de cabeza.
Base de datos
Capacitor cuenta con muchos plugins (oficiales y de la comunidad) para suplir ciertas necesidades. En concreto, hice uso de uno llamado @capacitor-community/sqlite para generar una base de datos SQLite en la memoria del dispositivo. Muchos de estos plugins han sido migrados de Cordova, que es otra tecnología más antigua destinada al mismo propósito. Y en esa migración, algunos plugins perdieron funcionalidades importantes. En este caso, la posibilidad de generar una base de datos SQLite durante el desarrollo de la aplicación web.
Dado que Capacitor es capaz de detectar la plataforma en la que se está ejecutando, usé esa función para que cuando esté ejecutándose en la plataforma “web”, en vez de llamar a las funciones de Capacitor, hiciese llamadas HTTP a un backend sencillo que programé en PHP, el cual también interactúa con una base de datos SQLite.
Notificaciones
Me hubiese gustado añadir notificaciones a la app, por ejemplo, cuando un medicamento caduque. Esto fue algo que intenté, y de momento, no he logrado. Esto se debe a que hay versiones de Android en las que simplemente el sistema operativo “mata” la aplicación de forma sistemática, y con ella, cualquier proceso que estuviese preparado para notificar algo.
Publicidad
Desde un principio tuve muchas dudas en si publicar la app gratis con publicidad o de pago. Finalmente, como estaba probando y era mi primera experiencia, decidí una mezcla no invasiva de ambas. En España estaría a 1€ (0,8€ sin impuestos) y, el resto de países, lo calcularía Google en función de su economía. Y sin que llamase mucho la atención, una pequeña publicidad permanente en la parte inferior. Eso lo pude conseguir mediante AdMob, empresa que fue absorbida por Google en 2009.
Publicación
Esta fase fue un suplicio, ya que no tiene tanto que ver con un desarrollo. Google, por seguridad pone muchas pegas para publicar aplicaciones. No quiero tampoco asustarte, ya que son pasos que solo debes realizar una vez.
Obstáculos de publicación
La primera barrera que te encuentras, es la de pagar una cuota de registro de unos 25 USD. Aquí no hay alternativa alguna, si deseas continuar, debes abonar la cantidad como hice yo.
La siguiente es la de añadir todos tus datos (hasta el color de tu ropa interior). A mí al menos, me dio bastante inseguridad exponerme tanto fiscalmente, sobre todo porque es un hobby y posiblemente no vaya mucho más lejos de eso.
Políticas de privacidad. Cada una de tus aplicaciones debe contar con sus políticas de privacidad publicadas y disponibles mediante una URL. Es decir, es todo cosa tuya, ya que ellos no proporcionan ningún lugar donde publicarlas. Yo opté por subirla a Vercel y agregarlo a un subdominio mío.
Tu aplicación y cada una de sus versiones a producción, deben pasar ciertos controles automáticos. Una serie de bots de Google, instalan tu aplicación y se ponen a toquetearlo todo a ver qué pasa. Luego puedes ver un resumen con capturas de pantallas del resultado con diferentes puntos (como la accesibilidad). En el caso de que alguno de esos puntos te ponga impedimientos, solo tendrás que seguir las indicaciones.
Primeros resultados
Lo cierto, es que no conseguí ninguna venta, al menos de usuarios desconocidos. Y Google tampoco hacía esfuerzo por mostrarla en las búsquedas. Incluso buscándola por su propio nombre, salía en la decimocuarta posición 😑, por debajo de apps que no tenían ni quiera que ver con el ámbito de salud (probablemente patrocinadas).
Finalmente, despues de varias versiones, he decidido ponerla gratis, lo que implica que ya nunca más podrá ser de pago. No es que lo diga yo, lo dice Google Play 😅. Con esto espero maximizar las descargas y quizá, llegar a recuperar algo de dinero en el tiempo invertido. Para ello, quise implementar algo más de publicidad, pero no mucha. En principio, solo quedaba subirla a producción, pero no todo podía ser tan sencillo…
Versión rechazada
Resulta que Google puso esta nueva versión en revisión durante un día, cosa que no había hecho desde la primera versión que subí y, posteriormente, la rechaza. Había saltado alguna alarma en sus comprobaciones automáticas sobre recopilación de datos del usuario. ¿Recopilación de datos? — Pero si mi aplicación no recopila ningún dato — pensé. Apelé, porque para mí no tenía ningún sentido, y cuando mi caso fue atendido por un persona, esta pudo “aclararme” que efectivamente existía una recopilación de datos técnicos del dispositivo y esto se debía declarar en la ficha de la tienda.
Seguía perdido, no estaba entendiendo como y quién estaba recopilando datos. Fue entonces cuando quise probar suerte con ChatGPT, a ver si era capaz de aclararme algo, y así fue. Aportando todos los datos posibles, la IA me explicó que, aunque AdMob pertenecía a Google, tengo que declarar que ellos mismos, si recopilan información mediante la publicidad de mi app… 🤔
Básicamente, tuve que marcar un check algo oculto, que advierte a los usuarios en la ficha, que mi aplicación INDIRECTAMENTE (aclaro), recopila datos técnicos del dispositivos, algo normal hasta en la publicidad más básica de Google. A priori, nada de lo que debamos preocuparnos, ya que la mayoría de apps que usamos, hacen lo mismo.
Conclusiones
Después de leer este artículo, es posible que todo el proceso se te haga más ameno, porque al menos sabes a lo que te enfrentas, a diferencia de mí. Pero si que debes tener bastante paciencia, ya que son procesos lentos.
Y otra cosa que debes saber, es que esta plataforma, al menos actualmente, se enfoca más hacía personas que tienen muy claro un emprendimiento serio con app móviles, y da muy poca cabida a la experimentación, ya sea por tantear el terreno, como por hobby.
Como había comentado, la aplicación ya está disponible en la Google Play Store. Espero que pueda serte útil y le des difusión si te gusta el proyecto.