added resources, coding challenges, and more study guides
This commit is contained in:
@@ -0,0 +1,82 @@
|
||||
# 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.
|
||||
Reference in New Issue
Block a user