A modern, feature-rich Todo application built with React Native and Expo. This app helps you manage your tasks efficiently with a clean interface and powerful features.
- ✅ Add, Edit & Delete Todos - Complete CRUD operations
- 🔍 Search Functionality - Find todos quickly with real-time search
- 💾 Local Storage - Todos persist between app sessions using AsyncStorage
- 🎯 Task Completion - Mark todos as done with visual feedback
- 📱 Cross-Platform - Works on iOS, Android, and Web
- 🎨 Modern UI - Clean, responsive design with Tailwind CSS
- ⚡ Performance Optimized - Smooth scrolling with FlatList optimization
- Node.js (v16 or higher)
- npm or yarn
- Expo CLI
- iOS Simulator (for iOS) or Android Emulator (for Android)
-
Clone the repository
git clone <your-repo-url> cd Todo
-
Install dependencies
npm install
-
Start the development server
npx expo start
-
Run on your preferred platform
- Press
ifor iOS Simulator - Press
afor Android Emulator - Press
wfor Web browser - Scan QR code with Expo Go app on your phone
- Press
- Type your todo in the input field
- Press the add button or hit Enter
- Your todo will be saved automatically
- Complete: Tap the checkbox to mark as done
- Delete: Tap the delete icon to remove a todo
- Search: Use the search bar to filter todos
- Type in the search bar to filter todos
- Results update in real-time
- Clear search to see all todos
Todo/
├── app/ # Main application directory
│ ├── (home)/ # Home screen and components
│ │ ├── components/ # Reusable components
│ │ │ ├── addTodo.tsx
│ │ │ ├── headers.tsx
│ │ │ ├── ListTodos.tsx
│ │ │ └── searchTodo.tsx
│ │ ├── _layout.tsx # Layout configuration
│ │ └── index.tsx # Home screen
│ ├── _layout.tsx # Root layout
│ └── constant.ts # App constants
├── hooks/ # Custom React hooks
│ └── todo.ts # Todo management logic
├── assets/ # Images, fonts, etc.
└── package.json # Dependencies and scripts
- React Native - Cross-platform mobile development
- Expo - Development platform and tools
- TypeScript - Type-safe JavaScript
- Tailwind CSS - Utility-first CSS framework
- AsyncStorage - Local data persistence
- React Hooks - State management and side effects
@react-native-async-storage/async-storage- Local storageexpo-router- File-based routingnativewind- Tailwind CSS for React Native@expo/vector-icons- Icon library
The app uses Tailwind CSS for styling. You can customize the design by modifying the classes in the component files.
- New features can be added in the
hooks/todo.tsfile - UI components can be created in the
app/(home)/components/directory - Constants and configurations are in
app/constant.ts
- Configure app.json with your app details
- Build for platforms:
# For iOS npx expo build:ios # For Android npx expo build:android
- Follow Expo's publishing guide
- Configure app signing and certificates
- Submit to App Store and Google Play Store
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- Built with Expo
- Icons from @expo/vector-icons
- Styling with Tailwind CSS