Ở bài viết trước mình đã nói về cách tích hợp Firebase hay cụ thể hơn là Firebase Crashlytics bằng cách thêm bazel depedency vào WORKSPACE rồi. Tuy nhiên Firebase là mình sử dụng framework đã được build sẵn. Lần này thì khác là mình tích hợp thư viện vào mà nó chưa được build […]
Swift
Migrating iOS Project to Bazel – Part 5 – Tích hợp swiftlint
Swiftlint là một công cụ giúp developer chúng ta thực hiện check cú pháp của code swift theo 1 số rule. Đây là công cụ mà ai cũng biết rồi. Nếu như bình thường thì chúng ta có thể cài đặt thẳng SwiftLint bằng cocoapods rồi gọi script để swiftlint chạy khi compile project. Tuy […]
Memory layout và optimize Swift memory khi sử dụng Struct
Là lập trình viên iOS chắc không ai là không biết Struct. Nó là kiểu cấu trúc dữ liệu dạng value type. Tuy nhiên để sử struct mà tối ưu lượng memory được sử dụng thì không phải ai cũng biết. 1. Memory alignment Chương trình máy tính được chạy sẽ bao gồm rất nhiều […]
Objective-C Runtime Part 3 – Swift & Objc Runtime
Thậm chí iOS App của bạn được viết bằng swift hoàn toàn, thì bên trong nó đều sử dụng tới Objc Runtime. Bởi vì những thư viện cốt lõi đều được viết bằng Objc như Foundation, UIKit, …. Mà gắn với Objc thì tất nhiên phải có Objc Runtime rồi. Bài viết hôm nay tập […]
Tản mạn về [weak self]
Từ hồi vào project swift vào năm 2018 thì thấy anh em dân dev rất hay dùng bừa một tính năng nào đó để fix(kiểu fix triệu chứng) mà không hiểu rõ tại sao lại dùng như vậy. Và còn có một anh không nắm rõ quản lý bộ nhớ nên rất sợ vấn đề […]