1. Trang chủ
  2. » Luận Văn - Báo Cáo

báo cáo giữa kì tìm hiểu về view binding và data binding

16 0 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 16
Dung lượng 1,12 MB

Nội dung

CHƯƠNG 1 – VIEW BINDING1.1 Khái niệm của view bindingViewBinding là một thành phần trong Android Jetpack, nó giúp ta xóa bỏ bước findViewBindID trong quá trình code bằng các tạo ra các c

Trang 1

TỔNG LIÊN ĐOÀN LAO ĐỘNG VIỆT NAM

TRƯỜNG ĐẠI HỌC TÔN ĐỨC THẮNG

KHOA CÔNG NGHỆ THÔNG TIN

BÁO CÁO GIỮA KÌ

TÌM HIỂU VỀ VIEW BINDING VÀ DATA BINDING

Người hướng dẫn: THẦY TRẦN ĐẠI NHÂN Người thực hiện: NGUYỄN PHÚC BẢO DANH – 52000193

HUỲNH HUỲNH ĐỨC – 52000197 NGUYỄN THANH QUÍ – 52000511

Lớp : 20050301 Khoá : 24 THÀNH PHỐ HỒ CHÍ MINH, NĂM 2022

Trang 2

TỔNG LIÊN ĐOÀN LAO ĐỘNG VIỆT NAM

TRƯỜNG ĐẠI HỌC TÔN ĐỨC THẮNG

KHOA CÔNG NGHỆ THÔNG TIN

BÁO CÁO GIỮA KÌ

TÌM HIỂU VỀ VIEW BINDING VÀ DATA BINDING

Người hướng dẫn: THẦY TRẦN ĐẠI NHÂN Người thực hiện: NGUYỄN PHÚC BẢO DANH – 52000193

HUỲNH HUỲNH ĐỨC – 52000197 NGUYỄN THANH QUÍ – 52000511

Lớp : 20050301 Khoá : 24 THÀNH PHỐ HỒ CHÍ MINH, NĂM 2022

LỜI CẢM ƠN

Trang 3

Chúng em xin chân thành cảm ơn thầy Trần Đại Nhân đã cung cấp đủ kiến thức trên lớp và hổ trợ chúng em trong quá trình hoàn thành bài báo cáo giữa kỳ một cách tốt nhất có thể ạ

Chúng em xin cảm ơn ạ!

Trang 4

CÔNG TRÌNH ĐƯỢC HOÀN THÀNH

TẠI TRƯỜNG ĐẠI HỌC TÔN ĐỨC THẮNG

Tôi xin cam đoan đây là công trình nghiên cứu của riêng tôi và được sự hướng dẫn khoa học của thầy Trần Đại Nhân; Các nội dung nghiên cứu, kết quả trong đề tài này là trung thực và chưa công bố dưới bất kỳ hình thức nào trước đây Những số liệu trong các bảng biểu phục vụ cho việc phân tích, nhận xét, đánh giá được chính tác giả thu thập từ các nguồn khác nhau có ghi rõ trong phần tài liệu tham khảo

Ngoài ra, trong luận văn còn sử dụng một số nhận xét, đánh giá cũng như số liệu của các tác giả khác, cơ quan tổ chức khác đều có trích dẫn và chú thích nguồn gốc

Nếu phát hiện có bất kỳ sự gian lận nào tôi xin hoàn toàn chịu trách nhiệm

về nội dung luận văn của mình Trường đại học Tôn Đức Thắng không liên quan đến

những vi phạm tác quyền, bản quyền do tôi gây ra trong quá trình thực hiện (nếu có)

TP Hồ Chí Minh, ngày 12 tháng 12 năm

Tác giả (ký tên và ghi rõ họ tên)

Nguyễn Phúc Bảo Danh

Huỳnh Huỳnh Đức

Nguyễn Thanh Quí

Trang 5

TÓM TẮT

Đây là báo cáo giữa kỳ Phát triển ứng dung di động với đề tài: “Tìm hiểu về View Binding và Data Binding” Bài báo cáo là nội dung được tìm hiểu qua nghiên cứu

về đề tài này

Trang 6

MỤC LỤC

CHƯƠNG 1 – VIEW BINDING 2

1.1 Khái niệm của view binding 2

1.2 Các tính năng liên kết trong Android Studio 2

1.3 Sử dụng View Binding an toàn 3

1.4 Các bước thực hiện 3

CHƯƠNG 2 – DATA BINDING 5

2.1 Khái niệm của Data Binding 5

2.2 Để sử dụng Data Binding cần những gì? 5

2.3 Android Studio hổ trợ Data Binding những gì? 5

CHƯƠNG 3 – SỰ KHÁC BIỆT GIỮA VIEW BINDING VÀ DATA BINDING 7

TÀI LIỆU THAM KHẢO 9

Trang 7

