An open API service indexing awesome lists of open source software.

https://github.com/heartthanakorn/flutter-activity-manager

A simple Flutter app for managing daily activities. Add, view, filter, and delete activities with a clean UI and Provider state management. Perfect for learning Flutter basics.
https://github.com/heartthanakorn/flutter-activity-manager

activity android dart example flutter ios learning mobile productivity provider state-management todo

Last synced: 5 months ago
JSON representation

A simple Flutter app for managing daily activities. Add, view, filter, and delete activities with a clean UI and Provider state management. Perfect for learning Flutter basics.

Awesome Lists containing this project

README

          

# Activity Manager

A Flutter application for managing daily activity lists. Helps you add, display, and filter activities by time easily.

## Key Features

- πŸ“ **Add Activities**: Add new activities with name, description, and time
- πŸ“‹ **Display List**: Show activity list sorted by time
- πŸ” **Filter Data**: Show only activities after 18:00
- βœ… **Data Validation**: Validate input data accuracy
- πŸ—‘οΈ **Delete Activities**: Remove unwanted activities

## System Requirements

- **Flutter**: 3.10.0 or higher
- **Dart**: 3.0.0 or higher
- **Android**: API level 21 or higher
- **iOS**: 11.0 or higher

## Installation and Running the App

### 1. Clone the project

```bash
git clone
cd activity_manager
```

### 2. Install dependencies

```bash
flutter pub get
```

### 3. Run the app

```bash
# Run on emulator/simulator or real device
flutter run

# Or run in debug mode
flutter run --debug

# Run in release mode (for performance testing)
flutter run --release
```

### 4. Build APK for Android

```bash
# Build debug APK
flutter build apk --debug

# Build release APK
flutter build apk --release
```

The built APK will be in `build/app/outputs/flutter-apk/`

## Project Structure

```
lib/
β”œβ”€β”€ main.dart # App entry point
β”œβ”€β”€ models/
β”‚ └── activity.dart # Activity data model
β”œβ”€β”€ providers/
β”‚ └── activity_provider.dart # State management with Provider
β”œβ”€β”€ screens/
β”‚ └── home_screen.dart # Main screen
└── widgets/
β”œβ”€β”€ activity_item.dart # Widget for displaying activity list
└── add_activity_dialog.dart # Dialog for adding activities
```

## Provider State Management

I chose **Provider** as the state management solution because:

### Advantages:

- **Easy to learn**: Not too steep learning curve
- **Suitable for small projects**: Not overly complex for apps with minimal state
- **Business logic separation**: Clear separation between UI and business logic
- **Good performance**: Selective rebuild helps UI update only changed parts
- **Community support**: Strong documentation and community

### Compared to other options:

- **vs setState**: Provider better handles global state and business logic separation
- **vs Riverpod**: Riverpod has more features but too complex for small projects like this
- **vs Bloc/Cubit**: Bloc pattern suits complex apps but has more boilerplate code

## Usage

1. **Add new activity**: Press the + button at bottom right
2. **Filter activities**: Press the 3-dot menu at top right and select "Show After 18:00"
3. **Delete activity**: Press the trash icon in the activity list
4. **View details**: Information is displayed in the activity card

## Build for Production

### Android APK

```bash
flutter build apk --release --obfuscate --split-debug-info=build/app/outputs/symbols
```

### Android App Bundle (for Google Play Store)

```bash
flutter build appbundle --release --obfuscate --split-debug-info=build/app/outputs/symbols
```

### iOS

```bash
flutter build ios --release
```

## License

MIT License - See LICENSE file for details

## Developer

Built with Flutter and Created by Thanakorn Thajan❀️

---

**Note**: This app is developed for testing and learning purposes. For actual commercial use, additional features like data persistence, data backup, and improved UX/UI should be added.