Ir al contenido principal

Caso de éxito · Telecomunicaciones · Móvil

Caso de éxito Personal Account: autoservicio de telecomunicaciones para iOS y Android

Publicado el · Actualizado el · Por YuSMP Group Engineering

Caso de éxito de app de autoservicio para clientes de telecomunicaciones: el operador que está detrás de la app Personal Account quería un autoservicio que no pareciera el menú de voz IVR de 2010 transcrito a la pantalla de un teléfono. Los abonados de telecomunicaciones de Estados Unidos y la Unión Europea esperan poder cambiar de tarifa, recargar su saldo, activar un paquete de itinerancia y hablar con una persona real en un chat 24/7 sin acabar en un centro de llamadas. El sistema heredado del operador

SectorTelecomunicaciones · Móvil
Año del proyecto2023
ColaboraciónPrecio cerrado + soporte continuo
Imagen principal del caso Personal Account: resumen del producto para el despliegue en EE. UU. y la UE

El reto: un producto que supera auditorías en EE. UU. y la UE

El operador que está detrás de la app Personal Account quería un autoservicio que no pareciera el menú de voz IVR de 2010 transcrito a la pantalla de un teléfono. Los abonados de telecomunicaciones de Estados Unidos y la Unión Europea esperan poder cambiar de tarifa, recargar su saldo, activar un paquete de itinerancia y hablar con una persona real en un chat 24/7 sin acabar en un centro de llamadas. El autoservicio heredado del operador era un envoltorio WebView delgado que competía mal con las apps nativas de abonados de los operadores regionales dominantes: primera pintura lenta, sin soporte para Apple Pay ni Google Pay y sin un shell offline justo en los momentos en que el abonado era exactamente el público que necesitaba autoservicio (sin señal, sin dinero, sin app). Creamos la app Personal Account desde cero como dos aplicaciones nativas: Swift en iOS y Kotlin en Android, con un backend compartido en Laravel 10. El resultado es una app de autoservicio disponible en App Store y Google Play para la base de abonados del operador, y orientada a las expectativas del RGPD y la CCPA en EE. UU. y la UE desde el primer día.

Aspectos destacados del proyecto

iOS nativo en Swift Android nativo en Kotlin Cambio de tarifa con vista previa de la facturación Tarjeta, Apple Pay, Google Pay Chat de soporte 24/7 dentro de la app Interruptores de servicios adicionales Transporte y almacenamiento cifrados Plazo de entrega de cuatro meses

En cifras

Un resumen de lo que aportó el desarrollo de Personal Account en su primer ciclo de producción para EE. UU. y la UE.

2plataformas nativas: iOS en Swift y Android en Kotlin, con bases de código totalmente separadas
4 mesesdesde el arranque hasta el envío a App Store y Google Play: el plazo realmente entregado
3instrumentos de pago de serie: tarjeta, Apple Pay y Google Pay
<500 mstiempo típico de arranque en frío en un iPhone o un Pixel de gama media
100%eventos de cambio de tarifa escritos en el registro de auditoría de la cuenta visible para el abonado
12–18 sem.plazo de entrega típico de una app móvil comparable de autoservicio de telecomunicaciones
Selector de tarifas de Personal Account: desglose visual de los cambios de plan y su efecto en la facturación

Por qué Swift y Kotlin nativos en lugar de un desarrollo multiplataforma

La elección de la plataforma dominó todas las demás decisiones de arquitectura en el desarrollo de Personal Account. Un stack multiplataforma (React Native, Flutter o un frontend con Kotlin Multiplatform) reduce el coste de ingeniería en teoría, pero en la práctica pierde dos cosas que le importaban al operador: un flujo de Apple Pay / Google Pay de primer nivel y la fiabilidad nativa de las notificaciones push que esperan los abonados cuando les llega al teléfono una alerta de interrupción o de altos cargos de itinerancia. Elegimos Swift en iOS y Kotlin en Android porque la superficie de integración (Apple Pay con PassKit, Google Pay, la semántica nativa de entrega de APNs y Firebase Cloud Messaging) amortiza la inversión por plataforma a lo largo de un ciclo de vida de la app de cinco años.

