Currículum de desarrollador/a de aplicaciones móviles: ejemplos y guía para redactarlo

Un currículum de desarrollador/a móvil se juzga por las apps publicadas y las cifras que las rodean: enlaces a las tiendas, usuarios, tasa de sesiones sin crashes, tiempo de arranque y ritmo de publicación. Después, el responsable de contratación mira la profundidad en la plataforma (Swift y SwiftUI, Kotlin y Compose, o React Native) y si te encargas de las releases de principio a fin.

Por cvplex Careers Team· Revisado por József Dorcsinecz, fundador· Actualizado el

Ejemplo de currículum de desarrollador/a de aplicaciones móviles

El ejemplo es un ingeniero móvil sénior con unos nueve años de experiencia: empezó en una agencia con React Native, pasó a Android y después a iOS en una app fintech. El nombre y las empresas son inventados. Sustituye las apps, las cifras de usuarios y los datos de rendimiento por los tuyos.

Guillem Rosselló Mas

Desarrollador sénior de aplicaciones móviles (iOS y Android)

Barcelona · 612 345 678 · guillem.rossello@ejemplo.es · github.com/guillem-rossello-ejemplo · enlaces a App Store y Google Play a petición

Perfil

Desarrollador móvil con 9 años de experiencia publicando apps de consumo en iOS y Android. Actualmente responsable de la parte iOS de una app fintech con 2,5 millones de usuarios mensuales, con un 99,8 % de sesiones sin crashes y un arranque en frío de 1,1 segundos. Swift y SwiftUI, Kotlin y Jetpack Compose, además de React Native de su etapa en agencia. Lleva el ciclo de releases: Fastlane, TestFlight, despliegues por fases y lanzamientos escalonados en Google Play cada dos semanas.

Experiencia

Ingeniero móvil sénior (iOS) · App fintech de consumo, unos 2,5 millones de usuarios activos al mes, Barcelona

03/2022 – actualidad

  • Gestioné la app iOS de principio a fin junto con otros dos ingenieros: arquitectura, desarrollo de funcionalidades, publicaciones en App Store y guardias para incidencias móviles.
  • Subí las sesiones sin crashes del 99,2 % al 99,8 % en cuatro trimestres corrigiendo tres bloqueos (deadlocks) del hilo principal y reescribiendo la renovación de tokens, detectados con Crashlytics y Sentry.
  • Reduje el arranque en frío de 2,4 a 1,1 segundos sacando la analítica y la configuración remota del proceso de arranque y eliminando 14 dependencias de inicio.
  • Migré el 60 % de las pantallas de UIKit a SwiftUI con feature flags, sin cambios medibles en la tasa de crashes ni en las quejas de usuarios.
  • Lancé el inicio de sesión biométrico y las suscripciones in-app con StoreKit 2; la conversión a suscripción subió un 8 % frente al grupo de control en un test A/B de cuatro semanas.
  • Pasé de releases mensuales a quincenales automatizando el pipeline con Fastlane en GitHub Actions, con lo que el día de release bajó de 6 horas a unos 40 minutos.
  • Hice de mentor de dos ingenieros de nivel intermedio, coordiné la revisión de código móvil y redacté las convenciones de SwiftUI y de pruebas del equipo.

Desarrollador Android · App de retail y comercio electrónico, unos 900.000 usuarios activos al mes, Barcelona

06/2019 – 02/2022

  • Desarrollé y mantuve el proceso de compra, el seguimiento de pedidos y el localizador de tiendas en Kotlin, y migré las pantallas de vistas XML a Jetpack Compose.
  • Bajé la tasa de ANR percibida por el usuario por debajo del 0,25 %, muy lejos del umbral de mal comportamiento de Play Console, sacando del hilo principal la decodificación de imágenes y las escrituras en base de datos.
  • Reduje el tamaño de descarga de 78 MB a 41 MB con app bundles, reducción de recursos y la eliminación de dos SDK que no se usaban.
  • Sustituí una capa de red hecha a mano por Retrofit, Coroutines y Flow, con unas 1.200 líneas menos en el proceso de compra y un código que por fin se podía testear.
  • Subí la cobertura de tests unitarios y de instrumentación del módulo de compra del 24 % al 68 % con JUnit y Espresso.
  • Mantuve la valoración de 4,6 en Google Play durante una release con rediseño completo, con lanzamientos escalonados al 5 %, al 20 % y al 100 %.

