12/08/2018, 16:54

Top 10 thư viện được sử dụng phổ biến nhất trong lập trình iOS

Trong quá trình phát triển ứng dụng, hầu như chúng ta ai cũng sử dụng nhiều loại thư viện khác nhau để xử lý các nhiệm vụ khác nhau trong ứng dụng. Tất nhiên là cũng có một vài thanh niên tay to ngồi code hết các chức năng mà không sử dụng thư viện nào cả, nhưng việc làm như vậy sẽ làm ảnh hưởng ...

Trong quá trình phát triển ứng dụng, hầu như chúng ta ai cũng sử dụng nhiều loại thư viện khác nhau để xử lý các nhiệm vụ khác nhau trong ứng dụng. Tất nhiên là cũng có một vài thanh niên tay to ngồi code hết các chức năng mà không sử dụng thư viện nào cả, nhưng việc làm như vậy sẽ làm ảnh hưởng đến:

  • Tiến độ của dự án: dành nhiều thời gian ngồi viết rất nhiều dòng code chỉ để thực hiện nhiệm vụ mà nếu dùng thư viện chúng ta chỉ mất vài dòng code
  • Chất lượng của dự án: những dòng code chúng ta thêm vào chắc gì chạy đã không có bug, so sánh với các thư viện phổ biến được sử dụng bởi hàng nghìn lập trình viên khác, chắc chắn là các thư viện này đã được test bởi hàng nghìn người sử dụng trước ta rồi

Nhờ những ưu điểm của thư viện, nên việc sử dụng thư viện trong quá trình viết ứng dụng là rất phổ biến. Trong bài viết này, tôi xin giới thiệu top 10 thư viện phổ biến nhất cho lập trình viên iOS. Việc xếp hạng top 10 thư viện này được lấy ra từ kết quả thống kê của CocoaPods, một trình quản lý thư viện rất phổ biến.

Sau đây tôi xin giới thiệu lần lượt 10 thư viện phổ biến nhất trong lập trình iOS

1. AFNetworking

AFNetworking là thư viện được viết bằng ngôn ngữ Objective-C cho iOS, macOS và tvOS. Nó giúp chúng ta xử lý các tác vụ liên quán đến mạng, từ các tác vụ cơ bản nhất như get, post, download,… đến các tác vụ nâng cao như Network Reachability, SSL Pinning,… AFNetworking là một trong những thư viện phổ biến nhất mọi thời đại của iOS với hơn 50 triệu lượt download

Các bạn có thể tìm hiểu về AFNetworking tại đây: https://github.com/AFNetworking/AFNetworking

2. SDWebImage

SDWebImage là thư viện quản lý việc tải hình ảnh một cách không đồng bộ với bộ nhớ đệm. Với việc sử dụng SDWebImage, việc download ảnh từ server và hiển thị lên UIImageView chưa bao giờ dễ dàng hơn thế. Đối với các bạn đã từng tự viết code để download và hiển thị hình ảnh mà không dùng thư viện, các bạn mới thấy SDWebImage tuyệt vời như thế nào. Chúng ta chỉ cần viết một vài dòng code đơn giản, mọi công việc khó khăn cứ để SDWebImage lo.

Các bạn có thể tìm hiểu về SDWebImage tại đây: https://github.com/rs/SDWebImage

3. Alamofire

Alamofire là phiên bản kế nhiệm của AFNetworking được viết bằng ngôn ngữ Swift. Cả Alamofire và AFNetworking đều có những tính năng như nhau, thực hiện được các công việc như nhau. Điểm khác biệt ở đây là AFNetworking được viết bằng Objective-C còn Alamofire được viết bằng Swift. Theo quan điểm cá nhân của tôi, Alamofire dễ sử dụng hơn, code đơn giản và sáng sủa hơn. Tất nhiên, các bạn có thể sử dụng thư viện nào các bạn thấy phù hợp, vì cả Alamofire và AFNetworking đều thực hiện được các chức năng tương đương nhau

Các bạn có thể tìm hiểu về Alamofire tại đây: https://github.com/Alamofire/Alamofire

4. MBProgressHUD

MBProgressHUD là một thư viện tuyệt vời để hiển thị heads-up display(HUD) trên iOS. Sử dụng MBProgressHUD, chúng ta có thể hiển thị HUB với nhiều kiểu hiển thị rất đa dạng, từ spinner, text, image, hiển thị các HUD thể hiện các trạng thái loading, progress, success/failure, hiển thị các alert,… Tại thời điểm hiện tại, số lượng các HUD trên iOS vẫn còn rất hạn chế, vì vậy MBProgressHUD vẫn là một thư viện cực kỳ hữu ích

Các bạn có thể tìm hiểu về MBProgressHUD tại đây: https://github.com/jdg/MBProgressHUD

5. Masonry

