A React Native tablet application that allows users to create and customize beautiful pastel-colored grids. Users can configure grid parameters, select base colors, and rearrange grid items through an intuitive drag-and-drop interface.
- Interactive grid configuration
- Pastel color palette selection
- Drag-and-drop grid item rearrangement
- Tablet-optimized interface
- Node.js (v18 or higher recommended)
- Yarn package manager
- Expo CLI (
npm install -g expo-cli
) - iOS Simulator (for Mac users) or Android Emulator
- Expo Go app on your physical device (optional for testing)
-
Clone the repository:
git clone https://github.com/devanhlt/grid_pastels_test.git cd grid_pastels_test
-
Install dependencies:
yarn install
-
Start the development server:
yarn start
-
Run on specific platforms:
- iOS:
yarn ios
- Android:
yarn android
- Web:
yarn web
- iOS:
- Built with Expo SDK 52 for streamlined development and deployment
- TypeScript integration for type safety and better development experience
- React 18.3.1 with latest features and improvements
- Utilizes
react-native-reanimated
(v3.16.1) for high-performance grid animations - Implements
react-native-gesture-handler
for smooth drag-and-drop interactions - Safe area handling with
react-native-safe-area-context
for tablet layouts
- Comprehensive testing setup with Jest and Testing Library
- Includes both unit and integration testing capabilities
- Custom Jest configuration for React Native environment
- TypeScript configuration for strict type checking
- Babel configuration for modern JavaScript features
- ESLint and TypeScript type checking for code quality
Run the test suite using:
yarn test
PastelGrid/
├── src/ # Source code
├── assets/ # Static assets and color palettes
├── App.tsx # Main application component
├── index.ts # Entry point
└── tests/ # Test files
PanGestureHandler
fromreact-native-gesture-handler
to detect gestures and handle touch interactionsreact-native-reanimated
for smooth and performant animations, enabling seamless cell movement
This project is licensed under the MIT License.