An open source React Native screen for learning and experimentation. This project demonstrates how to build a modern chat interface using React Native and Expo - perfect for developers who want to understand how to structure components, handle state, and create polished UIs.
This is a single screen implementation that you can study, modify, and use as a starting point for your own React Native projects. It's designed to be educational - showing real-world patterns for:
- Component structure and organization
- Styling with StyleSheet
- State management with hooks
- Custom icon components
- Layout and positioning
- Cross-platform considerations
- AI-powered chat interface for homework help
- Personalized character avatar with daily date display
- Message input with voice support
- Daily affirmations and tips
- Modern, clean UI design
- Cross-platform (iOS, Android, Web)
- React Native 0.81
- Expo SDK 54
- React 19
- React Native Safe Area Context
- Expo Vector Icons
- Node.js 18+
- Bun or npm
- Expo CLI
# Clone the repository
git clone git@github.com:edengilbertus/Chat-Screen.git
cd Chat-Screen
# Install dependencies
bun install
# Start the development server
bun expo startiOS Simulator:
bun expo start --iosAndroid Emulator:
bun expo start --androidWeb:
bun expo start --webOr scan the QR code with Expo Go app on your physical device.
.
├── App.js # Main app entry with SafeAreaProvider
├── app.json # Expo configuration
├── package.json # Dependencies
├── index.js # Entry point
├── screens/
│ └── ToScreen.js # Main chat screen component
├── components/
│ └── Icons.js # Custom SVG icons
└── assets/ # Images, fonts, icons
├── icon.png
├── splash-icon.png
├── adaptive-icon.png
└── favicon.png
ToScreen.js - The main screen showing:
- How to structure a complex screen component
- Using ScrollView for scrollable content
- TouchableOpacity for interactive elements
- Date formatting and display
- Image loading and positioning
Icons.js - Custom icon components demonstrating:
- SVG implementation in React Native
- Reusable component patterns
- Props and customization
App.js - App entry point showing:
- SafeAreaProvider setup
- SafeAreaView usage
- StatusBar configuration
Expo configuration including:
- App name: "To"
- Version: 1.0.0
- Platform settings (iOS, Android, Web)
- Plugin configuration
Create a .env file for sensitive configuration:
# API Keys, etc.bun start- Start Expo development serverbun android- Start on Androidbun ios- Start on iOSbun web- Start on web
- Use functional components with hooks
- Follow React Native best practices
- Use StyleSheet for styling
- Keep components modular and reusable
eas build --platform ioseas build --platform androidnpx expo export:webbun expo start --clearrm -rf node_modules bun.lockb
bun install- Fork the repository
- Create your feature branch (
git checkout -b feature/your-feature) - Commit your changes (
git commit -m 'Add some feature') - Push to the branch (
git push origin feature/your-feature) - Open a Pull Request
MIT
For issues and feature requests, please use the GitHub issues page.
Built with Expo and React Native