This is a bare React Native app that replicates PlantApp.
- Node.js >= 20
- React Native CLI - Follow the React Native environment setup guide
- iOS: Xcode and CocoaPods
- Android: Android Studio and SDK
Note: This project was created with React Native 0.81.1
npm installInstall CocoaPods dependencies:
# Install bundler (first time only)
bundle install
# Install pods
cd ios && pod installnpm startnpx react-native run-androidnpx react-native run-ios# Run all tests
npm test
# Run tests in watch mode
npm test -- --watch
# Run tests with coverage
npm test -- --coverageplantAppDemo.mov
- TypeScript - Type-safe development
- Clean Code - Well-organized and maintainable codebase
- Well-Structured - Modular architecture with clear separation of concerns
The app follows a clean architecture pattern with:
- Component-based UI - Reusable and modular components
- Centralized State Management - Redux Toolkit for predictable state updates
- Type Safety - Full TypeScript implementation
- Navigation Structure - Stack and tab-based navigation
- Persistent Storage - Redux Persist with AsyncStorage
- Modern Design - Figma-implemented responsive desing
PlantApp/
├── __tests__/
│ ├── onboardingSlice.test.ts
│ └── store.test.ts
├── android/
├── ios/
├── src/
│ ├── assets/
│ │ ├── fonts/
│ │ └── images/
│ │ ├── home/
│ │ ├── onboarding/
│ │ └── paywall/
│ ├── components/
│ │ ├── home/
│ │ ├── onboarding/
│ │ ├── paywall/
│ │ ├── common/
│ ├── hooks/
│ ├── navigation/
│ ├── screens/
│ │ ├── home/
│ │ ├── onboarding/
│ │ └── paywall/
│ ├── store/
│ │ ├── api/
│ │ ├── slices/
│ │ └── store.ts
│ ├── types/
│ └── utils/
├── App.tsx
├── index.js
└── package.json
- Framework: React Native v0.81.1
- Language: TypeScript v5.8.3
- State Management: Redux & Redux Toolkit with Redux Persist
@reduxjs/toolkitv2.9.0react-reduxv9.2.0redux-persistv6.0.0@react-native-async-storage/async-storagev2.2.0
- API Management: RTK Query for data fetching and caching
- Navigation: React Navigation v7
@react-navigation/nativev7.1.17@react-navigation/stackv7.4.8@react-navigation/bottom-tabsv7.4.7
- Lists:
@shopify/flash-listv2.0.3 - UI Components:
react-native-linear-gradientv2.8.3react-native-safe-area-contextv5.5.2react-native-gesture-handlerv2.28.0
- QA / Testing:
jestv29.6.3
- Type Checking: TypeScript
- Code Quality: ESLint v8.19.0
- Code Formatting: Prettier v2.8.8
- Testing: Jest v29.6.3