Dart & Flutter - Zero to Mastery [2023] + Clean Architecture
What you'll learn
- Setup Dart&Flutter environment (Windows, Mac..)
- Dart Syntax. Learn and use the basics of the programming language Dart.
- All the important basics of the Flutter Framework in one small app. UI, navigation, animations, theming
- Professional Software Development: Clean software architecture implemented in an app that you can use as a template at any time.
- Layer Seperation
- Clean Architecture
- Dependency Injection
- State Management with BLoC/Cubit & Provider
- Unit Testing, Widget Testing, Golden Tests & Integration Testing
- The course is always CURRENT and will be expanded!
- Extra: Discord Community !
- This course is the English version of the best rated german Flutter course on Udemy!
- Adaptive Layout
- Forms + Validation with Cubits
- Hive
- Localization
- Firebase (Crashlytics, Firestore, Authentication)
Requirements
- This course is suitable for programming beginners and for people who come from another language and want to get started with app development with Flutter.
Description
With this course, we empower developers worldwide and unite them in a thriving community!
Dive into app development with Flutter and benefit from professional insights gained from years of Freelancer experience, going beyond the basics.
Discover the essential aspects of successful projects, focusing on maintainable, scalable, and efficient software architecture that will serve you throughout your career.
Suitable for all skill levels, this course takes you from your first Flutter app to professional software architecture, functional programming, testing, and more.
Capitalize on the numerous opportunities provided by the young Flutter framework, as the demand for skilled developers continues to rise.
Enjoy the engaging development experience with Flutter and the Dart language!
We have the largest active German Flutter Community on Discord - help us build an English-speaking community for developers to collaborate and support each other.
We're excited to have you on board!
-> UP TO DATE: The course and all projects were last updated in August 2023.
-> Latest Update - Flutter Version: 3.10.6
-> Latest Content - Firebase Authentication, Firestore & Crashlytics added
-> Course Compatible with Flutter Version 2.5 +
What will we learn?
Content:
Basic course Dart - basics of programming
Basic course Flutter - basics of app development with Flutter
Clean architecture - professional development with Flutter
Testing - unit testing, widget testing, golden tests, integration testing
ToDo App - Adaptive Layout - we create a responsive ToDo App thats support adaptive layouts, uses forms and has different local data sources including hive
WIP: ToDo App - Firebase - we expand our previous app together and add firebase as cloud service to it.
Dart Basics
Begin with the fundamentals of Dart programming, covering essential concepts and setting up your development environment with VS Code. Progress from understanding variables to mastering object orientation and asynchronous programming.
Flutter Basics
Explore the key elements of UI creation with Flutter, learning everything needed to craft your own app interfaces. Delve into framework functionality, individual UI components, themes, animations, navigation, and more!
Clean Architecture
Develop a simple app to learn the principles of clean software architecture for proper app development.
Implement a bulletproof clean code software architecture with clear layer separation, applicable to any client app. Master this approach to achieve extremely high-quality software standards. Integrate the BLoC pattern for clean business logic and UI separation, resulting in a testable project. Utilize dependency injection and functional programming, while covering unit testing, widget testing, and integration testing to thoroughly evaluate your app.
ToDo App - Adaptive Layout
Based on this App we will go over different topics, so we create a app that supports the new Material3 adaptive Layout. We go into the basic Form functions and as a bonus we move the validation logic into a Cubit. In this app we will use different local data sources to store all data, to have a permanent storage we will use the Hive package. The complete navigation is using the Navigator 2.0 with the go_router package.
WIP: ToDo App - Firebase
We expand our ToDo-App and add different firebase services to it. Like authentication, storing our todos in a firestore, crash reporting and so on. We have added Authentication, Firestore and Crashlytics already to this section, feel free to take a look.
Whats next?
As we want to improve this course over the time, you will find here the next topics that we are working on.
* Null Safety
* Firebase Performance
Important: In this course, we aim to give you all the knowledge you need to start app development with Flutter quickly and effectively. We are not too "obsessed with details" and will not go into all the complex background processes that you are taught in an university course, for example. Rather we will dive into praxis as soon as possible.
Our focus is on practicality, quality and - last but not least- fun.
Who this course is for:
- Everyone who wants to quickly and effectively immerse themselves in mobile app development benefits here. We are German Flutter Freelancers and have already been able to successfully implement many projects - we would like to share our experience of the last few years with you to help you start developing your projects successfully.
- We develop several apps together, get to know clean software architecture in Flutter and of course put our apps through their paces. We'll take you by the hand and show you everything from scratch.
- This course is the English version of the best German Flutter course on Udemy!
Instructors
Hello, my name is Max, I am a passionate Flutter freelancer and lecturer.
How did I get into Flutter?
Like most people, I started software development with classic C. I maintained 50 year old source code in a large corporation. It was like it sounds... pretty boring. In my private life, I then had an idea for a mobile app that I was enthusiastic about. But how do you implement them? What language? Which framework? Flutter was quickly chosen. Thanks to its cross-platform possibilities and the fresh wind that the young framework brings with it, it was perfect for my project. I was soon working on our ideas in a small development team and a little later I also changed my main job to professional mobile app development. To this day I work with the framework and have been able to lead many projects to success with it. At the moment I am a freelancer, Udemy lecturer, live trainer and flutter domain expert.
If you want to know more about me, check out my website.
Why lecturer?
As mentioned above, I acquired Flutter myself in a short period of time. So I can put myself in your position. I also had to acquire my knowledge from courses, YouTube and yes, also from reading the numerous documentaries. I now know my way around. I know what works and what doesn't work, and what's the key thing to understand in order to be a good Flutter developer. I would now like to pass on this conceptual and detailed knowledge in order to prepare an easier path for others.
I am convinced that I can teach you dart & flutter in a very short time, so well that you can work professionally and safely on large projects.
What you will find here
- Top current courses, always with the current major update if possible
- continuous support
- Knowledge transfer without losing the thread
- Clean concept in the design/structure of the course content
- deep understanding on all levels of abstraction
Hello, my name is Max and am a Flutter freelancer since 2019 and co-founder of tripmind.
How did I get into Flutter?
My first bigger projects have used C#. After i decided to make my master degree in mobile computing, i have done my projects in Java for Android. In my first job i continued to work most of the time with java for different projects, Android, Android Wear and Backend Systems. My favorite was still to making apps, as i can directly see what i have done and feel it with my hands.
After a few years in the labor market, I decided – together with two friends - to found tripmind. tripmind is an app connecting people for travels based on their personal interests and travel preferences. As we wanted to support both iOS and Android, we needed to make a decision: Do we go for the native approach or do we opt for a cross-platform framework. During my master degree I have gathered experience in working with cross-platform frameworks and was not convinced of this approach. They do not feel natural and rather heavy for the user. In some blog post, I once read about Flutter and was intrigued immediately. Thus, I decided to give it a go as it sounded promising and had an ingenious team behind it. This way, I started developing with Flutter 0.2.11 to build tripmind. In the following years, I have rewritten the code multiple times, no state management to redux, redux to bloc and lastly to clean architecture. I spend days to get a CI/CD running with different flavors and package names, looked videos, read blog posts and tried to merge different tutorials to get the app to work as we wanted it to. It was tedious work and took a long time, but in the end I got to know Flutter inside out and still liked the approach from flutter. During the intense developing work with Flutter for tripmind, I always dreamed for a web support as well - and as we know this dream came true.
Today I work as a freelancer, Flutter domain expert and udemy lecturer.
Why lecturer?
I gained my first experiences as a lecturer in my studies where I worked for four years as a tutor for C++ and helped new students to learn the basics of programming. After this, I worked a few months as an assistant teacher in a school and afterwards as lecturer for my university for mobile application platforms. For me it was amazing to spark the interest for coding and share my joy. It was great watch people learn and understand the concepts of programming and observe them getting better with every lesson. This is my goal for my courses as well: Making you enjoy programming and helping you become better with every lesson.
I am convinced that I can teach you dart & flutter in a very short time, so well that you can work professionally and safely on large projects.
What you will find here
- Top courses, always with the current major update if possible
- Tasks to exercise topics
- Continuous support
- Knowledge transfer without losing the thread
- Clean concept in the design/structure of the course content
- Deep understanding on all levels of abstraction