PinnedAli AmmarinLevel Up CodingRiverpod: Inversion of Control, Dependency Injection, Dependency Inversion, and Service LocatorIn the realm of software design, principles such as Inversion of Control (IoC), Dependency Injection (DI), Dependency Inversion, and…Dec 3, 20233Dec 3, 20233
PinnedAli AmmarUnveiling the Power of Riverpod: A Simple Guide to its FeaturesThis article talk into the reasons behind my choice of Riverpod for various aspects of app development. It’s important to note that I did…Nov 30, 2023Nov 30, 2023
PinnedAli AmmarinStackademicUnlocking the Power of Pagination with Riverpod and HooksLet’s explore how to abstract the pagination logic with the assistance of Riverpod and hooks.Aug 31, 2023Aug 31, 2023
PinnedAli AmmarSealed Classes in Flutter: Unlocking Powerful FeaturesSealed classes are a powerful feature introduced to Dart in version 3, fulfilling a long-time request from developers. In the previous…Jun 30, 20231Jun 30, 20231
PinnedAli AmmarSealed Classes in Dart: Unlocking Powerful FeaturesDart’s sealed classes provide a powerful way to define union class and leverage pattern matching. The Freezed package, known for its…Jun 28, 20236Jun 28, 20236
Ali AmmarinLevel Up CodingStatement vs. Expression in DartFirst, let’s agree that any code you write is either a statement or an expression. That’s right — any code, from a single word to a…Jun 271Jun 271
Ali AmmarinLevel Up CodingHow To Avoid Use Cases Boilerplate in Flutterlets implement clean architecture useacse with riverpodDec 10, 2023Dec 10, 2023
Ali AmmarAsync init with Riverpodlet's make our app cleaner by utilizing some Dart and Riverpod featuresDec 1, 2023Dec 1, 2023
Ali AmmarSimplifying JSON Conversion To ModelMany applications require retrieving data from an API, often in the form of JSON, with some responses containing lists of objects. After…Jun 27, 20231Jun 27, 20231