Desarrollador móvil (React Native) · Agencia de producto digital, de 8 a 10 apps de clientes, Barcelona

08/2017 – 05/2019

  • Publiqué 6 apps multiplataforma en ambas tiendas para clientes de viajes, salud y logística, desde el arranque del proyecto hasta la aprobación en la tienda.
  • Escribí módulos nativos en Swift y Java cuando la capa JavaScript no llegaba al hardware, como el escaneo Bluetooth y la localización en segundo plano.
  • Configuré informes de crashes, analítica y actualizaciones OTA en todos los proyectos para que los clientes vieran la adopción en menos de un día tras cada release.

Formación

Grado en Ingeniería Informática
Universidad pública, Barcelona, 2017

Habilidades

Swift, SwiftUI, UIKit, Combine, async/awaitKotlin, Jetpack Compose, Coroutines, FlowReact Native y TypeScriptMVVM, MVI y Clean ArchitectureREST y GraphQL, ProtobufCore Data, Room, SQLite, RealmXCTest, XCUITest, JUnit, Espresso, MaestroFastlane, GitHub Actions, BitriseFirebase Crashlytics, Remote Config, App DistributionSentry, Amplitude, Firebase AnalyticsPush con APNs y FCM, deep links, universal linksStoreKit 2 y Google Play BillingGestión de releases en App Store Connect y Play ConsoleAccesibilidad: VoiceOver, TalkBack, Dynamic TypeInstruments, Android Studio Profiler, Play Vitals
Ejemplo ficticio. Los nombres, empleadores y cifras son orientativos.Usar este ejemplo en el editor →
Pon el enlace a la tienda o el nombre de la app junto a cada puesto si te permiten nombrarla. Un responsable de contratación que puede descargar tu trabajo y verlo dedicará tres veces más tiempo a tu currículum.

Lo primero que mira un/a responsable de contratación móvil

Los equipos móviles son pequeños, así que quien lee tu currículum suele ser el responsable de ingeniería o el líder técnico con quien trabajarías. Busca cuatro cosas.

  • ¿Has publicado apps, y para cuánta gente? Una app en una tienda con usuarios reales vale más que cualquier lista de tecnologías. Nombra la app o descríbela, da los usuarios activos mensuales o las descargas y di qué construiste tú en ella.
  • ¿Cómo de sana la mantuviste? Tasa de sesiones sin crashes, tasa de ANR, arranque en frío, tamaño de la app, valoración en la tienda. Son las cifras que un equipo móvil discute de verdad en la daily, y citarlas demuestra que has vivido dentro de una app en producción.
  • Profundidad o amplitud de plataforma, y cuál de las dos ofreces. Swift y SwiftUI, Kotlin y Compose, o React Native o Flutter. Di primero en qué eres más fuerte. «Full stack en todo» suena superficial para un puesto móvil.
  • ¿Te encargas de las releases? Firma, perfiles de aprovisionamiento, revisión de App Store, despliegues por fases, lanzamientos escalonados en Google Play, proceso de hotfix. Los equipos necesitan a alguien capaz de publicar un arreglo un viernes, y la mayoría de candidatos ni lo menciona.

“Enséñame una app que pueda descargar y las cifras que moviste en ella. Tasa sin crashes, tiempo de arranque, ritmo de releases. Un candidato que dice que llevó las sesiones sin crashes del 99,1 al 99,8 ha depurado problemas reales de producción, y en eso consiste todo el trabajo.”

Panel de reclutadores, Responsable de contratación de ingeniería móvil, EE. UU. (nombre publicado tras la revisión)

Ejemplos de perfil profesional para desarrollador/a móvil

