openclaw/apps/expo-github-mobile/README.md
Claude 9ddebad13c feat: add Expo GitHub mobile app (React Native port)
Port of SwiftUI iOS app to Expo/React Native for cross-platform support.
- Session list with repository info and status
- Chat view with collapsible tool executions
- Message input with model/repo/branch selection chips
- PR creation flow simulation
- Dark theme matching Claude Code aesthetic
- KeyboardAvoidingView for proper keyboard handling

https://claude.ai/code/session_018qmTB96S8xvNRQFrhcvzJp
2026-01-23 13:42:49 -08:00

85 lines
2.1 KiB
Markdown

# GitHub Mobile App - Expo
A React Native mobile app inspired by Claude Code, built with Expo. This is a port of the SwiftUI iOS app to React Native/Expo for cross-platform support.
## Features
- Session list view with repository info and status
- Chat view with collapsible tool executions (Write, Bash, Read, Edit, Glob, Grep)
- Message input with model/repo/branch selection chips
- PR creation flow simulation
- Dark theme matching Claude Code aesthetic
- Mock data for repos, sessions, and tool calls
## Tech Stack
- React Native with Expo SDK 54
- TypeScript
- React Context for state management
- Expo Vector Icons (Ionicons)
## Project Structure
```
src/
├── components/ # Reusable components
│ ├── MessageInputView.tsx
│ ├── SessionRow.tsx
│ ├── MessageView.tsx
│ ├── ToolCallView.tsx
│ ├── Chip.tsx
│ └── NewSessionSheet.tsx
├── contexts/ # React Context providers
│ └── AppContext.tsx
├── models/ # TypeScript types and data
│ └── types.ts
├── theme/ # Colors, spacing, styling
│ ├── colors.ts
│ └── types.ts
└── views/ # Screen components
├── SessionListView.tsx
└── ChatView.tsx
```
## Running the App
```bash
# Install dependencies
npm install
# Start development server
npx expo start
# Run on iOS simulator
npm run ios
# Run on Android emulator
npm run android
# Run on web
npm run web
```
## Colors & Theme
The app uses a dark theme matching Claude Code's aesthetic:
- Background: `#141414`
- Card: `#292929`
- Accent (warm orange): `#D98C33`
- Tool colors: Write (green), Bash (blue), Read (purple)
## Models & Data
Mock data includes:
- 6 repositories (clawdbot, systemss, Awesome-Prompts, etc.)
- 7 sessions with various titles
- Active session with tool call examples (Write, Bash commands)
## Port Notes
This is a direct port of the SwiftUI app at `../ios-github-mobile/`. Key differences:
- Uses React Native components instead of SwiftUI
- Ionicons instead of SF Symbols
- React Context instead of `@Observable`
- Modal-based sheets instead of SwiftUI sheets