blog image

Embracing Change and Innovation: Our Journey with React Native at Majid Al Futtaim

Posted on Dec 29

React Native
Mobile Development
Ski Dubai
Digital Transformation

A Personal Introduction

Hello, I'm Laith Younes. As the Engineering Manager at Majid Al Futtaim, I've been at the helm of steering our digital products - from apps to websites and booking systems. Today, I want to share a story - not just any story, but the tale of our journey with React Native in developing the Ski Dubai app. It's a story about choices, challenges, and the continuous pursuit of innovation.

Discovering React Native

In the ever-evolving world of technology, choosing the right framework for app development is like picking a companion for a long journey. For us, that companion was React Native. Developed by Facebook, this open-source framework promised a world where we could use React, a language we were already fluent in, to create native experiences for both iOS and Android. It was an alluring promise of a unified development process.

The Early Days: Why React Native?

Imagine a world where development is swift, where code can seamlessly dance between platforms. That was the world React Native offered us. Our goals were clear:

  • Accelerate the Development Cycle: We wanted to move fast, to bring ideas to life swiftly. React Native was our catalyst.
  • Harness Code Reusability: The thought of writing once and deploying everywhere was not just efficient; it was revolutionary for our team.
  • Utilize Code Push: In an ecosystem where app stores rule with strict update cycles, Code Push was our secret weapon, allowing us to rapidly deploy updates and fixes.

The Roadblocks and Triumphs

No journey is without its challenges, and ours was no exception.

Monitoring: A Double-Edged Sword

Initially, we relied on tools like New Relic and Crashlytics, but soon realized they weren't showing us the full picture. The pivot to Sentry marked a turning point - finally, we had visibility into the JavaScript realm.

Performance and Team Dynamics

Upgrading to the latest version of React Native was like a breath of fresh air for our app's performance. But it also highlighted a truth: our team, skilled in the art of web development, found navigating the native mobile landscape challenging.

The Pain Points

  • The Struggle with Animations and Native Integrations: Our ambition often clashed with reality. Smooth animations and native SDK integrations were battles we fought hard.
  • UI Consistency: The quest for a consistent UI led us down many paths. The elusive perfect blur and shadow effects taught us the art of compromise and innovation.

The Bright Spots

But it wasn't all stormy. There were clear skies too:

  • Efficient Maintenance: React Native's shared codebase was a beacon of efficiency.
  • Fast Reload: This feature was our time machine, saving precious moments in our development cycle.
  • Community Support: The React Native community was our guide, helping us navigate challenges, especially with RTL support.

Embracing the Future

As we stand today, looking back at the path we've traversed, we're contemplating our next steps. We're thinking about focusing more on UI in React Native and exploring Kotlin Multiplatform or GoMobile for logic, a testament to our belief in continuous learning and adaptation.

Conclusion

This journey with React Native at Majid Al Futtaim has been more than just about building an app; it's been about growing, adapting, and embracing change. Every challenge was a lesson, and every success a milestone. As I share this story, I hope it lights a path for others embarking on their own tech adventures.