Best practices · Stacks and tools
React Native Best Practices
Opens with creditsA practical guide to building React Native apps the way the React Native and Expo docs recommend today. It covers project setup and upgrades, components and styling, lists, performance and threads, navigation and deep links, security and storage, accessibility, and testing and release, with short examples you can copy.
What you will learn
8 chapters · about 25 min
1Project setup and upgradesHow to start a React Native project so it stays on the supported path: a framework, the New Architecture, Hermes V1 and the strict TypeScript API, plus a habit of small upgrades.5 practices · 5 min
2Components and stylingHow to build screens that look right on every device: styles, pressables, window size, platform differences and images.5 practices · 3 min
- 1Define styles with StyleSheet.create outside the component
- 2Use Pressable for touch targets and give it visible feedback
- 3Read screen size with useWindowDimensions, not at module scope
- 4Keep platform differences small and explicit
- 5Ship images at the size you show them and cache remote ones
5 in this chapterOpen this chapter- Lists that scroll smoothlyMost slow React Native screens are long lists. This chapter covers virtualized lists, stable keys, item memoization and the FlatList props worth tuning.4 practices · 3 minOpens with credits
- Performance, threads and animationsWhy React Native apps drop frames, how the JavaScript and UI threads share the work, and how to measure and fix slowness the way the React Native performance guide describes.5 practices · 3 minOpens with credits
- Navigation and deep linksHow to structure navigation, link into the app from outside and sign users in through a browser without exposing tokens.4 practices · 3 minOpens with credits
- Security and storageWhat can and cannot be kept secret in a mobile app, where to store tokens, and how to keep personal data out of logs and backups.4 practices · 3 minOpens with credits
- AccessibilityHow to make every screen work with VoiceOver and TalkBack: labels, roles, states, grouping, announcements and testing on real devices.4 practices · 2 minOpens with credits
- Testing and releaseHow to test components and flows, ship release builds you can debug, and roll out updates without surprises.4 practices · 3 minOpens with credits
About this guide
These React Native best practices are for developers who can already build a screen or two and want apps that feel native, stay fast on cheap phones and are easy to upgrade. The advice is checked against the React Native docs and release posts up to React Native 0.87, and against the Expo docs for SDK 57, so it reflects an ecosystem where the New Architecture is the only architecture and Hermes V1 is the default engine.
A lot of older React Native advice no longer applies. The legacy bridge is gone from new builds, TurboModules are always on, deep imports into React Native internals are now type errors, and InteractionManager has been removed. If a tutorial tells you to toggle the New Architecture or import from react-native/Libraries, it was written for a version you should not be on.
The chapters follow the life of an app: set the project up so upgrades stay cheap, build components and lists that do not drop frames, keep work off the JavaScript thread, link between screens safely, store data according to how sensitive it is, make every control usable with a screen reader, and test and ship release builds with confidence.
Each practice has a short reason, things to do and avoid, and a code example where it helps. If you only have an hour, read the lists and security chapters first: slow lists and leaked keys are the two problems users and attackers notice fastest.
Common questions
Should I use Expo or bare React Native in 2026?
For most new apps, use Expo. The React Native docs recommend starting with a framework and name Expo as the example. Development builds let you add any native library or your own native code, so you rarely need to leave it.
What is the latest version of React Native?
As of October 2026 the latest stable release is React Native 0.87, published on August 11, 2026. It made the Strict TypeScript API the default, removed the useTurboModules flag and added Android Gradle Plugin 9 support. Expo SDK 57 ships React Native 0.86.
Do I still need to enable the New Architecture?
No. Since React Native 0.82 the New Architecture is the only runtime option, and 0.87 removed the TurboModules flag entirely. What you do need is native libraries that support it.
Is AsyncStorage safe for storing tokens?
No. AsyncStorage is not encrypted, and the React Native security guide says not to use it for tokens or secrets. Use Keychain or Keystore based storage through a library such as expo-secure-store or react-native-keychain.
How do I make a FlatList faster?
Use a stable keyExtractor, add getItemLayout when rows have a fixed size, keep rows simple and wrapped in memo, and define renderItem once with useCallback. Measure in a release build before tuning props such as windowSize or maxToRenderPerBatch, and consider FlashList for very large lists.
Can I hide an API key in a React Native app?
No. Anything in the app bundle, including EXPO_PUBLIC_ variables and react-native-config values, can be extracted. Put calls that need a secret behind your own server or a serverless function that adds the key.
Sources (8)
Checked against these, last on 13 October 2026.
- React Native 0.87: Strict TypeScript API, Metro Update, Swift Package Manager, AGP 9 Support, React Native blogreactnative.dev/blog/2026/08/11/react-native-0.87
- React Native 0.84: Hermes V1 by Default, React Native blogreactnative.dev/blog/2026/02/11/react-native-0.84
- Performance Overview, React Native docsreactnative.dev/docs/performance
- Optimizing FlatList Configuration, React Native docsreactnative.dev/docs/optimizing-flatlist-configuration
- Security, React Native docsreactnative.dev/docs/security
- Accessibility, React Native docsreactnative.dev/docs/accessibility
- Environment variables in Expo, Expo docsdocs.expo.dev/guides/environment-variables/
- Expo SDK reference, Expo docsdocs.expo.dev/versions/latest/
Related on Sefism
Picked from the other libraries by shared topics.
Best practices
See allChecklists
See all- App Store and Google Play Launch ChecklistLaunch a mobile app on the App Store and Google Play: accounts, build rules, review guidelines, privacy labels, Data safety, listing, in-app purchases, testing, crashes and staged rollout.
- Mobile App Security ChecklistCheck an Android or iOS app against OWASP MASVS: data storage, network security, authentication, platform interaction, code quality, resilience and privacy.
Project structures
See all- React Native with Expo project structureFor web developers who know React and want one TypeScript codebase for Android, iOS and the web. Routes are files in src/app (Expo Router), the business logic lives in feature folders under src/features split into data, domain and presentation, and the native android and ios folders are generated, not hand-written.
- Flutter project structureFor anyone building one Dart app for Android, iOS and the web. The tree starts from what flutter create gives you and grows into a feature-first lib/ folder, where each feature keeps its own data, domain and presentation code, then adds tests at every level, flavors, release signing, crash reporting and, for large teams, a melos workspace of local packages.
- Android with Kotlin and Compose project structureFor anyone building a native Android app the way Google recommends in 2026: Kotlin, Jetpack Compose, a ViewModel per screen, repositories over Room and the network, and Hilt wiring it together. The tree starts from Android Studio's Empty Activity template, grows into feature packages with data, domain and presentation, adds signing, shrinking, CI and crash reporting for production, and ends as a multi-module build with convention plugins, Baseline Profiles and staged rollouts.
Career questions
See allStuck on something specific?
Writing only gets you so far. If you want an answer to your situation rather than the general case, book a session and we will work through it together. Sessions are free for approved Sefism members, and a few slots open each week.
- 1:1 Mentorship
- Fresh Graduate Mentorship
- Career Guidance
Brand deals, promos and partnerships: tauseeffayyaz@gmail.com