
2024 · Desarrollador multiplataforma
Appmypets
App móvil React Native para comunidad de mascotas
- React Native
- TypeScript
- NestJS
- MongoDB
- Google Cloud
- Jest
- Plataformas
- iOS + Android
- Duración
- 16 meses
- Testing
- Jest + manual
Contexto
Startup española de Gran Canaria construyendo una red social y plataforma de documentación digital para mascotas (certificados veterinarios, cartillas, seguros). Me uní al equipo como desarrollador multiplataforma en remoto, cubriendo la parte móvil y colaborando con el equipo backend.
El producto apuntaba a propietarios que viajan con sus mascotas y necesitan la documentación oficial siempre a mano, junto a una capa social para compartir experiencias y recomendaciones.
Trabajo realizado
- Componentes reutilizables en React Native con TypeScript estricto y estado gestionado por Hooks custom.
- Coordinación con backend NestJS + MongoDB sobre Google Cloud, definición de contratos API y revisión conjunta de endpoints.
- Feed social: pantalla principal con posts, likes, comentarios y carga infinita optimizada.
- Gestión documental: subida, visualización y compartido de documentos de mascotas con persistencia local.
- Testing manual y unitario con Jest — cobertura en autenticación, feed y persistencia.
- Metodología ágil: sprints semanales en Jira, daily standups y retros cada dos sprints.
Retos técnicos
Sincronizar estado entre navegación y refetch de feeds en React Native sin bloqueos visibles fue el mayor. La solución: un hook custom con optimistic updates y revalidación en background, desacoplando el UI de la capa de datos.
La otra complejidad: formularios de registro de mascota con validación compleja (especies, razas, datos veterinarios dependientes de la especie). Se resolvió con un esquema zod compartido validado en cliente y servidor.
Aprendizajes
El mayor valor estuvo en la comunicación con el equipo backend: las APIs cambian durante el desarrollo y un dev móvil aislado termina bloqueando al resto. Tiempo invertido en definir contratos OpenAPI por adelantado se recupera por triplicado después.