12/08/2018, 14:08

IOS App Performance Tips & Tricks - Part 1

Phần 1. Những tips mà bạn sẽ luôn sử dụng trong ứng dụng IOS của mình. Sử dụng ARC để quản lí bộ nhớ. ARC được phát hành từ IOS 5 và nó giúp loại bỏ 1 số lỗi phổ biến về Memory leak. ARC là viết tắt của "Automatic Reference Counting" nó tự động quản lý retain/release cycles. vì vậy bạn sẽ ...

Phần 1. Những tips mà bạn sẽ luôn sử dụng trong ứng dụng IOS của mình.

  1. Sử dụng ARC để quản lí bộ nhớ.

ARC được phát hành từ IOS 5 và nó giúp loại bỏ 1 số lỗi phổ biến về Memory leak. ARC là viết tắt của "Automatic Reference Counting" nó tự động quản lý retain/release cycles. vì vậy bạn sẽ không phải giải phóng bằng tay nữa.

Chúng ta sẽ thường gặp đoạn mã sau khi khởi tại 1 View mà không sử dụng ARC :

UIView *view = [[UIView alloc] init];
// ...
[self.view addSubview:view];
[view release];

Đôi khi bạn rất hay quên dòng lệnh release dẫn đến rò rỉ bộ nhớ. Khi sử dụng ARC nó sẽ tự động chèn cho bạn và sẽ không phải viết lệnh release nữa.

Ngoài việc giúp bạn tránh khỏi Memory leak, ARC còn cải thiện hiệu năng cho bạn bằng việc đảm bảo các đối tượng sẽ được deallocated ngay khi không cần cần thiết.Vì thế , từ giờ bạn nên sử dụng ARC cho mọi ứng dụng của bạn.

Lưu ý : ARC không hoàn toàn loại bỏ mọi vấn đề về Memory leak , bạn vẫn có thể bị memory leak ,thường thấy khi bạn dùng block , strong reference cycle....

Bạn có thể tham khảo tại link đây để khắc phục : http://conradstoll.com/blog/2013/1/19/blocks-operations-and-retain-cycles.html

  1. Sử dụng reuseIdentifier

1 sai lần phổ biến trong việc phát triển ứng dụng IOS là không được thiết lập đúng cho UITableViewCells, UICollectionViewCells, hay UITableViewHeaderFooterViews.

Để tối đa hiệu năng , một table view’€™s data source nên tái sử dụng các đối tượng UITableViewCell khi nó gán cells tới rows trong tableView:cellForRowAtIndexPath:. Một table view duy trì danh sách 1 hàng đợi hoặc danh sách các đối tượng UITableViewCell

Điều gì xảy ra nếu bạn không sử dụng reuseIdentifier ?

Nếu bạn không sử dụng , table view sẽ tạo và cấu hình 1 cell mới mỗi khi 1 row được hiển thị.Điều này là thao tác tốn kém chắc chắn sẽ ảnh hưởng đến việc cuộn qua lại ứng dụng của bạn.

Từ IOS 6 trở đi , Apple khuyên bạn sử dụng reuseIdentifiers cho header và footer views, UICollectionView’s cells and những view phụ.

Dưới đây sẽ là đoạn code sử dụng reuseIdentifiers trong table view

static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];

Phương thức này sẽ thoát khỏi hàng đợi nếu cell đó đã có sẵn , hoặc tạo một cell mới nếu cần sử dụng file nib hay class đã đăng ký trước đó . Nếu cell không có sẵn cho việc tái sử dử dụng và bạn không đăng ký class hay nib khi đó phương thức này sẽ trả về nil.

Trên đây là 2 tips mà mình muốn chia sẽ với các bạn cho việc phát triển ứng dụng IOS , Hẹn gặp lại các bạn trong phần tiếp theo nhé ❤️

0