Cross-Platform Mobile App (React Native + Redux, Early R&D)
Why It Exists
An early-career cross-platform mobile app built on React Native and the Exponent (now Expo) toolchain, used to learn and apply the React Native + Redux architecture end to end. It is framed honestly as foundational mobile R&D.
Overview
A React Native application scaffolded with Exponent, organized into the familiar screen-and-store structure: a screens/ directory (Home, Links, Login, Settings), components/, constants/, utilities/, an api/ layer, and a Redux store under src/. Authentication and navigation flows are present via dedicated Login and settings screens.
What We Built
The app uses @exponent/ex-navigation and react-navigation for routing, @shoutem/ui and @exponent/vector-icons for the component/icon layer, and a comprehensive Redux setup, redux, react-redux, redux-thunk, redux-promise, redux-logger, and redux-loop for side-effect handling, with immutable for state and lodash/moment utilities. bluebird provides promises and standard-http-error standardizes API errors. Testing is wired with jest-exponent, and an exp.json configures the Exponent build.
Technologies & Approach
React Native via Exponent for write-once iOS/Android delivery, with a thorough Redux middleware stack (thunk + promise + loop) for predictable async state, the canonical 2017-era React Native architecture. Immutable.js enforces disciplined state updates.
Outcome / Impact
A structured, multi-screen React Native app with authentication, navigation, and a full Redux state layer. As early R&D it demonstrates command of cross-platform mobile fundamentals and the React Native/Redux ecosystem.
Capabilities Demonstrated
- Cross-platform mobile development with React Native and Expo
- Screen-based app architecture with navigation and auth flows
- Redux state management with thunk/promise/loop middleware
- Immutable.js state modeling and Jest testing setup