From Web to Mobile: Building My First React Native App
January 20, 2026
The leap
After 14 years of web development, I decided to build a mobile app. Not because I needed to learn React Native for work, but because I had an itch: I wanted a simple app to track my fixed expenses.
The result is Fixo, now live on the App Store.
What transfers from web
More than you'd think. React is React. Components, hooks, state management, TypeScript. If you know React well, you're 60% of the way there.
// This looks exactly like web React
const ExpenseCard = ({ expense }: { expense: Expense }) => {
return (
<View style={styles.card}>
<Text style={styles.title}>{expense.name}</Text>
<Text style={styles.amount}>{formatCurrency(expense.amount)}</Text>
</View>
);
};What doesn't transfer
CSS. Forget everything you know about CSS. Flexbox works, but flex-direction defaults to column. There's no cascade. There's no hover. Animations are a completely different paradigm.
Navigation. On the web, routing is URL-based. On mobile, it's stack-based. Going "back" means something fundamentally different. React Navigation handles this well, but the mental model shift takes time.
Expo is the right choice
I started without Expo. Lasted two days. The build toolchain for native apps is brutal. Expo abstracts all of it. expo run:ios and you're testing on your phone.
Shipping to the App Store
The review process is real. My first submission was rejected because I didn't include a privacy policy URL. The second was rejected because my screenshots showed placeholder data. Third time was the charm.
Total time from first commit to App Store: 6 weeks of evenings and weekends.