React Native overview
Choose web-rendered coverage or prepare native Android and iOS capture.
Choose the rendering you need#
| Approach | Build uploaded | What it tests |
|---|---|---|
| React Native Web | Static web Storybook | Components rendered with react-native-web in a browser. |
| Android preview | Capture APK | On-device Storybook rendered on an Android emulator. |
| iOS preview | Simulator app | On-device Storybook rendered on an iOS simulator. |
React Native Web does not test native platform layout or native-only behaviour. Native capture requires a standalone capture build of your app; uploading the source or a development app that needs Metro is not enough.
React Native Web#
Use a separate web Storybook configuration pointing at your existing story files. A typical framework is @storybook/react-native-web-vite. Preserve the dependencies and version compatibility your app requires.
// .storybook/preview.ts
export default {
parameters: {
framecheck: { viewport: { width: 390, height: 844 } },
},
};Stub native-only modules for the web and load fonts in the preview. Build the static output and use the regular web uploader. Mark stories that cannot render on the web with framecheck.skip: true in the web configuration.
Native capture preview#
One React Native project can enable Android and iOS. Use Capture settings → Platforms when available; Setup then asks how each app is built and generates the appropriate CI instructions.
Start with capture mode, then follow Android or iOS. The native uploader and web uploader are different files. Both native platforms use the project's upload token.
Review native results#
Native results use the same review and approval workflow, with platform/device variants. Inspect each enabled platform; an Android acceptance does not imply that an iOS image matches it. Web features such as DOM inspection, browser Live preview, CSS masks, and axe scanning should not be assumed to apply to native capture.