
discover how clean architecture and the BLoC pattern enable robust, scalable Flutter apps by separating concerns into domain, data, and presentation layers with SOLID and dependency inversion.
Explore the domain, data, and presentation layers, defining the user entity and repository contracts, and implement use cases that encapsulate business logic in a loosely coupled clean architecture.
Explore how the repository handles data operations in the domain and how data layer models extend entities with serialization and copyWith for users and customers.
Implement repositories in the data layer by enforcing domain contracts, performing crud operations, and ensuring data consistency while decoupling from the data source for reusability.
Data sources bridge the gap between the application and the outside world by querying databases, APIs, and local storage, and depend on external packages like Http or firebase.
Move from the data layer to the presentation layer, where a bloc or qubit manages UI state and business logic via use cases connected to the repository and data source.
Explore how test driven development guides clean architecture in Flutter, wiring data sources, repositories, and use cases through dependency injection to achieve loosely coupled layers in a BLoC pattern.
Explore solid principles—single responsibility, open-closed, Liskov substitution, interface segregation, and dependency inversion—and see how clean architecture uses contracts, use cases, and data sources to keep modules loosely coupled and extensible.
Learn dependency injection in a Flutter app using a service locator and lazy singletons. Register the course repository and remote data source, with Firestore and auth clients.
Explore building a modular Flutter home UI using the BLoC pattern and clean architecture, featuring a scaffolded home view, app bar, gradient background, course qubit integration, and a course-of-the-day notifier.
Build the add course UI in Flutter for admins, using a BLoC pattern with a modal bottom sheet form for title, description, and image, including validation and image picking.
Create a responsive Flutter home header with a 300 height stack showing the user name, and implement tinder‑like cards using a custom widget and package integration.
Develop the Flutter home view and course detail screen, featuring a modular header, a subject list with course tiles, and a navigable all courses view with expandable descriptions.
Build the video domain and data layers, defining a video entity and a get videos and add video repository, wired to the server for course videos, with tests guiding implementation.
Build and test the video data layer for a Flutter app, implementing video model from map and to map, handling timestamps and thumbnails within a clean architecture using TDD.
Create and test a video qubit using dependency injection, equatable state, and multi-provider wiring to load and manage videos within a Flutter app's home page and router.
Explore the material feature walk through, examining the material resource entity, its fields, and how files and URLs are handled in the UI and Firestore, with repository and tests.
Implement multi material addition in the Flutter group chat BLoC by the admin looping through materials and emitting errors on failure, then emitting materials added after the loop completes.
The lecture walks through qubit tests, including the initial state and functionality tests, identifying a material error and demonstrating fixes via conditional emission and an injection container.
Learn how an exam is modeled with xml-like structures, including time limits, questions, and question choices, plus exam history and user answers under clean architecture.
Define exam entities from admin json uploads, modeling the exam, exam questions, and question choices. Build to map and from map conversions, plan user exam history with answers and isCorrect.
Develop exam models in Flutter using from map and from upload map constructors to parse admin json and firestore data, assemble exam questions and choices, and test them.
Implement the repository according to the established pattern, covering seven functionalities, then write and cross-check the long test. Review the remote data source interface and its stub before proceeding.
Explore how Firestore batch writes enable atomic multi-document updates and offline persistence, and implement a data source to upload exams and fetch exam questions in a Flutter app using TDD.
Demonstrates submitting an exam via a remote data source, updating user points, and enrolling the user in on-road courses in Firestore, with emphasis on TDD and clean architecture.
Explore the exam bloc with loading, exam questions retrieval, and various success and error states, and implement dependency injection using a service locator and lazy singletons.
Design the home screen UI to display exams, materials, and videos from domain to data, guided by clean architecture and a course of the day video fetch.
Explore implementing a per-user notification entity in a flutter app, including a domain model with equatable, a firestore subcollection strategy, and a category enum with string mapping and icons.
Define a notification repo interface, mark as read when a notification tile builds, and implement send, get all, and clear by id via a stream for real-time updates.
Define and test the notification model with a default unseen flag, map category values from Firestore, and ensure copy with yields a notification model while tests exclude server timestamp fields.
Implement the notification repository in the data layer by wiring the remote data source and transforming streams to emit either a list of notifications or a failure, following TDD.
Explore testing and implementing a Firestore-backed notification remote source in a Flutter group chat app using TDD and clean architecture, covering get and send notifications, batch writes, and streaming.
implement get notifications as a stream in the notification cubit, returning a stream of either a notification error or a list of notifications, with tests for success and failure.
Builds a Flutter notification UI in the home bar using a bloc provider and badges for unread notifications, with a dedicated notifications view.
Build a Flutter admin UI for video management using the BLoC pattern, featuring course selection, YouTube metadata extraction and thumbnails, and dynamic video forms.
Build a video ui part 2 in flutter, with a header and thumbnail, tapping launches YouTube or in-app video, using video utils for playback and link handling.
Finalizes the course videos feature by fetching and displaying all videos for a course, with a header, a video list, and a chewie-based YouTube player.
Build a scalable add resource UI for flutter course materials with a single author controller. Support picking multiple resources via file picker, per-resource edits via a dialog.
This is course where we will cover what is clean architecture in detail with step by step example. We will also talk about why it important and how it plays an important role for big projects and how a team can collaborate with their projects if the project is done using clean architecture and how each of the project is dependent. It comes in two parts. Students must buy each part separately.
This app cover 100 TDD and detail explanation of Clean Architecture with BLoC, Provider and Cubit
This app uses firebase as backend and chatting. All data is saved in the firebase and the login also happens through firebase. You get notifications in different cases.
You may get notification for joining a group and notification is a new course or exam is uploaded.
There's an admin side of this app, where you may upload courses to firebase and the app reads that immediately. You may upload many exams or courses.
The exam result comes out automatically and immediately. Students can review their result and recheck the test.
You will have a screen video player section which could be fullscreen or half screen. You get to play video from a link or local storage.
Profile center provides name, password and avatar change.
This course also covers dedicated TDD section clear examples. So the first 6 hours of this course we take a look at a dummy app to know about TDD and clean architecture.
We heavily covers in group chat in this tutorial. Flutter group chat is a difficult feature to implement. We have done it using BLoC and Clean Architecture