Para un operador que atiende a abonados en Estados Unidos y la Unión Europea, el beneficio de segundo orden es la cadencia de lanzamiento independiente. El equipo de iOS puede entregar un pulido de Apple Pay sin depender de la reescritura de WorkManager del lado de Android, y viceversa, lo que importa porque los plazos de revisión y las actualizaciones de políticas de Apple y Google no avanzan a la par. Todo el trabajo se entrega como parte de nuestra práctica de desarrollo de aplicaciones móviles, con contratos de API compartidos a cargo del equipo del backend en Laravel.

Swift / Kotlin nativos frente a React Native frente a Flutter para una app de autoservicio de telecomunicaciones
CriterioNativo (Personal Account)React NativeFlutter
UX de Apple Pay / Google PayHojas de PassKit / GPay de primer nivelMódulo puente: retraso con las actualizaciones del SOPlugin: retraso con las actualizaciones del SO
Fiabilidad de las notificaciones push con DozeFCM + APNs + WorkManager nativosPuente hacia lo nativo: propenso a rarezas de los fabricantesPlugin hacia lo nativo: similar
Presupuesto de tamaño de la appMínimo: binario por plataforma+~10–15 MB de entorno de ejecución JS+~7–10 MB de motor
Tiempo de arranque en frío~500 ms típico~1–2 s con el calentamiento del puente JS~800 ms–1.2 s
Cadencia de lanzamiento independienteSí: equipo completo por plataformaPaquete JS acopladoPaquete Dart acoplado
Retraso con las novedades del SONinguno: se publica la misma semanaDe semanas a mesesDe semanas a meses
Coste de ingeniería (5 años)Dos stacks: se amortiza con la fiabilidadUn stack: coste de mantenimiento del puenteUn stack: coste de actualización del motor

Referencias: documentación de PassKit de Apple Pay, Google Pay para Android, documentación de Doze de Android.

Cartera de facturación de Personal Account en iOS: pagos con tarjeta, Apple Pay y recarga de saldo

Desarrollo para iOS: selector de tarifas y cartera de facturación

El cliente de iOS está desarrollado en Swift, con SwiftUI para la capa de interfaz y Combine para el flujo asíncrono de datos. El selector de tarifas es la pantalla con más interacción del producto: una lista vertical de planes disponibles, un desglose visual por plan que se actualiza mientras el abonado se desplaza entre opciones y una hoja de confirmación que muestra exactamente qué partidas de la factura del mes siguiente van a cambiar. El flujo es un toque para comparar, un toque para confirmar y un paso de Face ID / Touch ID para el cambio en sí, con todo el recorrido dentro del proceso de la app, sin saltar a Safari ni a un WebView.

La cartera de facturación es donde Apple Pay se gana de verdad su lugar. Las recargas con tarjeta son una única hoja de PassKit sobre un método de pago guardado, y la visualización del saldo se actualiza al instante en la pantalla de inicio a través del flujo de Combine. Para los abonados de EE. UU., el cliente de iOS muestra las divulgaciones de la CCPA / CPRA del operador en los ajustes de la cuenta; para los abonados de la UE, la pantalla de consentimiento para la analítica de producto opcional se muestra antes del primer inicio según las normas del RGPD. Toda la superficie de iOS se entrega como parte de nuestra práctica de ingeniería para iOS.

Chat de soporte de Personal Account: conversación 24/7 con el operador dentro de la app

Desarrollo para Android: interruptores de servicios y sincronización en segundo plano a prueba de Doze

El cliente de Android está escrito en Kotlin, con Jetpack Compose para la interfaz y un servicio en primer plano para las partes de la app que deben sobrevivir a los optimizadores de batería agresivos. La pantalla de interruptores de servicios (paquetes de itinerancia, paquetes de SMS, complementos de datos) es la superficie de uso diario para los abonados que viajan: cada interruptor muestra una vista previa de su efecto en la factura antes de confirmarse, y el resumen resultante se escribe en el historial de la cuenta para que el abonado pueda auditar el cambio más tarde. El servicio en primer plano es también donde reside la fiabilidad de las notificaciones push: en las familias de dispositivos Samsung, Xiaomi, OnePlus y Pixel, los gestores de batería agresivos terminan en pocos minutos los procesos que solo se ejecutan en segundo plano, de modo que una alerta de altos cargos de itinerancia que el abonado necesita ver de verdad se entrega mediante una carga útil de FCM respaldada por el servicio en primer plano y no mediante una notificación estándar.

