Storybook app for showcasing and testing @equinor/eds-mobile-components.
This is an Expo project using file-based routing.
- Node.js (v18 or higher)
- pnpm (v10 or higher)
- For iOS: Xcode and CocoaPods
- For Android: Android Studio with an emulator configured
-
From the monorepo root, install dependencies:
pnpm install
-
Build the components package:
pnpm build
-
Run the storybook app:
pnpm dev:storybook
-
Press
ito open in iOS Simulator orafor Android Emulator.
For iOS development, install CocoaPods dependencies:
cd apps/storybook/ios && pod installUse Expo's development build to run on a physical device:
# iOS
pnpm dev:storybook -- --device
# Or scan the QR code with the Expo Go app (limited functionality)apps/storybook/
├── app/ # Expo Router pages
│ ├── _layout.tsx # Root layout with EDSProvider
│ └── (tabs)/
│ ├── index.tsx # Home screen
│ ├── about.tsx # About screen
│ └── components/ # Component showcase screens (Slice 1 only)
│ ├── button.tsx
│ ├── input.tsx
│ ├── selectioncontrols.tsx
│ ├── typography.tsx
│ └── ... # Future screens added per slice
├── components/ # Shared storybook UI (Section, Surface, SettingsControls)
└── ios/ # Native iOS project
- Create a new file in
app/(tabs)/components/(e.g.,mycomponent.tsx) - Register the screen in
app/(tabs)/components/_layout.tsx - Add it to the component list in
app/(tabs)/components/index.tsx - Export the component from
packages/components/src/index.tsif not already exported
This error appears in the iOS Simulator because it doesn't support haptic feedback. It's harmless and can be ignored—haptics work correctly on physical devices.
If you encounter iOS build errors after updating dependencies:
cd apps/storybook/ios
rm -rf Pods Podfile.lock
pod installClear the cache and restart:
pnpm dev:storybook -- --clear