DANH MỤC CÁC BẢNG BIỂU, HÌNH VẼ, ĐỒ THỊ DANH MỤC HÌ

Hình 1 1: Khái niệm View Binding 3 Y

Hình 2 1: Khái niệm Data Bìnding 7 Hình 3 1: Minh hoạ ViewBinding và DataBinding 9

Trang 8

CHƯƠNG 1 – VIEW BINDING

1.1 Khái niệm của view binding

ViewBinding là một thành phần trong Android Jetpack, nó giúp ta xóa bỏ bước findViewBindID trong quá trình code bằng các tạo ra các class tương ứng với các file xml trong project

Hình 1 1: Khái niệm View Binding View binding có 1 vài điểm hay hơn so với findViewById:

+ Null safety: Vì view binding tạo tham chiếu trực tiếp tới view, do đó không có rủi ro như Null Pointer Exception khi invalid view ID

+ Type safety: Fileds trong mỗi class binding có những type matching view với tham chiếu trong file xml Do đó, không có rủi ro với class cast exception

Và tính năng quan trọng nhất về View Binding là nó luôn an toàn Trong bài viết chi tiết này, nó đã được cung cấp một cách chi tiết cho View Binding

- Kích hoạt view binding trong build.gradle (không phụ thuộc vào các thư viện được implement)

- View binding tạo ra các đối tượng liên kết cho mọi layout trong module của bạn (activity_awesome.xml → ActivityAwesomeBinding.java)

Trang 9

Đối tượng binding chứa một thuộc tính cho mọi View với một id trong layout -với chính xác từng kiểu và không bị null

- Hỗ trợ đầy đủ cho cả Java và Kotlin

1.2 Các tính năng liên kết trong Android Studio

- ViewBinding luôn null safe và type-safe, hỗ trợ cả Java và Kotlin.

- ViewBinding được giới thiệu trong Gradle phiên bản 3.6 trở lên (đi kèm với

Android Studio 4.0, chỉ có gradle 3.6)

- ViewBinding cũng giúp giảm mã soạn sẵn, do đó giảm dư thừa mã.

- Trong khi sử dụng các quy ước đặt tên thích hợp của ViewBinding, cần phải

tuân theo vì nó tạo ra lớp liên kết bên trong bằng cách sử dụng tên của cùng một tệp bố cục Ưu tiên đặt tên tệp bố cục trong snake case Ví dụ: ViewBinding tạo tệp activity_main.xml (snake case) dưới dạng ActivityMainBinding (pascal case), tệp này chứa tất cả thuộc tính và phiên bản của tất cả các views có trong

bố cục đó

- Và bất kỳ ID nào của tất cả các phần tử được tạo bên trong tệp XML bố cục,

ViewBinding sẽ chuyển đổi chúng thành camel case Ví dụ: android:id=”button_submit” -> buttonSubmit Điều này rất hữu ích trong khả năng đọc mã

- Sử dụng ViewBinding, quá trình biên dịch mã nhanh hơn một chút so với

phương thức findViewById() truyền thống

- Lớp ActivityMainBinding được tạo trong đường dẫn sau trong hệ thống phân

cấp dự án, điều này có thể được xem

1.3 Sử dụng View Binding an toàn

Xem ràng buộc có những lợi thế quan trọng hơn việc sử dụng findViewById:

Trang 10

An toàn không: Vì ràng buộc Views tạo tham chiếu trực tiếp đến Views nên không có nguy cơ ngoại lệ con trỏ null do ID Views không hợp lệ Ngoài ra, khi một dạng xem chỉ xuất hiện trong một số cấu hình của bố cục, thì trường chứa tham chiếu của nó trong lớp liên kết được đánh dấu bằng @Nullable

Loại an toàn: Các trường trong mỗi lớp liên kết có các loại phù hợp với dạng xem mà chúng tham chiếu trong tệp XML Điều này có nghĩa là không có nguy cơ xảy

ra ngoại lệ phân lớp

Những điểm khác biệt này có nghĩa là sự không tương thích giữa bố cục và mã của bạn sẽ dẫn đến việc bản dựng của bạn bị lỗi trong thời gian biên dịch thay vì trong thời gian chạy

1.4 Các bước thực hiện

Bước 1: Tạo một dự án hoạt động trống

Bước 2: Kích hoạt tính năng ViewBinding

Cần phải bật tính năng ViewBinding trong Android Studio 4.0 trở lên, bên trong tệp cấp độ bản dựng cấp ứng dụng

Gọi đoạn mã sau bên trong phần thân android{} của tệp gradle

Bước 3: Thao tác với file Activity_main.xml

Bước 4: Làm việc với tệp MainActivity

Trang 11

CHƯƠNG 2 – DATA BINDING

2.1 Khái niệm của Data Binding