WorkManager se encarga de las operaciones no urgentes (actualización del saldo, sincronización del catálogo de tarifas, vaciado de eventos de la cuenta) con una semántica de retroceso que respeta los estados de ahorro de batería desde Android 10 hasta Android 14. Tras un cambio de Wi-Fi a LTE, el cliente restaura automáticamente el estado en caché, de modo que el abonado vuelve a la pantalla que dejó sin tener que iniciar sesión de nuevo. El mismo equipo de ingeniería se ocupa de iOS y Android en paralelo dentro de nuestra práctica de ingeniería para iOS y Android.

Interruptores de servicios de Personal Account en Android: itinerancia, paquetes de SMS y complementos de datos

Chat de soporte dentro de la app y la capa de transporte cifrada

El chat de soporte dentro de la app es la superficie que decidió si la app sustituía al centro de llamadas o competía con él. Los abonados tocan un botón de Soporte, entran en una cola encaminada por nivel de tarifa e idioma y llegan a un agente humano sin salir del contexto de la app. El chat funciona sobre WebSocket con transporte TLS 1.3, claves efímeras por sesión y un indicador de escritura que respeta los ajustes de confidencialidad de los mensajes que los agentes del operador configuran en su lado. El historial de conversaciones se conserva según la política publicada del operador y puede eliminarse a petición mediante el mismo flujo de derechos sobre los datos, alineado con el RGPD, que ofrece la eliminación de la cuenta.

El enfoque de privacidad se aplica en la capa de arquitectura. Los identificadores de los abonados se almacenan por separado de la identidad de facturación: el registro de facturación reside en el procesador de pagos bajo un ID de cliente tokenizado que los clientes móviles nunca ven, y la superficie del chat trata cada mensaje como datos personales (PII) por defecto. El cifrado del almacenamiento está activado por defecto, cada lectura de un registro de cuenta escribe en la pista de auditoría y el equipo de privacidad del operador puede atender una solicitud de acceso o de eliminación a través del nivel de administración sin que intervenga un ingeniero. El enfoque está diseñado para alinearse con el RGPD para los abonados de la Unión Europea y con las obligaciones de la CCPA / CPRA para los abonados de California y del resto de Estados Unidos.

Enfoque de cumplimiento: alineado con el RGPD · preparado para ISO 27001 · SOC 2 Type II en curso · apto para HIPAA · CCPA contemplada.

Metodología de entrega

Un desarrollo en cinco fases que llevó a Personal Account desde la especificación del producto hasta producción en EE. UU. y la UE.

Fase 1

Descubrimiento y mapa del recorrido del abonado

Auditoría del flujo de trabajo del operador, modelado del catálogo de tarifas, opciones de pago (tarjeta / Apple Pay / Google Pay) y decisiones sobre el enfoque del RGPD + la CCPA.

Fase 2

Arquitectura y esqueleto del backend

Backend en Laravel 10, diseño del servicio de derechos, estrategia de fiabilidad de las notificaciones push entre APNs en iOS y FCM en Android y opciones de capa de datos regional.

Fase 3

Desarrollos de plataformas

Cliente de iOS en Swift / SwiftUI con flujos de Combine; cliente de Android en Kotlin / Jetpack Compose con servicio a prueba de Doze; superficie de chat de soporte dentro de la app.

Fase 4

Refuerzo de integraciones

Validación de Apple Pay / Google Pay, QA de fiabilidad de notificaciones push en distintos fabricantes, pasada de transporte cifrado, políticas de infraestructura como código y ensayos de envío a las tiendas.

Fase 5

Lanzamiento y telemetría

Envío a App Store y Google Play en las tiendas de EE. UU. y la UE, traspaso al equipo de soporte, monitorización de la entrega de notificaciones push y turnos de guardia.

Estado de la suscripción, derechos dentro de la app y una arquitectura preparada para planes familiares

