Tìm hiểu rò rỉ bộ nhớ trong closure

ℹ️ Bài này được mình dịch từ đây Apple đã có một bài báo về strong reference cycles trong class. Không khó hiểu sự rò rỉ bộ nhớ (memory leak) là gì và làm thế nào để tránh trong trường hợp này. Tuy nhiên, đây là một tình huống khá hiếm, và dễ dàng phát hiện được. Tôi sẽ chú ý về closure với nhiều chỗ khó hiểu hơn. Vì vậy, hãy làm rõ điều này một lần và cho sau này nữa. ...

13 tháng 3, 2017 · 7 phút · phantuanvi

Sử dụng Coordinator để điều khiển App Flow trong mô hình MVVM-C

ℹ️ Bài này được mình dịch từ đây Ở bài trước, chúng ta đã biết sự phức tạp và rắc rối của controller, điều này giải thích vì sao MVC lại có nickname “Massive ViewController” ...

10 tháng 3, 2017 · 7 phút · phantuanvi

Kiến trúc MVVM: hướng dẫn Step-by-Step

ℹ️ Bài này được mình dịch từ đây Việc lựa chọn đúng cho mô hình kiến trúc của app là một nhiệm vụ quan trọng. ...

6 tháng 3, 2017 · 8 phút · phantuanvi

Ba cách để truyền data từ Model đến Controller

ℹ️ Bài này được mình dịch từ đây. Image credit: Stanford University CS193P, Fall-2010 ...

2 tháng 3, 2017 · 9 phút · phantuanvi

Làm thế nào để trở thành iOS developer?

ℹ️ Bài này được mình dịch từ đây. Động lực cá nhân Tôi thường xuyên nhận được nhiều email và message. ...

20 tháng 2, 2017 · 11 phút · phantuanvi

Tư duy trong ngôn ngữ Swift, Phần 4: map all the things!

ℹ️ Bài này được mình dịch từ đây: alisoftware.github.io Bài này là 1 phần của series. Bạn có thể đọc các phần còn lại ở đây: phần 1, phần 1 bổ sung, phần 2, phần 3, phần 4 Array vs. Optional Ở phần trước, chúng ta đã học được function map() và flatmap() trên Array<T>: ...

16 tháng 2, 2017 · 6 phút · phantuanvi

Tư duy trong ngôn ngữ Swift, Phần 3: Struct vs. Class

ℹ️ Bài này được mình dịch từ đây: alisoftware.github.io Bài này là 1 phần của series. Bạn có thể đọc các phần còn lại ở đây: phần 1, phần 1 bổ sung, phần 2, phần 3, phần 4 Nhắc lại phần trước Trong phần 2, chúng ta đã biết cách sử dụng map và flatMap trên array để tránh các biến trung gian khi biến đổi và thay vào đó chúng ta đã sử dụng functional programming. [1] ...

12 tháng 2, 2017 · 5 phút · phantuanvi

Tư duy trong ngôn ngữ Swift, Phần 2: map those arrays

ℹ️ Bài này được mình dịch từ đây: alisoftware.github.io Bài này là 1 phần của series. Bạn có thể đọc các phần còn lại ở đây: phần 1, phần 1 bổ sung, phần 2, phần 3, phần 4 Trong phần 1, ta đã biết cách làm thế nào để tránh force-unwrapping optionals, để giải cứu ponies 🐴 và tránh code bị crash. Trong phần 2 này, ta sẽ chỉnh sửa code để làm nó trở nên Swift-er hơn thông qua map() và flatMap(). ...

8 tháng 2, 2017 · 6 phút · phantuanvi

Tư duy trong ngôn ngữ Swift, Phần 1 bổ sung: Từ bỏ ponies

ℹ️ Bài này được dịch từ đây: alisoftware.github.io Bài này là 1 phần của series. Bạn có thể đọc các phần còn lại ở đây: phần 1, phần 1 bổ sung, phần 2, phần 3, phần 4 Đừng bao giờ giết một pony ? Trong bài viết lần trước, tôi kêu gọi các bạn không sử dụng !. Một số bạn có thể đã hiểu theo kiểu tiêu cực như là “không bao giờ sử dụng nó, đừng bao giờ”. Những gì tôi nói là trong thực tế “mỗi khi bạn thêm một ! chỉ vì trình biên dịch gợi ý, bạn đang giết chết một pony 🐴 “. Nhưng chắc chắn rằng 🐴 có thể tiếp tục sống nếu bạn thực sự biết những gì bạn đang làm. Đừng làm điều đó chỉ vì trình biên dịch đề nghị, hãy suy nghĩ thật kỹ. ...

6 tháng 2, 2017 · 4 phút · phantuanvi

Tư duy trong ngôn ngữ Swift, Phần 1: Giải cứu ponies

ℹ️ Bài này được mình dịch từ đây: alisoftware.github.io Bài này là 1 phần của series. Bạn có thể đọc các phần còn lại ở đây: phần 1, phần 1 bổ sung, phần 2, phần 3, phần 4 Tôi thấy rằng, những-người-mới-tìm-hiểu về Swift thường hay cố chuyển đổi code của họ từ ObjC sang Swift. Nhưng phần khó nhất để code trong Swift không phải là về cú pháp mà là cách bạn tư duy trong Swift, sử dụng những khái niệm mới trong Swift mà không có trong ObjC. ...

1 tháng 2, 2017 · 8 phút · phantuanvi