SwipeTech · 2024 – present
Dubai Daily Deals
Consumer mobile application for Dubai deal-seekers, offering geo-fenced deals, event ticketing, and interactive merchant maps.
SwipeTech · 2024 – present
Consumer mobile application for Dubai deal-seekers, offering geo-fenced deals, event ticketing, and interactive merchant maps.
A React Native 0.73 codebase with thirty native dependencies, several abandoned upstream. The interactive map dropped frames when rendering ~1,800 native markers, and pins vanished on Android screen focus. Unauthenticated deep links redirected users to the sign-in screen without persisting their destination.
Planned the React Native 0.84 upgrade across four revert-friendly sessions: built a native dependency compatibility matrix, applied mechanical commits, resolved ten distinct runtime issues under Fabric and TurboModules, and updated the iOS AppDelegate from Objective-C to Swift.
Offloaded map rendering bottlenecks from native views to JavaScript using supercluster for pin clustering, derived zoom levels via Mercator projections, and separated viewport state from marker state. Rendered map pins as native Image children to eliminate Android pin-drop bugs.
Implemented a navigation intent middleware that gates deep-link targets against authentication rules, stashes destination routes during guest sessions, and replays navigation post-login. Established an OTA deployment pipeline via Stallion/EAS with sourcemap and Sentry debug ID chaining.
Splitting the RN 0.73 to 0.84 migration across four sessions isolated native regressions to single causes. Identified and documented a Fabric hazard where negative z-index gradient layers break silently under the new renderer.
Replaced per-marker native view creation with supercluster aggregation, collapsing thousands of map markers into a few dozen visible cluster nodes. Handled one-frame tracksViewChanges warm-up to prevent empty bubble snapshots.
Intercepted unauthenticated deep links targeting restricted routes, stashed the resolved navigation state, and replayed the intent upon successful session creation.
Automated OTA bundle publishing scripts to compose Hermes sourcemaps with Sentry debug IDs, keeping stack traces symbolicated across over-the-air releases.
The app operates on React Native 0.84 with the New Architecture enabled, rendering clustered map pins without frame drops, preserving deep-link intents through auth gates, and outputting symbolicated crash reports on OTA updates.