Clean Architecture: Flutter App

By employing clean architecture, you can design applications with very low coupling and independent of technical implementation details. That way, the application becomes easy to maintain and flexible to change. Clean architecture allows us to create architectural boundaries between dependencies which allows components to be intrinsically testable

React Redux vs Context API

In large applications one of the main decisions that has to be made is what tools to use for application state management. Here compare Redux and Context.

SOLID: Interface Segregation Principle

As your application grows you are tempted to add methods linked to different responsibility to an existing interface. It is better to separate that new method out into its own interface.

SOLID: Liskov Substitution Principle

Most of the time when building systems using OOP, we're looking to use composition over inheritance, however, when the need is there to use inheritance it's advisable that it's done using the LSP. The Goal of this principle is to prevent our old codebase from breaking due when doing inheritance.

SOLID: Open Closed Principle

The Open-Closed Principle (OCP) states that software entities (classes, modules, methods, etc.) should be open for extension, but closed for modification.