Tres o cuatro líneas. Años, plataforma, la app más grande que has publicado y una métrica de salud. Adapta la plataforma a la oferta: un equipo Android quiere leer Kotlin en tu primera línea.

iOS sénior
Ingeniera iOS con 8 años publicando apps de consumo en Swift; actualmente responsable de una app con 2,5 millones de usuarios mensuales y un 99,8 % de sesiones sin crashes. Migró una base de código UIKit a SwiftUI con feature flags, redujo el arranque en frío a 1,1 segundos y lleva un ciclo de releases quincenal con Fastlane y despliegues por fases.
Android sénior
Ingeniero Android con 7 años en Kotlin; desarrolla una app de retail con 900.000 usuarios mensuales. Migró la app a Jetpack Compose, redujo el tamaño de descarga de 78 MB a 41 MB y mantuvo la tasa de ANR percibida por debajo del 0,25 %. Acostumbrado a gestionar releases en Play Console y lanzamientos escalonados.
Multiplataforma
Desarrolladora móvil con 6 años en React Native y TypeScript, además de Swift y Kotlin nativos para los módulos a los que no llega la capa JavaScript. Ha publicado 9 apps en ambas tiendas, dos de ellas con más de 200.000 descargas, y configuró informes de crashes, analítica y actualizaciones OTA en todas.
Nivel intermedio, de una plataforma a la otra
Desarrollador Android con 4 años en Kotlin y Compose, que ahora desarrolla funcionalidades iOS en Swift y SwiftUI dentro de un equipo compartido. Ha lanzado flujos de compra y de onboarding que usan 400.000 usuarios al mes y subió la cobertura de tests del módulo de compra del 24 % al 68 %.
Junior o cambio de profesión
Desarrolladora móvil con dos apps publicadas en App Store y Google Play, una de ellas con 4.000 descargas y una valoración de 4,5. Kotlin y Jetpack Compose, con tests unitarios, persistencia con Room y una capa de API con Retrofit. Seis meses de trabajo por proyecto desarrollando dos apps para clientes; busca un puesto Android junior en un equipo con revisión de código.

Logros para el currículum de desarrollador/a de aplicaciones móviles

Cada logro debe incluir algo que construiste, la tecnología y una cifra. Si una línea podría describir a cualquier ingeniero de cualquier empresa, es espacio desperdiciado.

Desarrollo de funcionalidades
Lancé el inicio de sesión biométrico y las suscripciones con StoreKit 2 en una app con 2,5 millones de usuarios mensuales; la conversión a suscripción subió un 8 % frente al grupo de control en un test A/B de cuatro semanas.
Estabilidad
Subí las sesiones sin crashes del 99,2 % al 99,8 % en cuatro trimestres corrigiendo tres bloqueos del hilo principal y reescribiendo la renovación de tokens, con trazas de Crashlytics y Sentry.
Rendimiento
Reduje el arranque en frío de 2,4 a 1,1 segundos sacando la analítica y la configuración remota del proceso de arranque y eliminando 14 dependencias de inicio, medido con Instruments.
Tamaño de la app
Reduje el tamaño de descarga de 78 MB a 41 MB con app bundles, reducción de recursos y la eliminación de dos SDK sin uso, lo que aumentó un 6 % las instalaciones completadas.
Arquitectura y migración
Migré el 60 % de las pantallas de UIKit a SwiftUI con feature flags a lo largo de dos trimestres, sin cambios medibles en la tasa de crashes.
Pruebas
Subí la cobertura del módulo de compra del 24 % al 68 % con JUnit y Espresso, y añadí 40 flujos de UI en Maestro que se ejecutan en cada pull request.
CI y releases
Automaticé la firma, la compilación y la subida con Fastlane en GitHub Actions; el día de release bajó de 6 horas a 40 minutos y el equipo pasó de releases mensuales a quincenales.
Despliegues e incidencias
Gestioné lanzamientos escalonados en Google Play al 5 %, al 20 % y al 100 % vigilando Play Vitals en cada paso, y detuve dos despliegues antes de que llegaran al 20 % de los usuarios.
Accesibilidad
Igualé los flujos principales en VoiceOver y TalkBack y añadí compatibilidad con Dynamic Type, con lo que cerré 22 incidencias de accesibilidad detectadas en una auditoría externa.
Trabajo con producto
Instrumenté embudos en Amplitude y usé los datos de abandono para defender y construir un onboarding de dos pasos que subió la activación un 11 %.
Mentoría y procesos
Hice de mentor de dos ingenieros de nivel intermedio, coordiné la revisión de código móvil y redacté las convenciones de SwiftUI y de pruebas del equipo, con lo que las revisiones se resolvían en menos de un día.
Logro flojoLogro más sólido
Desarrollo de aplicaciones móviles con Swift y Kotlin.Desarrollé el seguimiento de pedidos en Kotlin y Compose para una app con 900.000 usuarios mensuales, con un 30 % menos de consultas al soporte sobre el estado de los pedidos.
Mejora del rendimiento de la app.Reduje el arranque en frío de 2,4 a 1,1 segundos sacando la analítica del proceso de arranque, medido con Instruments en tres gamas de dispositivos.
Trabajo en un equipo Agile.Coordiné el ciclo de releases quincenal de un equipo de cinco personas, con despliegues por fases en App Store y un procedimiento de hotfix documentado que se usó dos veces en un año.
Redacción de tests unitarios.Subí la cobertura de tests del módulo de compra del 24 % al 68 % y añadí 40 flujos de Maestro que bloquean cada pull request hasta pasar.

