Skip to content
Logo Theodo

Articles for React/React Native

React Strict DOM: The Future of Universal Apps with React Native

Mo Khazali10 min read

A React Logo with several devices in the background

A couple of weeks, Meta announced the release of react-strict-dom. I can't stress just how a big a deal this is. Fundamentally, this will change the way we use React Native (and React on web, for that matter). It provides…

Continue reading →

The Unfortunate Demise of App Center - An Obituary

Mo Khazali8 min read

An App Center logo on a gravestone.

Today is a sad day for the React Native ecosystem. Microsoft very quietly announced that App Center is being "retired" in just over a year's time (at the end of March 2025). Over the years of building React Native apps,

Continue reading →

Three Hacks to Level Up Your Maestro Testing

Claire Squires13 min read

Two Christmas elves in a chemistry lab doing experiments

Introduction Our team at Theodo UK recently had the delightful challenge of building a universal app - an app that runs on multiple operating systems from a single codebase. This project presented many interesting technical problems, including the task of automating…

Continue reading →

Flutter vs React Native - A guide from every experience level

Justin Kek11 min read

Flutter vs React Native

Introduction If you’re reading this article you’ve probably decided to use a cross-platform framework over native development. Cross-platform frameworks allow you to deploy to multiple platforms from a single codebase, which has two main benefits:Cost and time savings Consistency in UX/UIThe two…

Continue reading →

Visualising your bundle size in Expo Router apps

Mo Khazali5 min read

An Expo Router logo with a magnifiying glass.

TLDRRun npx expo export -p web --dump-sourcemap in your project. This will create a dist directory with your exported project along with the sourcemaps. Run npx source-map-explorer dist/**/*.js to get the graphic representation of your sourcemaps.Before the days of Hermes, a…

Continue reading →

Nightly End-to-End & Performance Tests with Flashlight

Mo Khazali7 min read

A Flashlight logo with a backdrop of the night.

Several years ago, I was working on a web project that had quite a number of critical web flows that needed to be regularly tested to make sure that there weren't any regressions from functionality or performance across the app.

Continue reading →

What's the point of StyleSheets in React Native?

Mo Khazali5 min read

A code snippet with both StyleSheets and a regular object.

Over the years, I've heard whispers of the mystic powers of StyleSheet.create, and how not using StyleSheet would negatively affect performance. The other day, curiosity got the better of me, and I went down a rabbit-hole of looking into…

Continue reading →

Using RCTView & RCTText in React Native for Performance Gains

Mo Khazali6 min read

A React Native logo flying on a rocket.

I recently published an article and thread comparing iOS rendering performance across SwiftUI, React Native, and Flutter. The results showed that SwiftUI (unsurprisingly) performs the best, followed by React Native and Flutter respectively. I got some interesting feedback and suggestions from…

Continue reading →

Microfrontends in Mobile with React Native

Mo Khazali10 min read

A single Monolith being split into smaller services

Introduction This article is meant to be an exploration of the state of creating Microfrontends (MFEs) for native mobile apps in 2023. It covers the history of MFEs, giving a brief intro, and then looks into how React Native's architecture can…

Continue reading →

Comparing iOS rendering performance: SwiftUI vs. React Native vs. Flutter

Mo Khazali7 min read

3 iPhones with SwiftUI, React Native, and Flutter logos

When SwiftUI first came out, I remember reading about complaints around its performance. Some animations were janky (compared to UIKit) and app layouts were getting recalculated far too much, resulting in unnecessary computation power being used. People reported it being…

Continue reading →
Load Next Posts