El modelo de estado de la suscripción de la app Personal Account se construyó para mantener demostrablemente separadas la identidad de la cuenta y la identidad de pago, porque la afirmación de privacidad se derrumba en cuanto una única base de datos une directamente el ID de cliente de un procesador de pagos con el MSISDN de un abonado. La tarifa se vende a través de la plataforma de facturación del operador; las compras dentro de la app de paquetes puntuales se venden mediante Apple StoreKit en iOS y Google Play Billing en Android, con validación de recibos en el servidor contra el endpoint de verificación de cada tienda y un único registro de derechos identificado por un identificador opaco y rotado, nunca por Apple ID, cuenta de Google ni número de teléfono. Dentro de la capa de aplicación, lo único visible es un token bearer de corta duración que se asocia a los derechos y caduca con rapidez; la API no tiene ningún camino de vuelta a una identidad de pago, ni siquiera si se ve comprometida. Los interruptores de complementos de itinerancia, las compras de paquetes de SMS y el futuro nivel de plan familiar leen del mismo registro de derechos, de modo que el estado de la suscripción se resuelve limpiamente tras reinstalaciones, cambios de dispositivo y el futuro cliente de escritorio o de portal web. Todo el subsistema se diseñó pensando en la extensibilidad: añadir un plan familiar, un nivel de equipo de cuenta B2B o un flujo de conversión de prepago es un cambio de configuración en el servicio de derechos, no una publicación de código.

Lanzamiento en Estados Unidos y la Unión Europea

La app Personal Account se lanzó en Apple App Store y Google Play con fichas activas en Estados Unidos y en la Unión Europea. La versión en inglés atiende a abonados de California, Nueva York, Texas, Florida y Washington en EE. UU., y a abonados de Países Bajos, Alemania, Francia, Irlanda y Suecia en la UE, sin una base de código distinta por región. Los flujos de consentimiento dependen de la región en la capa del cliente: los abonados de la UE y del EEE reciben una pantalla de consentimiento granular al estilo del RGPD, con interruptores separados para cualquier analítica de producto opcional; los abonados de California reciben en el mismo flujo un aviso al estilo de la CCPA, «No vender ni compartir mi información personal». Las prácticas de tratamiento de datos están alineadas con el RGPD para los abonados europeos y con el mosaico de normas estatales de privacidad de EE. UU.: CCPA / CPRA (California), VCDPA (Virginia), CPA (Colorado), CTDPA (Connecticut), UCPA (Utah), TDPSA (Texas) y la CPA de Oregón.

El planteamiento de despliegue es amable con el operador. La capa del backend es sin estado, con escalado horizontal, y puede fijarse de forma independiente a regiones de la UE o de EE. UU. para futuros compromisos de residencia de datos. Tanto la clasificación por edades de App Store como la clasificación de contenido de Google Play se calibraron para el conjunto de funciones de autoservicio, y la política de privacidad dentro de la app se redactó para documentar exactamente la arquitectura descrita. El equipo de ingeniería que está detrás del desarrollo trabaja con una jornada CET con solapamiento con la costa este de EE. UU. (9:00–13:00 ET) para las reuniones diarias, la coordinación de las revisiones de las tiendas y la respuesta a incidencias: la franja horaria que permite a un equipo de producto estadounidense y a un equipo de ingeniería europeo compartir cuatro horas de solapamiento en directo cada día.

Stack tecnológico y hoja de ruta

Swift SwiftUI Combinar Kotlin Jetpack Compose Coroutines WorkManager Apple Pay Google Pay Laravel 10 PHP 8 PostgreSQL Redis Firebase Cloud Messaging APNs Sentry JWT Docker Kubernetes

La hoja de ruta activa de desarrollo de software a medida de la app Personal Account incluye un diseño para iPad optimizado para tablets destinado a los clientes de nivel empresarial del operador, un complemento de escritorio creado con Tauri para compartir lógica de negocio con la base de código móvil, una superficie de gestión de SIM para la activación y la transferencia de eSIM y un nivel de plan familiar con controles de gasto por línea. Los planes de infraestructura incluyen más automatización del pipeline de publicación en App Store y Google Play, un banco de pruebas interno de cumplimiento continuo y la continuación del trabajo de monitorización de la fiabilidad de las notificaciones push en las familias de dispositivos de los fabricantes dentro de la hoja de ruta de cloud y DevOps.

Cree una app de autoservicio de telecomunicaciones como esta: hable con nosotros

Si está planificando una app de autoservicio de telecomunicaciones, un desarrollo móvil nativo orientado al abonado o cualquier producto para iOS y Android en el que la facturación, los pagos y el soporte en directo deban convivir para usuarios de EE. UU. y la UE, hemos entregado este stack de principio a fin y podemos acortar de forma significativa el plazo de desarrollo. El equipo de ingeniería que está detrás de la app Personal Account forma parte de YuSMP Group. Trabajamos a precio cerrado para MVP bien acotados y con equipos de desarrollo dedicados para la entrega continua, con una jornada CET y una franja garantizada de solapamiento con la costa este de EE. UU. (9:00–13:00 ET) para reuniones diarias, demos y respuesta a incidencias.