Empieza con un ejemplo y termina en minutos.

No necesitas registrarte para empezar. Elige un ejemplo, adáptalo con sugerencias y revisa la vista previa mientras escribes.

Crear mi currículum de desarrollador/a de aplicaciones móviles

Competencias para el currículum de desarrollador/a móvil

Agrúpalas por plataforma y pon primero la más fuerte. Con quince o veinte elementos basta. No incluyas una tecnología sobre la que no quieras que te pregunten en una entrevista técnica.

iOS:

  • Swift, SwiftUI, UIKit, Combine, async/await y concurrencia estructurada
  • Core Data, Swift Data, Keychain
  • XCTest, XCUITest, Instruments
  • StoreKit 2, push con APNs, universal links, App Clips
  • App Store Connect, TestFlight, aprovisionamiento y firma

Android:

  • Kotlin, Jetpack Compose, Coroutines y Flow
  • Room, WorkManager, Hilt o Dagger, Navigation
  • Retrofit, OkHttp, Ktor
  • JUnit, Espresso, Robolectric
  • Play Console, app bundles, lanzamientos escalonados, Play Vitals

Multiplataforma y comunes:

  • React Native y TypeScript, o Flutter y Dart
  • Kotlin Multiplatform, si lo has usado en producción
  • MVVM, MVI, Clean Architecture, inyección de dependencias
  • REST, GraphQL, WebSockets, sincronización offline-first
  • Fastlane, GitHub Actions, Bitrise, Firebase App Distribution
  • Crashlytics, Sentry, Amplitude, feature flags y tests A/B
  • Accesibilidad, localización, modo oscuro
  • Git, revisión de código, programación en pareja, redacción de documentos de diseño

Apps, enlaces y por qué las certificaciones apenas cuentan aquí

