As you may know, all Dart code runs in isolates, starting from the default main isolate. When developing Flutter applications, handling heavy tasks like image processing or complex calculations on this main isolate will cause lag and stutter. The Isolate API was born to solve this problem, allowing us to offload heavy tasks to background workers and restore the app's smoothness.
Key appears everywhere in Flutter, from StatefulWidget to StatelessWidget. It seems so close yet so far, familiar yet mysterious. Today, the Flutter Vietnam detective team will take you deep into the corners of the Flutter gang to decode the role of Key.
In the previous article about Stack and Heap Memory in Java, I mentioned Memory Leaks as a cause of java.lang.OutOfMemoryError. Today, let's dive into specific examples that cause Memory Leaks to learn how to prevent and fix them.
There's a long-standing debate: Is grinding algorithms only for coding interviews and rarely useful in real work? Let's see how LeetCode algorithms can be applied to the Speakie English learning app!
Recently, I've spent time building apps like Habit Tree and Speakie, or occasionally working on some outsource projects for clients. Every time I start a new project, I spend a whole day setting up architecture, routing, auth, state management... for the app. So, from real needs, I thought about building a lightweight Flutter base project to start as quickly as possible.
In the programming world, Builder Pattern is known as one of the popular design patterns in the Creational Pattern group, helping to create complex objects in a flexible and readable way.
Many people have asked me whether AI is about to replace developers. My answer, as of now, is no. There still needs to be someone to verify the code that AI produces.
Have you ever struggled to choose among the 7 types of providers in Riverpod for different use cases in your project? Well, now, Remi Rousselet introduces a new way to use Riverpod with code generation, making developers' lives a bit easier.
In Android, performing heavy tasks like network requests or database operations on the main thread can cause the app to freeze or crash. To ensure smooth performance, such tasks need to be offloaded to a background thread to avoid blocking the main thread.
When starting a project, apart from tasks like setting up the environment and building a robust codebase, choosing the right Git Branching Strategy is equally critical. Picking the wrong strategy can lead to significant setbacks.