Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/tristantanjh/flutteranddartguide2023
My Projects from the course 'Flutter & Dart - The Complete Guide [2023 Edition]'
https://github.com/tristantanjh/flutteranddartguide2023
dart flutter mobile-development
Last synced: about 2 months ago
JSON representation
My Projects from the course 'Flutter & Dart - The Complete Guide [2023 Edition]'
- Host: GitHub
- URL: https://github.com/tristantanjh/flutteranddartguide2023
- Owner: tristantanjh
- Created: 2023-07-18T05:15:53.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2023-08-14T07:32:54.000Z (over 1 year ago)
- Last Synced: 2023-08-14T08:35:35.479Z (over 1 year ago)
- Topics: dart, flutter, mobile-development
- Language: C++
- Homepage:
- Size: 1010 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Flutter & Dart - The Complete Guide [2023 Edition] Projects
The 'Flutter & Dart - The Complete Guide [2023 Edition]' on Udemy is a course that aspires to help developers learn how to create beautiful, responsive, and feature-rich mobile applications from scratch, primarily using Flutter and Dart. The course is led by Maximilian Schwarzmüller from [Academind](https://academind.com/), who is a bestselling, top-rated online course instructor with a vast variety of courses on web and mobile development.---
### Skills Learned
In this comprehensive Flutter and Dart course, I've had the privilege of acquiring a diverse set of skills that have empowered me to create dynamic and feature-rich mobile applications. My journey through the course has equipped me with the following capabilities:
1. **Flutter and Dart Fundamentals:** I've gained a solid foundation in both Flutter and Dart, enabling me to expertly compose widgets, manage app layouts, and work fluidly with data types, functions, and classes.
2. **State Management:** I've become adept in various techniques for smooth app state handling and architecture. Not only learning how to "lift states up", I also utilized the package 'Riverpod' as a state management solution, allowing me to effectively manage and share state throughout my application, enhancing its efficiency and maintainability.
3. **Responsive App Design:** I designed responsive apps for diverse device settings, including landscape and portrait orientations, as well as dark and light themes. This ensures an optimal user experience across a wide range of configurations.
4. **Multi-Screen Navigation:** I created intuitive navigation for multi-screen apps, including bottom bars and tab-based navigation, providing users with efficient and intuitive ways to navigate through sections of applications.
5. **App Animations:** I learnt how to make engaging user experiences with animation controllers, tween animations, and custom transitions.
6. **Firebase Backend:** I set up Firebase as a backend solution, which allows for seamless integration of features such as user authentication, real-time database synchronization, and cloud storage.
7. **Native Device Features:** With hands-on experience in utilizing native device features, I can integrate functionalities like accessing the camera and photo gallery.
8. **Integration of external APIs:** I successfully integrated external APIs to enhance my app's functionality, with Google Maps as a prime example for geolocation services.
9. **Push Notification:** Through practical implementation, I added push notifications into my app. Users will receive timely updates, alerts, and personalized messages, fostering user engagement and ensuring they stay connected with the app.Armed with this comprehensive skill set, I am well-prepared to embark on ambitious Flutter projects, creating polished and innovative applications that seamlessly combine various technologies to deliver exceptional user experiences.
---### Projects
Throughout the course, I have completed multiple projects, both with guidance from video lectures and independently. This repository includes all the projects I have worked on, and while there are numerous projects in this collection, I'll highlight a few remarkable ones below that have provided me with the most valuable learning experiences.
#### Dice Roller
This straightforward application enables the user to roll a 6-sided die by clicking on a button. Despite its simplicity, it has offered me a wealth of valuable insights into Flutter and Dart, helping me grasp the fundamentals of mobile development using these languages.
Through the development of this app, I acquired knowledge about the essential syntax of Dart and Flutter, and how to utilize widgets and handle their states effectively. Additionally, I learned how to import images for use in my mobile applications and implement basic theming, such as creating a gradient background.
#### Quiz App
In my next project, I took on the challenge of building a quiz application, and it proved to be an excellent learning experience. This interactive app allowed users to answer a series of questions and receive feedback on their performance when all questions are answered.
During its development, I delved into advanced concepts like state management by "lifting states up", which enabled me to efficiently manage the application's state across multiple components. Moreover, I gained valuable insights into rendering content conditionally, dynamically displaying questions and options based on user interactions. Creating this quiz app not only honed my skills in Flutter and Dart but also strengthened my understanding of how to design engaging and interactive mobile applications.
#### Expense Tracker
This expense tracker application enables users to efficiently manage their expenses. It allows them to add and delete expenses while categorizing them into four distinct categories: food, leisure, travel, and work. Once the expenses are added, users can visualize their spending patterns with a responsive bar graph, providing valuable insights into their financial habits.
The core skills I learnt while building this application were user input validation, where I made sure that data entered by users adhered to specific criteria and enhancing the app's reliability. Moreover, I explored the realm of in-depth theming by implementing both dark and light themes, offering users the freedom to customize their app's appearance to their preference. More importantly, I delved into the intricacies of building for responsiveness by adapting the user interface based on varying screen widths, such as landscape and portrait orientations.
#### Meals App
The Meals App is a culinary resource designed to provide users with a diverse collection of recipes categorized by different cuisines. Users can explore a variety of meal options within each cuisine category, enabling them to find and prepare dishes that align with their preferences. The app also offers a feature to mark favorite meals, facilitating easy access to preferred recipes. Additionally, users can apply filters to refine their search based on dietary considerations, such as vegan or dairy-free choices.
During the development of the Meals App, I gained proficiency in several crucial aspects of mobile app development. The experience provided hands-on practice with multi-screen navigation, allowing users to seamlessly transition between different sections of the app. I also mastered the implementation of Riverpod, a robust state management solution, to efficiently handle and share data throughout the application. Moreover, I acquired the ability to integrate animations into the user interface, enhancing the visual appeal and user engagement of the app. These newfound skills collectively contribute to the creation of a feature-rich and user-friendly experience within the Meals App.
#### Shopping List
In this simple shopping list application, users can easily compile a list of items they intend to purchase, categorizing each item according to specific categories such as dairy, carbs, meat, and more. With a straightforward interface, users can quickly add or remove items, ensuring that they are well-prepared for their shopping excursions.
Through the development of the Shopping List App, I acquired valuable insights into integrating external services, specifically leveraging the power of Firebase's real-time database functionality. This learning experience allowed me to grasp the intricacies of connecting an app to Firebase, enabling seamless data persistence and synchronization. This practical hands-on experience with Firebase's real-time database functionality significantly expanded my skill set, providing me with the expertise to create apps with powerful data management capabilities.
#### Favorite Places
The Favorite Places App is designed to help users curate a personalized collection of their cherished locations. With the ability to attach images and precise geolocations, users can effortlessly save and organize their favorite places. The app's intuitive interface makes it simple to add new places, view details, and explore saved locations on an interactive map.
The development of the Favorite Places App provided me with a profound understanding of integrating native device features and external APIs into an application. Leveraging native device capabilities, I gained the expertise to allow users to capture and attach images directly from their device's camera or gallery.
Furthermore, I explored the realm of external APIs by seamlessly integrating Google Maps. This integration allowed me to incorporate geolocation services, enabling users to pinpoint and visualize their favorite places on an interactive map. Through this project, I acquired practical knowledge in harnessing these powerful technologies, enhancing my ability to create feature-rich and engaging applications that leverage both device-specific functionalities and external services.
#### Chat App
This chat application offers an environment for users to engage in real-time conversations. Users can log in to their personalized accounts using secure ticket-based authentication, enabling them to send and receive messages seamlessly within a giant chatroom. Also, users will have the ability to receive post notifications, ensuring they never miss an important message or update.
Through the development of the Chat Application, I gained invaluable insights into user authentication and real-time messaging functionality using Firebase. I successfully implemented Firebase Authentication, allowing users to securely log in to their accounts and access the chatroom environment.
Additionally, I delved into the world of push notifications, utilizing Firebase Cloud Messaging to deliver real-time alerts and notifications, ensuring users are promptly informed of new messages and updates. This hands-on experience provided me with a comprehensive understanding of utilizing Firebase services to create a seamless and responsive communication platform. By leveraging Firebase Auth and Messaging, I honed my skills in user authentication, push notifications, and real-time messaging, enhancing my ability to create interactive and user-centered applications.
---
### Installation
#### Prerequisites
Before you begin, ensure that you have the following software installed on your system:
- [Flutter and Dart SDK](https://docs.flutter.dev/get-started/install)
- A code editor (e.g., Visual Studio Code, Android Studio, IntelliJ IDEA)
- Git
- Device Emulators ([Android Studio](https://developer.android.com/studio)/[XCode](https://developer.apple.com/xcode/)) if preferred.#### Clone the Repository
1. Open a terminal or command prompt.
2. Navigate to the directory where you want to clone the repository:
```bash
cd /path/to/desired/directory
```
3. Clone the repository:
```bash
https://github.com/tristantanjh/FlutterAndDartGuide2023.git
```#### Running Apps
1. Navigate to the directory of the specific app you want to run.
```bash
cd /path/to/cloned-repo/specific-app
```
3. Install all dependencies:
```bash
flutter pub get
```
3. Connect a physical device or boot up an emulator.
4. Run the app:
```bash
flutter run
```---
### Acknowledgment
Maximilian Schwarzmüller for his comprehensive Flutter and Dart course, which served as the foundation for all the projects found here. Visit his Udemy profile [here](https://www.udemy.com/user/maximilian-schwarzmuller/)!