Data Binding là một thư viện được tích hợp trong Android Jetpack Nó cho phép liên kết giữa dữ liệu logic với các UI Element( ví dụ như : TextView, EditText, ImageView…)

Điều này giúp các nhà phát triển lược bớt rất nhiều đoạn code liên kết kiểu như: findViewById() không cần thiết nữa Điều này sẽ giúp cho dự án của bạn sẽ dễ Unit Test hơn, khi lẽ ra phần liên kết UI không thuộc vào business của ứng dụng

Nhờ những ưu điểm của Data Binding mà Data Binding được sử dụng rất nhiều trong các kiến trúc ứng dụng MVP, MVVM…

Trang 12

Hình 2 1: Khái niệm Data Bìnding

2.2 Để sử dụng Data Binding cần những gì?

Chính vì Data Binding được tích hợp trong Android Jetpack nên khả năng tương thích ngược rất tốt Bạn có thể chạy Data Binding cho các thiết bị Android 4.0 trở lên

Về Android Plugin for Gradle, mình khuyến khích các bạn cứ bản mới nhất mà dùng Tuy nhiên, theo thông tin từ Google thì Data Binding hỗ trợ từ phiên bản 1.5.0 trở lên

Chốt lại, dưới đây là thông tin phiên bản tối thiểu hỗ trợ Data Binding:

Android Support Library > 15.0

Android M SDK 23.0

Android Studio 1.3 trở lên

2.3 Android Studio hổ trợ Data Binding những gì?

Có một số điểm hay ho là Android Studio hỗ trợ bạn code Data Binding khá tốt Một số tính năng mà Android Studio hỗ trợ như:

Hỗ trợ làm nổi bật Syntax

References, bao gồm cả navigation

Hỗ trợ gợi ý code XML

Đánh dấu lỗi cú pháp

Ngoài ra, bạn để ý Preview panel trong Layout Editor sẽ hiển thị giá trị mặc định data binding nếu được cung cấp

Trang 13

CHƯƠNG 3 – SỰ KHÁC BIỆT GIỮA VIEW BINDING VÀ DATA BINDING

Hình 3 1: Minh hoạ ViewBinding và DataBinding

ViewBinding là một loại tập hợp con của DataBinding các thư viện có nghĩa là ViewBinding và DataBidingcó thể thực hiện các công việc giống nhau về bố cục ràng buộc Và điều đó cũng có nghĩa là DataBinding, bạn có thể không cần ViewBindingvì

nó sẽ làm những gì ViewBindingđược cho là phải làm và cũng cung cấp một chút chức năng bổ sung như ràng buộc 2way và sử dụng các biến trong XMLtệp

- Sự khác nhau giữa ViewBinding và DataBinding

Trang 14

Thư viện View Binding nhanh hơn thư viện Data Binding vì nó không sử dụng bộ xử lý chú thích bên dưới và khi nói đến tốc độ thời gian biên dịch thì View Binding hiệu quả hơn

Chức năng duy nhất của View Binding là ràng buộc các khung nhìn trong

mã Mặc dù Data Binding cung cấp thêm một số tùy chọn như Binding Expressions, cho phép chúng ta viết các biểu thức, các biến kết nối với các khung nhìn trong layout

Thư viện Data Binding hoạt động với các đối tượng Dữ liệu quan sát được, bạn không phải lo lắng về việc làm mới giao diện người dùng khi dữ liệu cơ bản thay đổi

Thư viện data binding cung cấp cho chúng tôi Bộ điều hợp liên kết Thư viện Data Binding cung cấp cho chúng ta tính năng Two way Data Binding, đây là một kỹ thuật liên kết các đối tượng của bạn với bố cục xml,

để cả đối tượng và bố cục có thể gửi dữ liệu cho nhau

Trang 15

TÀI LIỆU THAM KHẢO

1. Nguyễn Khắc Bình (2020), Sử dụng ViewBinding thay thế cho findviewbyid()

trong android https://viblo.asia/p/su-dung-view-binding-thay-the-cho-findviewbyid-trong-android-aWj53DwPK6m

2. View Binding https://developer.android.com/topic/libraries/view-binding

3. Sơn Dương, Sử dụng Data Binding trong Android hiệu quả

https://vntalking.com/su-dung-data-binding-trong-android.html#:~:text=1.-,Data

%20Binding%20l%C3%A0%20g%C3%AC%3F,()%20kh%C3%B4ng%20c

4. Wanja Mike (2021), How to use View Binding in Android

https://www.section.io/engineering-education/view-binding-in-android/

Trang 16

5. Dương Ngọc Hạnh (2019), Android: Sự khác biệt giữa DataBinding và

ViewBinding https://helpex.vn/question/android-su-khac-biet-giua-databinding-va-viewbinding-60bc9903d24b80926dbd18a8

Ngày đăng: 08/05/2024, 16:25

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w