82 lines
3.6 KiB
Markdown
82 lines
3.6 KiB
Markdown
# Flutter Learning Challenge Set: Beginner to Senior
|
|
|
|
## Beginner Challenge: Task List App
|
|
|
|
Create a simple task list app that allows users to add, view, and delete tasks.
|
|
|
|
### Requirements:
|
|
1. Use a `StatefulWidget` for the main screen.
|
|
2. Implement a list to store tasks (use the `List` collection).
|
|
3. Create a text input field for adding new tasks.
|
|
4. Display tasks in a `ListView`.
|
|
5. Add a delete functionality for each task.
|
|
6. Use basic state management within the `StatefulWidget`.
|
|
|
|
### Concepts covered:
|
|
- Basic Flutter widgets
|
|
- StatefulWidget lifecycle
|
|
- Dart collections (List)
|
|
- Simple state management
|
|
|
|
## Junior Challenge: Weather Forecast App
|
|
|
|
Extend the task list app into a weather forecast app that fetches data from an API and uses more advanced Flutter concepts.
|
|
|
|
### Requirements:
|
|
1. Create a weather forecast screen that displays current weather and a 5-day forecast.
|
|
2. Implement navigation to switch between the task list and weather forecast screens.
|
|
3. Use `http` package to fetch weather data from a free API (e.g., OpenWeatherMap).
|
|
4. Implement error handling for API calls.
|
|
5. Use `Provider` for state management.
|
|
6. Create custom widgets for weather information display.
|
|
7. Add animations for loading states and transitions.
|
|
|
|
### Concepts covered:
|
|
- Flutter navigation
|
|
- Asynchronous programming (Futures)
|
|
- Error handling
|
|
- HTTP requests
|
|
- Provider for state management
|
|
- Custom widgets
|
|
- Basic animations
|
|
|
|
## Senior Challenge: Smart Home Control App
|
|
|
|
Develop a comprehensive smart home control app that incorporates advanced Flutter concepts and integrates features from the previous challenges.
|
|
|
|
### Requirements:
|
|
1. Create a dashboard that displays:
|
|
- Task list widget (from beginner challenge)
|
|
- Weather widget (from junior challenge)
|
|
- Smart device control widgets (new feature)
|
|
2. Implement user authentication (you can mock this locally).
|
|
3. Use Firebase (or a mock service) for backend data storage and real-time updates.
|
|
4. Implement advanced navigation using Navigator 2.0.
|
|
5. Create custom animations for device control interactions.
|
|
6. Use `BLoC` pattern for state management.
|
|
7. Implement unit and widget tests for critical components.
|
|
8. Add theme switching capability (light/dark mode).
|
|
9. Optimize the app for different screen sizes (responsive design).
|
|
10. Implement local notifications for task reminders and device alerts.
|
|
|
|
### Concepts covered:
|
|
- Advanced state management (BLoC)
|
|
- Navigator 2.0
|
|
- Firebase integration (or mocking advanced backend services)
|
|
- Custom animations
|
|
- Unit and widget testing
|
|
- Theme management
|
|
- Responsive design
|
|
- Local notifications
|
|
|
|
## Building on Previous Challenges:
|
|
- The task list from the beginner challenge becomes a widget in the senior challenge's dashboard.
|
|
- The weather forecast from the junior challenge is also integrated into the senior challenge's dashboard.
|
|
- The navigation and state management evolve from basic concepts in the beginner challenge to more advanced implementations in the senior challenge.
|
|
|
|
## Future Assistance Prompt:
|
|
If you need help with these challenges in the future, use the following prompt:
|
|
|
|
"I'm working on the Flutter Learning Challenge Set that was generated in a previous conversation. I'm currently on the [Beginner/Junior/Senior] challenge, specifically struggling with [describe the specific part you're stuck on]. Can you provide guidance on how to approach this problem, keeping in mind the concepts that should be demonstrated at this level of the challenge?"
|
|
|
|
This prompt will help the AI assistant understand the context of your question and provide appropriate guidance based on the challenge level and specific concepts you should be working with. |