Welcome to this structured Dart programming study repository. This project is designed to help you master Dart through a combination of official documentation, simplified bilingual notes (English/Arabic), and practical coding assignments.
Each topic is organized into its own numbered folder (e.g., 0. Introduction to Dart, 1. Variables). Inside each folder, you will find:
RAW.md: The raw content sourced from official Dart documentation.PAGE.md: A clean, formatted version of the documentation for easy reading.NOTES.md: 📝 Key Study Material. Summarized bilingual notes (English & Arabic), explaining concepts simply with analogies and key takeaways.ASSIGNMENTS.md: 💻 Practice. Three levels of coding tasks (Basic, Intermediate, Advanced) with full solutions included.
- 0. Introduction to Dart
- Basic syntax,
main()function, and printing.
- Basic syntax,
- 1. Variables
var,final,const, and default values.
- 2. Operators
- Arithmetic, equality, logical, and type test operators.
- 3. Comments
- Single-line, multi-line, and documentation comments.
- 4. Built-in types
- Numbers, Strings, Booleans, Runes, and Symbols.
- 5. Records
- Grouping multiple values, positional/named fields, and destructuring.
- 6. Collections
- Lists, Sets, Maps, and control flow operators (
if,for, spread...).
- Lists, Sets, Maps, and control flow operators (
- 7. Generics
- Writing reusable type-safe code (
<T>), generic collections, and methods.
- Writing reusable type-safe code (
- 8. Typedef
- Creating type aliases for function signatures and complex types.
A comprehensive Personal Finance Tracker project that combines everything learned from Variables to Typedefs.
- Concepts: Records, Collections, Generics, and strict Typing.
- 9. The Dart type system
- Soundness, type inference, type safety, and the
covariantkeyword.
- Soundness, type inference, type safety, and the
- 10. Patterns
- Matching and destructuring data structures.
- 11. Pattern types
- Logical, Relational, Collection, and Object patterns.
- 12. Loops
for,while,do-whileloops, andbreak/continue.
- 13. Branches
if,if-case,switchstatements, andswitchexpressions.
- 14. Error handling
- Exceptions,
try-catch,finally, andassert.
- Exceptions,
- 15. Functions
- Parameters, anonymous functions, closures, and generators.
- 16. Metadata
- Annotations (
@override,@Deprecated) and custom metadata.
- Annotations (
- 17. Libraries & imports
- Importing packages, prefixes, privacy, and deferred loading.
A CLI E-Commerce System integrating Functions, Error Handling, Libraries, and Patterns.
- Concepts: Modular Architecture, Custom Exceptions, Records for status, and Pattern Matching.
- 18. Classes
- Object blueprints, members, instance variables, and static members.
- 19. Constructors
- Generative, named, const, factory constructors, and initializer lists.
- 20. Methods
- Instance methods, operators, getters, setters, and abstract methods.
- 21. Extend a class
- Inheritance (
extends), method overriding, andsuperusage.
- Inheritance (
- 22. Mixins
- Reusing code across hierarchies using
mixin,with, andon.
- Reusing code across hierarchies using
- 23. Enums
- Enumerated types, enhanced enums with fields/methods, and switch usage.
- 24. Dot shorthands
- Concise syntax for enums, constructors, and static members.
- 25. Extension methods
- Adding functionality to existing libraries without inheritance.
- 26. Extension types
- Zero-cost compile-time wrappers for type safety and interop.
- 27. Callable objects
- Making class instances executable like functions using
call().
- Making class instances executable like functions using
A Smart Home Automation System integrating OOP, Mixins, Extension Types, and Callable Objects.
- Concepts: Class Inheritance, Capability Mixins, Safe Extension Types, and Automation Logic.
- 28. Class modifiers
abstract,base,interface,final,sealed, andmixinmodifiers.
- 29. Concurrency in Dart
- The Event Loop, async architecture, and isolate overview.
- 30. Asynchronous programming
Future,async/await, streams, and error handling.
- 31. Isolates
- Multi-threading,
Isolate.run,Isolate.spawn, and ports.
- Multi-threading,
A Real-Time Stock Trading Simulation Engine that mimics a financial exchange.
- Objective: Build a high-performance system with real-time price updates, trade execution, and background market analysis.
- Concepts: Integrates EVERYTHING (except Introduction, Type System, Pattern Types).
- Core: Variables, Built-in Types, Records, Collections, Generics.
- OOP: Classes, Inheritance, Mixins, Enums, Extension Types, Class Modifiers.
- Advanced: Typedefs, Callable Objects, Extension Methods, Patterns (Destructuring).
- Concurrency: Streams (Real-time prices), Async/Await (Network simulation), Isolates (Heavy analysis).
- Read the
NOTES.mdin a topic folder to grasp the concepts. - Refer to
PAGE.mdif you need deep technical details. - Solve the challenges in
ASSIGNMENTS.mdto reinforce your learning. - Check your answers against the provided solutions.
Happy Coding! 💙