Nền tảng lập trình ứng dụng Android ra đời đã khá lâu năm (khoảng 2007 – nay) nên có nhiều thư viện (library) bên thứ 3 cung cấp giúp cho việc thực hiện những công việc thông dụng trong lập trình app Android như xử lý giao diện, xử lý ảnh, xử lý kết nối internet HTTP, xử lý thao tác cử chỉ (gestures) v.v. trở nên dễ dàng hơn.
Do vậy, thay vì tự xây dựng các tính năng thông dụng cho ứng dụng Android như xử lý ảnh, kết nối internet hay đơn giản là hiển thị một hộp thoại (Dialog) thì chúng ta có thể sử dụng những thư viện mã nguồn mở đã cung cấp sẵn các tính năng này để giảm thiểu công sức cho việc lập trình mà vẫn thực hiện được chức năng của ứng dụng. Bài viết này sẽ giới thiệu với các bạn các thư viện thường dùng trong lập trình ứng dụng Android và hướng dẫn cách sử dụng các thư viện này. Mời các bạn cùng theo dõi nhé.
Thư viện hỗ trợ hiển thị giao diện – 1
Phong cách thiết kế Material Design được Google giới thiệu và khuyến cáo sử dụng từ phiên bản Android 5.0 (API 21) cho đến nay. Giao diện ứng dụng theo phong cách Material Design nhìn chung khá đẹp, nhưng cũng khá gây tốn công sức trong việc lập trình. Để xây dựng giao diện app Android theo phong cách Material Design thì chúng ta có thể sử dụng thư viện sau để giảm thiểu công sức lập trình, vì nó tập hợp sẵn nhiều thư viện cung cấp sẵn các thành phần giao diện như nút bấm (Button), danh sách (ListView), ô chọn (CheckBox) v.v. đã được thiết kế sẵn theo phong cách Material Design và chúng ta chỉ việc lấy chúng ra để sử dụng trong app mà thôi. Link github của thư viện:
https://github.com/wasabeef/awesome-android-ui
Thư viện hỗ trợ hiển thị giao diện – 2
Thiết kế giao diện app Android hiển thị tốt trên nhiều loại màn hình thiết bị là vấn đề quan trọng trong lập trình ứng dụng Android vì Android là hệ điều hành (HĐH) có phần cứng phân mảnh, có rất nhiều kích thước màn hình và độ phân giải màn hình thiết bị.
Yêu cầu là ứng dụng Android mà chúng ta lập trình cần phải hiển thị tốt trên tất cả (hay đa số) thiết bị có kích thước và độ phân giải màn hình khác nhau. Để làm được điều này, chúng ta có thể sử dụng một hoặc kết hợp một số kĩ thuật như: Sử dụng ConstraintLayout; Thiết kế layout linh hoạt, co giãn, chia phần, hạn chế đặt cứng chiều dài / chiều rộng View trong layout; Thiết kế nhiều file layout tương ứng với kích thước màn hình khác nhau v.v. Ngoài ra, chúng ta có thể sử dụng thư viện sau để hỗ trợ lập trình app hiển thị giao diện tốt trên đa số màn hình thiết bị:
Thư viện hỗ trợ xử lý các task thông dụng trong lập trình Android
Các task (công việc) thông dụng trong lập trình ứng dụng Android có thể kể đến như hiển thị một hộp thoại (Dialog), truy cập vào thông tin thiết bị như Lịch (Calendar), hiển thị một thông báo (Notification), cài đặt một hẹn giờ (Alarm) v.v. rất thường dùng. Để tiết kiệm công sức lập trình thì chúng ta có thể sử dụng một số thư viện cung cấp sẵn các tính năng cơ bản thông dụng này ví dụ như:
https://github.com/Blankj/AndroidUtilCode
Một số thư viện hỗ trợ thông dụng khác
Ngoài các thư viện trên, có thể kể đến các thư viện thông dụng hỗ trợ cho việc lập trình xử lý các thao tác cơ bản trong app Android ví dụ như hiển thị, xử lý ảnh (Glide, Picasso), xử lý kết nối internet HTTP (Retrofit), xử lý dữ liệu dạng JSON (Gson) v.v. Các bạn có thể tham khảo link github và hướng dẫn tích hợp các thư viện trên vào ứng dụng Android tại đây:
https://github.com/bumptech/glide
https://github.com/square/retrofit
https://github.com/google/gson
Tổng kết
Việc sử dụng các thư viện hỗ trợ xây dựng các công việc thông dụng giúp giảm thiểu công sức cho việc lập trình ứng dụng Android. Tuy nhiên, kể cả khi đã tích hợp và sử dụng các thư viện này thì chúng ta vẫn cần test (kiểm thử) lại các chức năng của ứng dụng một cách cẩn thận vì có thể thư viện vẫn gây lỗi trên một số thiết bị Android, đặc biệt là thiết bị Android chạy HĐH mới nếu như thư viện đó chưa hỗ trợ cập nhật phiên bản ổn định trên các thiết bị Android mới này.
Trên đây là tổng quan hướng dẫn sử dụng một số thư viện thường dùng trong lập trình ứng dụng Android. Các bạn quan tâm vấn đề này vui lòng để lại bình luận bên dưới để được trao đổi và giải đáp thêm nhé.