A powerful mobile and desktop IDE for Raspberry Pi development, built with React Native and Expo. This application provides a seamless experience for writing, testing, and deploying Python scripts on Raspberry Pi boards.
- 🔌 Easy board connection and management
- 📱 Responsive design for both mobile and desktop
- 📁 Full-featured file explorer
- ⚡ Real-time script execution
- 📊 Live output monitoring
- 🎨 Beautiful and intuitive UI
- 🌙 Dark mode support
This project follows Clean Architecture principles, organized into the following layers:
- Contains business logic and interfaces
- Independent of external frameworks
- Defines core types and use cases
- Components:
entities/: Core data types and interfacesuseCases/: Business logic interfaces
- Implements domain interfaces
- Handles external dependencies
- Components:
repositories/: Concrete implementations of domain interfaces- Integrates with expo-micro-ide for board communication
- UI components and state management
- Uses Zustand for state management
- Components:
components/: Reusable UI componentshooks/: Custom React hooksstore/: Zustand state stores
- Expo Router configuration
- Screen components
- Navigation logic
``` src/ ├── app/ # Expo Router screens │ ├── (drawer)/ # Drawer navigation screens │ ├── _layout.tsx # Root layout with drawer │ └── index.tsx # Main IDE screen ├── domain/ # Core business logic │ ├── entities/ │ └── useCases/ ├── data/ # Data layer implementations │ └── repositories/ ├── presentation/ # UI and state management │ ├── components/ │ ├── hooks/ │ └── store/ └── assets/ # Static assets ```
The application uses Zustand for state management, with two main stores:
-
Board Store (
boardStore.ts)- Manages board connection state
- Handles script execution
- Monitors board status
-
File System Store (
fileSystemStore.ts)- Manages file operations
- Handles file selection
- Tracks current directory
The app uses Expo Router with drawer navigation:
- IDE (Main Screen)
- Split view on desktop
- Editor-only view on mobile
- Files
- Dedicated file explorer for mobile
- Settings
- Board management
- Connection status
- App information
-
Clone the repository: ```bash git clone https://github.com/yourusername/pidevkit-ide.git cd pidevkit-ide ```
-
Install dependencies: ```bash npm install
yarn install ```
- Start the development server: ```bash npm start
yarn start ```
- Node.js 16 or higher
- Expo CLI
- Android Studio (for Android development)
- Xcode (for iOS development)
-
Install Expo CLI: ```bash npm install -g expo-cli ```
-
Install dependencies: ```bash npm install ```
- iOS Simulator: `npm run ios`
- Android Emulator: `npm run android`
- Web: `npm run web`
-
Configure app.json:
- Update version numbers
- Configure adaptive icons
- Set up splash screen
-
Build the app: ```bash npm run build:prod ```
- Fork the repository
- Create a feature branch
- Commit your changes
- Push to the branch
- Create a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- Built with Expo
- Uses expo-micro-ide for board communication
- UI components from Lucide Icons