Như anh em đã biết, tất cả Dart code chạy trong các isolate, bắt đầu từ main isolate mặc định. Khi phát triển các ứng dụng Flutter, việc xử lý các tác vụ nặng như xử lý ảnh, tính toán phức tạp... trên main isolate này sẽ gây ra hiện tượng giật lag. Và Isolate API sinh ra chính là để giải quyết vấn đề này, nó sẽ giúp chúng ta đưa những tác vụ nặng đó xuống background worker, giúp ứng dụng trở lại với sự mượt mà vốn có.
Key xuất hiện tràn ngập trong Flutter, từ StatefulWidget tới StatelessWidget. Vậy nhưng tưởng như rất gần mà ngờ đâu đã quá xa, nghĩ rằng đã trở nên thân thuộc mà lại vô cùng bí ẩn. Hôm nay, đội cảnh sát hình sự Flutter Việt Nam sẽ đưa anh em đi sâu vào ngõ ngách của băng đảng Flutter, giải mã vai trò của Key.
Trong bài viết trước Bộ nhớ Stack và Heap trong Java, mình đã nhắc đến Memory Leaks như là một phần gây ra lỗi java.lang.OutOfMemoryError. Vậy thì hôm nay chúng ta sẽ dành thời gian tìm hiểu những ví dụ cụ thể gây ra Memory Leaks để biết cách phòng bệnh và chữa bệnh.
Có một vấn đề anh em thường tranh cãi lâu nay là: Có phải cày thuật toán chỉ để chuẩn bị cho vòng coding interview chứ chẳng áp dụng được mấy trong công việc? Vậy thì hãy cùng mình tìm hiểu xem thuật toán LeetCode có thể áp dụng vào ứng dụng học tiếng Anh Speakie như thế nào nhé!
Dạo gần đây mình dành thời gian build một số app như Habit Tree và Speakie, hoặc thỉnh thoảng làm một số dự án outsource cho khách hàng. Mỗi lần bắt đầu một dự án mới là mình phải mất cả ngày để set up architecture, routing, auth, state management... cho app. Vậy nên, xuất phát nhu cầu thực tế, mình đã nghĩ đến việc build một base project Flutter gọn nhẹ để có thể bắt đầu nhanh nhất có thể.
Trong giới võ lâm, Builder Pattern được biết đến như một trong những design pattern phổ biến thuộc nhóm Creational Pattern, giúp tạo ra đối tượng phức tạp theo cách linh hoạt và dễ đọc hơn.
Nhiều anh em lo lắng hỏi mình về việc AI sắp thay thế dev chưa? Câu trả lời của mình thì đến thời điểm hiện tại là chưa. Vẫn cần có người verify các dòng code mà AI viết ra.
Không biết có bạn nào luôn băn khoăn mỗi lần phải chọn 1 trong 7 loại provider của Riverpod cho từng use case trong dự án của mình chưa? Nhưng giờ đây, tác giả Remi Rousselet đã giới thiệu cách dùng Riverpod mới với code generation, giúp cho cuộc đời của developer chúng ta dễ thở hơn đôi chút.
Trong Android, nếu thực hiện các tác vụ nặng như request network hoặc đọc ghi database trên main thread có thể sẽ gây ra đơ, crash ứng dụng. Chính vì vậy, để ứng dụng hoạt động mượt mà hơn, chúng ta cần chuyển các tác vụ đó xuống background thread, tránh block main thread.
Khi bắt đầu một dự án, ngoài những việc như setup môi trường, dựng code base thật tốt... thì có lẽ việc chọn một Git Branching Strategy đúng đắn cũng rất quan trọng, vì chọn sai một ly là đi một dặm.