El desarrollo móvil es uno de los pocos campos de la ingeniería en los que quien revisa puede instalar tu trabajo en treinta segundos. Pónselo fácil.

  • Incluye una línea de enlaces en la cabecera: GitHub y la página de App Store o Google Play de todo lo que puedas nombrar públicamente.
  • Si la app de tu empresa está bajo un acuerdo de confidencialidad o no puedes nombrar al cliente, descríbela: «una app fintech de consumo con 2,5 millones de usuarios mensuales». Nadie espera que incumplas un acuerdo, y la escala se entiende igual.
  • Di qué construiste tú. En un equipo de ocho, «responsable de los módulos de compra y pagos» es mucho más útil que atribuirte la app entera.
  • En los proyectos personales, da cifras reales aunque sean pequeñas: descargas, valoración, reseñas. Cuatro mil descargas y un 4,5 de valoración son una señal auténtica, y superan a un clon de tutorial sin usuarios.
  • Un repositorio público en GitHub ayuda sobre todo cuando contiene algo real: una app pequeña con tests, una librería que usan otros o contribuciones a un proyecto de código abierto. Diez repositorios de inicio abandonados no ayudan.
  • No hay ninguna certificación que pese para los puestos móviles. La app publicada es la credencial. Las certificaciones cloud suman un poco solo si el puesto toca back-end o infraestructura.
  • Un apartado breve de proyectos vale más que una larga lista de asignaturas, sobre todo para perfiles junior y quienes cambian de profesión.

Currículum de desarrollador/a móvil junior sin experiencia profesional

El listón para un puesto móvil junior es sencillo: publica algo y demuestra que entiendes lo que pasa después de escribir el código.

  1. 1Publica al menos una app en una tienda. Pasar por la revisión, la firma, las capturas de pantalla y la declaración de privacidad ya es un tema de entrevista, y la mayoría de autodidactas no lo ha hecho nunca.
  2. 2Escribe un apartado de proyectos por encima de la formación, con una entrada por app: qué hace, el stack, el enlace a la tienda, las descargas y la valoración.
  3. 3Demuestra hábitos de ingeniería, no solo funcionalidades: tests, gestión de errores, comportamiento sin conexión, informes de crashes, cómo resolviste un fallo de la API.
  4. 4Elige una plataforma y profundiza. Un perfil junior que domina Kotlin y Compose encuentra trabajo antes que uno que ha tocado cuatro frameworks por encima.
  5. 5Añade cualquier trabajo remunerado, aunque sea pequeño: una app por encargo para un negocio local, un arreglo como freelance, unas prácticas. Di qué publicaste y qué cambió.
  6. 6Menciona las partes del trabajo que no son programar: leer informes de crashes, responder a una reseña en la tienda, preparar una release.
Entrada de proyecto
RutaLog (Google Play, 4.000 descargas, valoración de 4,5): app de senderismo en Kotlin y Jetpack Compose con almacenamiento offline en Room, localización en segundo plano y Crashlytics. Mantuve las sesiones sin crashes por encima del 99,5 % durante cuatro releases y corregí 12 problemas señalados en reseñas de la tienda.
Entrada de proyecto, iOS
DivideFácil (App Store, 1.200 descargas): app en SwiftUI para dividir cuentas, con persistencia en Core Data, propinas con StoreKit 2 y 60 tests unitarios en XCTest. Publiqué 7 betas en TestFlight para 40 testers antes del lanzamiento.
Trabajo freelance
Desarrollé y publiqué en 10 semanas una app de reservas en React Native para una peluquería de barrio, del diseño a las dos tiendas, con recordatorios por notificación push que redujeron en torno a una cuarta parte las citas a las que no se presentaba nadie.

Formato, extensión y cómo superar el primer filtro

  • Una página con menos de 8 años de experiencia y dos para puestos sénior y de lead. Tres páginas no impresionan a nadie.
  • Orden: cabecera con enlaces, perfil de tres líneas, experiencia, competencias, proyectos y formación. Si eres junior, las competencias pueden ir antes de la experiencia.
  • Diseño sencillo a una columna, en PDF y con texto real (nunca una captura de un currículum). Las plantillas a dos columnas con barra lateral de competencias son las que salen desordenadas en los sistemas ATS.
  • Repite las palabras de plataforma de la oferta. Si pone Kotlin Multiplatform, SwiftUI o React Native, esos términos exactos deben aparecer en tu currículum si es verdad que los usas.
  • Olvídate de las barras de nivel y los porcentajes. Ningún ingeniero se cree «Swift 85 %».
  • Para puestos sénior y de lead, añade una o dos líneas sobre el alcance: tamaño del equipo, sistemas de los que eras responsable, decisiones que tomaste, personas a las que formaste.
  • En España la foto es habitual pero opcional, y en tecnología muchas empresas no la esperan; la fecha de nacimiento, el estado civil y el DNI/NIE no hacen falta.