Masonry là thư viện giúp chúng ta đỡ vất vả hơn khi phải thêm các constraint của Autolayout. Như chúng ta đều biết, việc thêm các constraint một cách thủ công trong code khá là vất vả, chúng ta phải thêm khá nhiều code để có được các constraint chúng ta muốn. Bằng việc sử dụng Masonry, các bạn có thể thêm các constraint một cách đơn giản hơn, ngắn gọn hơn và dễ đọc hơn.

Các bạn có thể tìm hiểu về Masonry tại đây: https://github.com/SnapKit/Masonry

6. SwiftyJSON

Khi làm việc với JSON, thường gặp trong các tác vụ về mạng, sẽ có nhiều lần các bạn phải rất vất vả để phân tách JSON. Việc khó khăn nhất khi phân tách JSON thường là việc cast type, đôi khi các bạn sẽ phải viết rất nhiều câu lệnh if lồng nhau để có thể phân tách về dạng dữ liệu mình cần. SwiftyJSON giúp chúng ta phân tách JSON một cách nhẹ nhàng hơn, đơn giản hơn, và code dễ đọc hơn, không còn những đoạn code chồng chéo, lồng nhau nữa.

Các bạn có thể tìm hiểu về SwiftyJSON tại đây: https://github.com/SwiftyJSON/SwiftyJSON

7. SVProgressHUD

Cũng tương tự như MBProgressHUD, SVProgressHUD là thư viện giúp chúng ta hiển thị các HUD. Nếu chỉ cần hiển thị các HUD đơn giản, thì điểm khác nhau giữa 2 thư viện là về mặt giao diện HUD của 2 thư viện có phần khác nhau, các bạn có thể tìm hiểu giao diện của cả 2 thư viện để quyết định lựa chọn thư viện nào phù hợp hơn với ứng dụng của mình. Ngoài ra SVProgressHUD tạo ra instance dạng singleton, vì vậy thư viện này có phần dễ sử dụng hơn MBProgressHUD

Các bạn có thể tìm hiểu về SVProgressHUD tại đây: https://github.com/SVProgressHUD/SVProgressHUD

8. MJRefresh

Chúng ta có thể dùng thư viện MJRefresh để thêm tính năng pull-to-refresh vào UITableView. Những lựa chọn cho UIRefreshControl thông thường của iOS tương đối là ít và không tuỳ biến được, vì vậy MJRefresh là một lựa chọn tuyệt vời khi chúng ta cần một pull-to-refresh control có thể tuỳ biến được, từ thêm text, thêm animation, thêm UIView,… Chúng ta còn có thể thêm chức năng pull-to-refresh của MJRefresh vào trong block hoặc closure, làm nó dễ sử dụng hơn UIActivityIndicatorView của iOS

Các bạn có thể tìm hiểu về MJRefresh tại đây: https://github.com/CoderMJLee/MJRefresh

9. CocoaLumberjack

Bạn đang cần một thư viện để lưu lại log của ứng dụng? vậy thì CocoaLumberjack đúng là thư viện bạn cần dùng trong tình huống này. CocoaLumberjack là một thư viện mạnh mẽ, được sử dụng để lưu lại log của ứng dụng. Chúng ta có thể lưu log từ xa (remote logging), lưu log vào file local, lưu log vào nhiều file, thậm chí là tái tạo một bug khó, hoặc nắm bắt tốt hơn về hành vi người dùng. Trong những trường hợp này, CocoaLumberjack là một thư viện rất thích hợp.

Các bạn có thể tìm hiểu về CocoaLumberjack tại đây: https://github.com/CocoaLumberjack/CocoaLumberjack

10. Realm

Realm là một thư viện làm việc với database, chúng ta sử dụng Realm để thay thế cho Core Data. Realm dễ sử dụng hơn Core Data, nhanh hơn Core Data, hơn nữa Realm còn có một trình duyệt quản lý các file database trực quan (Core Data không hề có trình duyệt quản lý, chúng ta sẽ rất khó khăn để kiểm tra database của Core data). Hiện tại, trong phiên bản mới nhất, Realm đã tung ra một nền tảng để đồng bộ dữ liệu giữa các ứng dụng theo thời gian thực (real-time). Với tất cả các tính năng tuyệt vời trên, Realm là một sự lựa chọn tuyệt vời để thay thế cho Core Data trong phát triển ứng dụng trên iOS

Các bạn có thể tìm hiểu về Realm tại đây: https://github.com/realm/realm-cocoa

Trên đây, tôi đã giới thiệu đến các bạn danh sách top 10 thư viện phổ biến nhất, được nhiều lập trình viên sử dụng nhất trên CocoaPods. Các thư viện bên trên đều là các thư viện rất tiện lợi, hữu ích cho chúng ta trong quá trình phát triển ứng dụng.

Cuối cùng, tôi xin kết thúc bài viết này tại đây, chúc các bạn có một ngày làm việc vui vẻ. Have a nice day ^_^!

0