Advanced React Native with Expo is an advanced course in building production mobile apps, covering scalable architecture, state with Zustand, Redux Toolkit and TanStack Query, offline-first data, secure authentication, Reanimated animations, push notifications, testing with Jest and Maestro, and releases through EAS. It suits mobile developers, software engineers and tech leads who already know React Native.
React Native apps used in real businesses have to handle much more than screens: API data that must be cached and work offline, secure authentication, smooth animations, notifications, testing and new releases that ship without disruption. When an app grows without a sound structure, the code becomes hard to maintain, the app slows down and the team keeps fixing the same bugs.
This new edition is the advanced course after Basic React Native with Expo and Intermediate React Native, using Expo SDK 57 and React Native 0.86 on the New Architecture. Learners design the app architecture, separate global state from server state with Zustand, Redux Toolkit and TanStack Query, and build offline-first features, GraphQL, authentication, Reanimated animations, push notifications and tests before releasing to the stores with EAS, all through the AuraMarket shop project. (3 days, 6 hours per day, 18 hours in total, Advanced level.)
What you’ll gain
Structure a large React Native project with TypeScript so it is easy to extend and maintain
Separate and manage global state and server state with Zustand, Redux Toolkit and TanStack Query
Measure and improve performance with the profiler, React Compiler and fast-rendering lists
Connect GraphQL and real-time data, and design apps offline-first
Build secure authentication with OAuth, JWT, secure storage and biometrics
Create smooth animations and gestures with Reanimated and Gesture Handler
Send push notifications and write unit and end-to-end tests
Build, submit and update apps with EAS and track errors after release
Who this course is for
Developers who have completed basic and intermediate React Native, or have equivalent experience
Mobile developers and software engineers building enterprise apps
Tech leads and senior developers who set the team's architecture and practices
Tech entrepreneurs who maintain more complex business apps themselves
Prerequisites
Completion of basic and intermediate React Native, or experience building apps with React Native and Expo
Understanding of TypeScript, async/await, React Hooks and the Context API
Experience with REST APIs, authentication and basic databases
Comfortable with Git, npm and the command line, with an Android phone or iPhone for testing
Curriculum
Course Details
This course is a 2026 edition that replaces the previous Advanced React Native with Expo course and sits above Basic React Native with Expo and Intermediate React Native. It has been rewritten for Expo SDK 57 and React Native 0.86. It runs for 3 days, 6 hours per day (18 hours in total, 09:00-16:00), as lectures alternating with labs and workshops throughout. Advanced level. It suits developers who already build React Native apps and want to move up to enterprise-grade work. Learners build the AuraMarket shop project from architecture, state management, offline-first data, authentication, animation, push notifications and testing through to releases with EAS, and take home a lab guide and source code.
Separate UI, hooks, services and repositories following Clean Architecture
Strict TypeScript, path aliases, ESLint and Prettier
Configure app.config.ts and environment variables for development, preview and production
Lab: set up the AuraMarket shop project
Section 2: Lab: Global State with Zustand and Redux Toolkit
Put local, global and server state in the right places
Zustand: stores, selectors and persist middleware
Redux Toolkit: store, slices and Redux DevTools for larger teams
When to choose each, and moving away from an overgrown Context
Lab: a cart and settings that survive closing the app
Section 3: Lab: Server State with TanStack Query
Query keys, caching, staleTime and automatic refetching
Mutations with optimistic updates and rollback on error
Infinite queries for page-by-page lists
Interceptors for tokens, retries and central error handling
Lab: a product list with search and filters
Section 4: Lab: Measuring and Improving Performance
Use React Native DevTools and the profiler to find unnecessary renders
React Compiler and doing less manual memo, useMemo and useCallback
Long lists with a well-tuned FlatList and FlashList
Images with expo-image, caching and the right sizes
Check bundle size with Expo Atlas and lazy loading
Section 5: Workshop: Starting the AuraMarket Project
Connect the sample API and build the repository layer
A catalogue screen using TanStack Query and Zustand together
Measure performance before and after tuning
Workshop: review the code structure together
Day 2Advanced Data, Security and Animation
Section 6: Lab: GraphQL and Real-Time Data
GraphQL with Apollo Client: queries, mutations and the normalised cache
Generate types from the schema with GraphQL Code Generator
Subscriptions over WebSocket for real-time data
Choosing between REST and GraphQL
Lab: order status that updates instantly
Section 7: Lab: Offline-First Apps with SQLite
Store data on the device with expo-sqlite and migrations
Persist the TanStack Query cache so the app opens instantly
Check network status and queue pending changes
Resolve conflicts and show sync status
Lab: a cart and favourites that work offline
Section 8: Lab: Authentication and Security
Sign in with OAuth and social login through expo-auth-session
Handle JWT access and refresh tokens safely
Store tokens with expo-secure-store and combine them with protected routes
Fingerprint or face authentication with expo-local-authentication
Security checklist: secrets in the bundle, HTTPS and deep links
Section 9: Lab: Animation and Gestures with Reanimated
Shared values, animated styles and work on the UI thread
Layout animations for items being added or removed
Gesture Handler: drag, swipe and pinch
Themes, dark mode and animations that respect reduced-motion settings
Lab: swipe-to-save product cards with a bottom sheet
Section 10: Workshop: AuraMarket Core Features
Membership with biometric sign-in
A catalogue with advanced filters that works offline
A cart that keeps its state and syncs with the server
Workshop: test on real phones with a development build
Day 3Production: Notifications, Testing and Release
Section 11: Lab: Push Notifications with expo-notifications
Set up FCM for Android and APNs for iOS through EAS
Request permission, get a push token and send through the Expo push service or FCM directly
Local notifications and scheduling
Open the right screen on tap with Expo Router
Lab: notify customers when their order status changes
Section 12: Lab: Background Tasks and Native Modules
App state with AppState and background work with expo-background-task
Background work limits on Android and iOS
Config plugins to adjust native projects without manual edits
Build a simple native module with the Expo Modules API
Lab: periodic background data sync
Section 13: Lab: Testing and Quality
Unit tests with Jest and jest-expo
Test components and hooks with React Native Testing Library
Mock APIs and native modules in tests
End-to-end tests with Maestro, with Detox as an alternative
Lab: a test suite for the checkout flow
Section 14: Release and Monitoring with EAS
EAS Build profiles and environment variables on EAS
Submit to the stores with EAS Submit and prepare the store listing
Over-the-air updates with EAS Update, channels and rollouts
CI/CD with EAS Workflows
Track crashes and performance with Sentry
Section 15: Workshop: A Production-Ready AuraMarket Capstone
Add real-time chat with the shop and notifications
Run the test suite and fix the performance issues found
Build a preview release and ship an update through EAS Update
Present your work, review the code and plan next steps
Schedule & training options
For individuals — public rounds
No public rounds are open right now. Join the waiting list and we will contact you first when the next round opens, or ask us on LINE. Or call 02-570-8449 or 088-807-9770
What is the difference between Redux Toolkit and Zustand, and when should you use each?
Redux Toolkit gives a clear structure with a store, slices and actions and strong debugging tools, so it suits large apps built by several developers. Zustand is more concise, creating a store with a single function and no Provider wrapper, which suits medium-sized apps or simpler state. Use either one for global state only: let TanStack Query handle API data, caching and refetching, and keep screen-only state inside components.
How does TanStack Query help in a React Native app?
TanStack Query manages server data for you, handling caching, refetching stale data, retries on failure and loading or error states without writing useEffect and state by hand on every screen. It supports mutations with optimistic updates that show results immediately and roll back on failure, infinite queries for long lists, and a persisted cache so the app shows data as soon as it opens, even offline.
How do you make an app work offline-first?
Store the data users need on the device with expo-sqlite or a persisted cache, and always show the local copy first before refreshing it from the server. When users make changes while offline, queue them and send them once a connection is back. Decide how to resolve conflicting edits, and show the sync status so users know where things stand.
What is EAS Update, and how does it differ from submitting to the stores?
EAS Update sends changes to JavaScript and assets to installed apps over the air without waiting for store review, which suits bug fixes and small content changes, and you can choose the channel and roll updates out gradually. Native changes, such as adding a library with native code or changing app permissions, still need a new build with EAS Build and a store submission through EAS Submit.
Who is the Advanced React Native with Expo course for, and what should I know beforehand?
It suits developers who have completed basic and intermediate React Native or have equivalent experience, mobile developers and software engineers building enterprise apps, and tech leads who set the team's architecture. You should know TypeScript, async/await, React Hooks and the Context API, have worked with REST APIs and authentication, and be comfortable with Git, npm and the command line.
What will I be able to do after the Advanced React Native with Expo course?
You will be able to structure a scalable app, manage state with Zustand, Redux Toolkit and TanStack Query, use GraphQL, build offline-first features, implement OAuth, JWT and biometric authentication, create animations with Reanimated, send push notifications, write tests with Jest and Maestro, and release with EAS Build, Submit and Update while tracking errors in Sentry. Participants who complete the training receive a Certificate of Completion with its own number, which can be verified online.
Today's web applications need to respond quickly, feel as smooth as a mobile app and be easy to extend as the system grows. React is one of the most widely used libraries for building user interfaces because it splits a page into reusable components, and it…
As a React app grows, components that simply work are no longer enough. Teams need types that catch mistakes before the code runs, a clear way to manage state, secure login and tests that make changes safe. React 19 and today's tools make all of this much…
Full-stack web development today usually separates the frontend from the backend, connects them through an API, and uses Docker so that everyone on the team runs the system the same way, from a developer laptop to the production server. React with Vite is a…