Reservar una llamada inicial Ver servicios de desarrollo de software a medida

Preguntas frecuentes

¿Cuánto cuesta crear una app nativa de cuenta personal de telecomunicaciones para iOS y Android?

Un MVP de autoservicio nativo para iOS y Android con gestión de tarifas, pagos con tarjeta, recarga de saldo y un chat de soporte dentro de la app suele costar $130k–$260k. Añadir Apple Pay y Google Pay, una superficie de interruptores de complementos de itinerancia, trabajo de fiabilidad de las notificaciones push en las familias de dispositivos de los fabricantes y una capa de consentimiento de la CCPA / el RGPD lleva un producto completo a $300k–$620k. Los principales factores de coste son las integraciones de pago, el refuerzo de la fiabilidad de las notificaciones push y la coordinación de la revisión en App Store y Google Play de una app con marca de telecomunicaciones.

¿Por qué usar Swift y Kotlin en lugar de React Native o Flutter para una app de telecomunicaciones?

Los stacks multiplataforma ahorran horas de ingeniería al principio y pierden en la práctica dos cosas que le importan a un operador de telecomunicaciones: un flujo de Apple Pay y Google Pay de primer nivel que siga cada actualización del SO desde la primera semana y la fiabilidad de las notificaciones push que necesitan los abonados cuando les llega al teléfono una alerta de interrupción o un aviso de altos cargos de itinerancia. Swift y Kotlin nativos eliminan ese retraso, dan una cadencia de lanzamiento independiente por plataforma y amortizan la inversión por plataforma a lo largo de un ciclo de vida de la app de cinco años.

¿Cómo se consigue que las notificaciones push sean fiables en dispositivos Samsung, Xiaomi y OnePlus?

Los optimizadores de batería agresivos de los fabricantes terminan en pocos minutos los procesos que solo se ejecutan en segundo plano en las familias de dispositivos Android de Samsung, Xiaomi, OnePlus y otros, rompiendo el contrato de alertas al que los abonados se suscriben de forma implícita. Las notificaciones críticas se entregan mediante una carga útil de FCM respaldada por un servicio en primer plano que muestra un indicador persistente mínimo, y WorkManager programa las operaciones no urgentes con una semántica de retroceso que respeta los ciclos de Doze desde Android 10 hasta Android 14. En iOS, el mismo camino se gestiona a través de APNs con una pista de auditoría de acuses de entrega.

¿Cómo se alinea la app con el RGPD, la CCPA y las leyes estatales de privacidad de EE. UU.?

La app Personal Account está alineada con el RGPD para los abonados de la Unión Europea y contempla el mosaico de normas estatales de privacidad de EE. UU.: la CCPA / CPRA en California, la VCDPA en Virginia, la CPA en Colorado, la CTDPA en Connecticut, la UCPA en Utah, la TDPSA en Texas y la CPA de Oregón. La identidad de la cuenta se almacena por separado de la identidad de pago, los registros de pago residen en el procesador de pagos bajo un ID de cliente tokenizado, los flujos de derecho de acceso y de eliminación están conectados al nivel de administración y las pantallas de consentimiento muestran avisos según la región en el primer inicio.

¿Cuánto se tarda en lanzar una app nativa de cuenta personal de telecomunicaciones en iOS y Android?

Un MVP acotado con gestión de tarifas, pagos con tarjeta, recarga de saldo y un chat de soporte básico dentro de la app suele llevar 12–18 semanas en iOS y Android. Añadir Apple Pay y Google Pay, una superficie de interruptores de complementos de itinerancia, trabajo de fiabilidad de las notificaciones push en los fabricantes y una capa de consentimiento de la CCPA / el RGPD suma otras 6–10 semanas. Los cuatro meses de entrega de principio a fin en este encargo reflejaron un alcance acotado y un equipo experimentado de integración de backend que ya conocía la plataforma de facturación del operador.

Compartir este caso

LinkedIn X

Planifique un desarrollo similar

Reservar una llamada inicial

Pedir propuesta

Cuéntenos algunos detalles y un consultor sénior le responderá en un día hábil.