Detect Network với thư viện Alamofire v4

24

IDE Academy gửi đến các bạn bài hướng dẫn “Detect Network với Alamofire”. Với bài hướng dẫn này, chúng ta có thể sử dụng thư viện Alamofire (v4) để kiểm tra ứng dụng có đang kết nối internet hay không.

Alamofire là một thư viện rất nổi tiếng trong cộng đồng lập trình iOS, nó được sử dụng đa số là để kết nối tới API, request data từ server…Tuy nhiên có một chức năng rất hay mà thường người ta không để ý tới đó chính là Network Reachability, kiểm tra được ứng dụng có đang kết nối mạng hay không?

Để sử dụng được Alamofire, việc đầu tiên hãy tạo 1 project Xcode mới.

Để cài đặt được Alamofire vào project đã tạo, chúng ta sẽ cài đặt thông qua 1 công cụ có tên là CocoaPods, mở Terminal lên và gõ lệnh gem install cocoapods để cài đặt CocoaPods.

Sau đó, ở terminal chúng ta sẽ chuyển đường dẫn tới thư mục chứa project của chúng ta bằng lệnh cdvà nhấn enter:

Screen Shot 2016-11-11 at 14.11.58

Tại đây, chúng ta sẽ tiến hành cài đặt Alamofire cho project của mình, việc đầu tiên, tạo 1 Podfile bằng lệnh pod init, sau đó mở Podfile lên (Podfile sau khi đã tạo sẽ được thêm vào trong thư mục chứa Project, các bạn có thể mở với TextEdit hoặc bất kỳ trình editor nào) và cấu hình như thế này:

Tắt Podfile đi, quay về terminal, cũng đứng ở đường dẫn tới thư mục Project, chúng ta chạy lệnh pod install để cài đặt Alamofire.

Sau khi cài đặt xong, chúng ta thoát Terminal và Xcode, bây giờ trong thư mục chứa Project sẽ có 1 file có đuôi là .xcworkspace. Khi sử dụng các thư viện được cài đặt bằng CocoaPods, chúng ta sẽ làm việc với file này, mở file này lên và chúng ta tiến hành viết code.

Vào file Appdelegate.swift, chúng ta thêm thư viện Alamofire bằng câu lệnh:

Sau đó, trong class Appdelegate() chúng ta sẽ khai báo 1 biến tên là manager có giá trị là:

host ở đây là 1 tên miền mà tuỳ ý các bạn đặt theo từng project, ví dụ trong bài này sẽ là www.apple.com, điều này là cần thiết để Alamofire có thể dựa trên 1 host nào đó để kiểm tra kết nối network.

Tiếp theo, trong method application(didFinishLaunchingWithOptions:) thêm những dòng code sau:

Biến manager sẽ bắt đầu kiểm tra network thông qua method startListening(), đoạn code trước đó sẽ trả về kết quả thông qua status và chúng ta sử dụng switch...case để kiểm tra các trạng thái của status như các bạn thấy ở trên. Với case .notReachable nghĩa là app của chúng ta không thể kết nối internet, case .reachable nghĩa là app đã có thể kết nối internet.

Ngoài ra, các bạn có thể xem thêm thông tin trên Github.

Lương Nhật Lâm © – IDE Academy