Trong các project về ios thì các bạn không thể bỏ qua được các thư viện thường dùng để giảm thiểu thời gian và công sức cho bạn khi giải quyết các vấn đề trong dự án của mình.
Sau đây mình xin giới thiệu về 20 thư viện mà mình biết và đã tiếp xúc.

Alamofire


Khi nói đến các thực hiện request về Networking thì ý nghĩ đầu tiên mình nhớ tới đó chính là Alamofire. Alamofire hỗ trợ tốt về kiến trúc REST và sử dụng JSON. Tuy nhiên để có thể design pattern sử dụng Alamofire hiệu quả và clean code thì cũng là cả 1 vấn đề. Mình được tiếp xúc ngay dự án thực tập là với thư viện này nên những hiểu biết về thư viện này vẫn rất còn hạn chế. Các bạn có thể tham khảo và thực hành qua các bài viết khác. Theo quan điểm cá nhân mình nghĩ đây là 1 thư viện về networking phổ biến nhất.

ObjectMapper

Nói đến Networking thì không thể không nhắc tới ObjectMapper. Thư viện này giúp bạn map dữ liệu từ dạng json được server trả về vào object rất thuận tiện và hiệu quả và dễ sử dụng. Ngoài ra mình cũng sử dụng 1 số thư viện khác như SwifyJson -> Thư viện này thì mình sử dụng trong sự án sử dụng Rxswift và Kz PropertyMapper trong 1 dự án sử dụng objective C. Mình mới code ios nên các thư viện thường do các cao nhân lựa chọn. Mình cũng chưa thực sự hiểu được tại sao lại sử dụng thư viện trong từng trường hợp. Thỉnh thoảng thoáng nghĩ “Mình thích thì mình dùng thôi”. Đó cũng là cơ hội để mình học tập và tìm hiểu.

Swift Lint


Đây là một thư viện phục vụ cho viện clean code của bạn. Thư viện qui định một số qui ước về cú pháp hay các practice program về code mà bạn nên tuân theo để code được đẹp hơn và dễ đọc hơn. Dễ maintain về sau. Và nó cũng là gây lên 1 lỗi ám ảnh nếu sử dụng thư viện quá muộn =))

Bộ đôi RxswiftRxCocoa

Nếu bạn muốn xây dựng 1 project theo Reactive programming thì 2 thư viện không thể thiếu này giúp bạn xây dựng một ứng dụng như vậy. Đây là 1 trường phái lập trình rất phổ biến hiện nay. Mình cũng mới tìm hiểu và sử dụng cuối năm 2017 đầu 2018 này thôi. Để code reactive bạn phải tìm hiểu và hiểu rõ rất nhiều khái niệm và phong cách code mới lại. Đôi khi chính điều đó làm bạn nản lòng. Cách học tốt nhất là phải vào dự án vừa thực hành vừa học hỏi cùng sự chỉ dạy của cao nhân thì việc code trở lên đơn giản hơn nhiều (Một thanh niên ngu muội phát biểu =)) )

Firebase


Như các bạn đã biết nếu bạn muốn lập trình một ứng dụng client – server thì bảo sẽ phải đảm đương 2 việc là lập trình cả front-end và back-end.Nếu bạn là một lập trình viện mobile thì bạn sẽ phải học thêm về viết back-end(server) như vậy sẽ tiêu tốn khá nhiêu thời gian của bạn.Để giảm thời gian code back-end tôi xin giới thiệu với bạn một công nghê của google mang tên Firebase. Firebase hỗ trợ bạn khá nhiều về phần back-end. Sau đây tôi sẽ phân tích vài ưu điểm và nhược điểm khi dung firebase.

Ưu điểm

Không tốn thời gian viết back-end
Tiết kiệm chi phí mua server
Thao tác với database real time (thời gian thực)
Có thể backup dữ liệu khi firebase có vấn đề

nhược điểm

Phục thuộc vào phía phát triển (google)
Không request data nhiều key được

Fabric

Một thư viện giúp bạn Log các lỗi về dự án của bạn ghi deploy để có thể kịp thời fix lỗi và kiếm soát dự án của mình. Thư viện này thì mình ít được sử dụng chỉ mới tiếp xúc ban đầu. Thư viện sẽ gửi cho bạn về chi tiết lỗi mắc phải khi người dùng app của bạn bị lỗi hay crash. Và đôi khi bạn biết là bị crash và phải tự tìm hiểu xem tại sao nó lại bị crash. Mệt óc phết đó. :v

GoogleAnalyticsRepro

Đây cũng là 2 thư viện giup bạn thu thập thói quen sử dụng của người dùng trong app của bạn. 2 thư viện này mình chỉ được tiếp xúc sơ qua nên cũng chưa hiểu biết nhiều nên mình cũng chỉ nêu ra cho mọi người biết và tìm hiểu.

JTAppleCalendar

Đây là một lib có tên khá thú vị thường được gọi là “Unofficial Swift Apple Calendar View”. JTAppleCalendar là một trong những widgets tốt nhất hiện nay. Cho phép bạn thiết kế những date cells đến khi nào bạn cảm thấy hài lòng, chọn được phạm vi ngày hiển thị và hơn thế nữa. Thư viện này đòi hỏi bạn phải có khả năng lập trình tốt nếu bạn nghĩ đến việc phát triển nó đến với người dùng.

Kết luận.

Trên đây cũng là 10 thư viện mình biết nên giới thiệu cho các bạn. Rất mong nó sẽ giúp ích cho các bạn trong project sắp tới. Có gì mong các bạn góp ý cùng thảo luận. Hay bạn biết thư viện nào hay ho có thể comment để mình có thể thêm vào. Xin cảm ơn.

Thanks for watching.