Resumen
- Rol: Mobile Developer (iOS & React Native)
- Cliente / Contexto: ElTiempo.es (Aplicación meteorológica líder)
- Tech Stack: Swift, SwiftUI, UIKit, React Native, TypeScript, Zustand, React Query, Firebase FCM, Swift Package Manager, Realm, Core Data, UserDefaults
El Reto
Integrarme de forma transversal en el equipo de desarrollo para mantener y hacer evolucionar una aplicación iOS consolidada con una extensa base funcional (principalmente UIKit con transición a SwiftUI). Tras dos años en la versión nativa, afrontar la transición tecnológica hacia una nueva arquitectura multiplataforma desarrollada en React Native con TypeScript.
Logros y Aportes Técnicos
- Evolución Nativa (iOS) y Migración a SwiftUI:
- Desarrollo transversal de módulos clave: Avisos Oficiales, Polen, Calidad del Aire, Playas, Deportes Náuticos, Meteo Comparador, Cielo Nocturno, Settings y Bandeja de entrada.
- Creación de una colección de componentes configurables y personalizables para la Home mediante SwiftUI, incluyendo diversas animaciones y visualizaciones de datos meteorológicos.
- Reorganización y refactorización progresiva de secciones de la Home migrando de UIKit a SwiftUI.
- Gestión de Notificaciones Push y Geolocalización:
- Implementación y evolución de notificaciones push dinámicas con Firebase Cloud Messaging (FCM).
- Migración a un sistema basado en topics integrado con favoritos y geolocalización en tiempo real del dispositivo.
- Arquitectura de Datos y Core:
- Evolución de la capa de datos modularizada con Swift Package Manager (SPM), integrando consumo de APIs backend, Core Data, Realm y UserDefaults.
- Implementación y mantenimiento de tests unitarios asociados a los desarrollos realizados.
- Desarrollo Multiplataforma (React Native):
- Transición tecnológica al entorno React Native con TypeScript.
- Gestión de estado global y asíncrono mediante Zustand y React Query.
- Reutilización del conocimiento funcional adquirido en la etapa nativa para acelerar la implementación de componentes e interfaces en la nueva aplicación.
- Trabajo activo en equipo internacional junto a áreas de Producto, Backend, Diseño y QA.
Impacto y Resultados Técnicos
- Continuidad y Adaptación Tecnológica: Transición fluida del perfil desde el desarrollo nativo en iOS hacia la nueva arquitectura multiplataforma en React Native sin interrumpir la evolución funcional del producto.
- Modularidad y Mantenibilidad: Encapsulamiento del core de datos a través de Swift Package Manager, optimizando la distribución y reutilización del código.