Swift 5.5 introduced a new concurrency model for Swift. It is async/await. It helps us create concurrency application easier. But I am very curious about how it works.I think understanding what’s going on under the hood will help us clear our mind about how it works. 1. Example To declare a sync function is very […]
How to inspect other iOS applications UI that you don’t own without jailbreaking
In the life of a software engineer, you always learn and gain experience from other people, other products, other ideas. If you are a web developer, you want to know the design and layout of a certain website. Let’s say you are interested in Facebook’s website and want to know how they create their web […]
Migrating iOS Project to Bazel – Part 7 – Tích hợp Swift Third party library
Ở 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 […]
Migrating iOS Project to Bazel – Part 6 – Tích hợp Firebase Crashlytics
Crashlytics là thư viện rất thông dụng đối với tất cả các iOS Developer rồi. Nó không thể thiếu cho việc thu thập và thống kê những lần crash của ứng dụng. Trong bài này mình sẽ đi từng bước để chúng ta tích hợp Firebase crashlytics vào project có sử dụng bazel. Để demo […]
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 […]
Migrating iOS Project to Bazel – Part 4 – Tulsi
Ở những phần trước mình có nói về tạo 1 project đơn giản dùng bazel rồi.Khi dùng bazel thì chả nhẽ mình phải code bằng sublime text hay vscode ư, điều đó sẽ làm tốc độ dev chậm lại chứ được cái gì mà ông tác giả bài này cứ tung hô nhỉ. Thì giờ […]
Memory alignment
Hôm trước mình có viết 1 bài về chủ đề Optimize struct memory trong swift mà có nói tới về vấn đề memory alignment này. Thì bài này mình sẽ giải thích kĩ hơn tại sao nó được sinh ra và tại sao nó quan trọng. 1. Khái niệm Memory alignment là nói về sự […]
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 […]
DWARF & dSYM
Là một iOS Engineer, mình có chút thắc mắc là làm sao để lldb có thể dừng đúng chỗ mà chúng ta đặt breakpoint. Hay khi đã dừng tại breakpoint thì làm sao nó biết được ở đó có những biến nào để chúng ta debug. Mình đã tìm hiểu 1 số tài liệu thì […]
Migrating iOS Project to Bazel – Part 3
Ở phần trước, thì mình đã demo về việc dựng 1 project ios demo sử dụng Bazel để build. Thì bài này sẽ là bắt đầu trình bày việc giải quyết các vấn đề khi migrate project sang Bazel. Bài hôm nay sẽ tập trung vào việc migrate Unit Tests như thế nào. 1. Migrate […]