Términos que conviene repetir cuando sean ciertos en tu caso: iOS, Android, Swift, SwiftUI, UIKit, Kotlin, Jetpack Compose, React Native, Flutter, MVVM, inyección de dependencias, REST, GraphQL, tests unitarios, CI/CD, Fastlane, App Store Connect, Play Console, TestFlight, tasa sin crashes, ANR, arranque en frío, notificaciones push, deep linking, compras in-app, accesibilidad, revisión de código, agile.

Preguntas frecuentes

¿Cómo se hace un currículum de desarrollador/a de aplicaciones móviles?

Empieza con un perfil de tres líneas que nombre tu plataforma, la app más grande que has publicado y una métrica de salud, como las sesiones sin crashes. Después, en cada puesto, escribe logros que unan una funcionalidad que construiste con una cifra que mejoraste. Añade un bloque de competencias agrupadas y enlaces a tus apps, y no pases de una o dos páginas.

¿Qué debe poner un/a desarrollador/a Android en el currículum?

Primero Kotlin y Jetpack Compose; después, la arquitectura y las librerías que usas de verdad (MVVM, Hilt, Room, Retrofit, Coroutines y Flow) y las pruebas con JUnit y Espresso. Añade el trabajo en Play Console: app bundles, lanzamientos escalonados, Play Vitals, tasas de ANR y de crashes. Nombra las apps y sus usuarios mensuales.

¿Qué debe incluir el currículum de un/a desarrollador/a iOS?

Swift con SwiftUI y UIKit, concurrencia y los frameworks con los que has publicado, como Core Data, StoreKit y push. Incluye el trabajo con XCTest e Instruments, la responsabilidad de las releases en App Store Connect y TestFlight, y métricas como la tasa de sesiones sin crashes y el arranque en frío. Enlaza las apps si puedes nombrarlas.

¿Cómo consigo un primer empleo de desarrollador/a móvil junior sin experiencia?

Publica una app en una tienda y trátala como tu principal credencial. Escribe un apartado de proyectos con el stack, el enlace a la tienda, las descargas y la valoración, y demuestra hábitos de ingeniería: tests, informes de crashes, funcionamiento sin conexión, cómo respondiste a una mala reseña. Profundiza en una plataforma en lugar de tocar cuatro por encima.

¿Pongo enlaces a App Store o Google Play en el currículum?

Sí, siempre que te lo permitan. Un responsable que puede instalar tu app dedicará mucho más tiempo a tu currículum. Si la app está bajo un acuerdo de confidencialidad o no puedes nombrar al cliente, descríbela por categoría y escala, y deja claro qué partes construiste tú.

¿Necesito certificaciones para ser desarrollador/a móvil?

No. No hay ninguna certificación que tenga peso real para los puestos móviles, y los responsables de contratación rara vez la buscan. En este campo, la credencial es una app publicada con usuarios. Una certificación cloud suma un poco solo cuando el puesto también toca back-end o infraestructura.

¿Cuánto debe ocupar el currículum de un/a desarrollador/a móvil?

Una página hasta unos ocho años de experiencia y dos para puestos sénior, de lead o staff en los que necesitas mostrar alcance y responsabilidad. Detalla los últimos cinco a siete años y resume los empleos anteriores en una línea cada uno.

¿Listo para escribir el tuyo?

El editor te sugiere un perfil a partir de tu propia experiencia y luego lo compara con la oferta de empleo.

Cómo se hizo esta página: el primer borrador se redactó con ayuda de IA a partir de la biblioteca de ejemplos de cvplex y después lo editó y verificó cvplex Careers Team. Los ejemplos son composiciones ficticias y las cifras son orientativas. Puedes informar de un error en la página de política editorial. Esta versión se tradujo del inglés con ayuda de IA.