Tải bản đầy đủ (.pdf) (16 trang)

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

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.12 MB, 16 trang )

<span class="text_page_counter">Trang 1</span><div class="page_container" data-page="1">

<b>TỔNG LIÊN ĐOÀN LAO ĐỘNG VIỆT NAM TRƯỜNG ĐẠI HỌC TÔN ĐỨC THẮNG </b>

<b>KHOA CÔNG NGHỆ THƠNG TIN </b>

<b>BÁO CÁO GIỮA KÌ</b>

<b>TÌM HIỂU VỀ </b>

<b>VIEW BINDING VÀ DATA BINDING</b>

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

<b>HUỲNH HUỲNH ĐỨC – 52000197NGUYỄN THANH QUÍ – 52000511Lớp : 20050301Khoá : 24THÀNH PHỐ HỒ CHÍ MINH, NĂM 2022</b>

</div><span class="text_page_counter">Trang 2</span><div class="page_container" data-page="2">

<b>TỔNG LIÊN ĐOÀN LAO ĐỘNG VIỆT NAM TRƯỜNG ĐẠI HỌC TÔN ĐỨC THẮNG </b>

<b>KHOA CƠNG NGHỆ THƠNG TIN </b>

<b>BÁO CÁO GIỮA KÌ</b>

<b>TÌM HIỂU VỀ </b>

<b>VIEW BINDING VÀ DATA BINDING</b>

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

<b>HUỲNH HUỲNH ĐỨC – 52000197NGUYỄN THANH QUÍ – 52000511Lớp : 20050301Khoá : 24THÀNH PHỐ HỒ CHÍ MINH, NĂM 2022</b>

<b>LỜI CẢM ƠN</b>

</div><span class="text_page_counter">Trang 3</span><div class="page_container" data-page="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ứctrên lớp và hổ trợ chúng em trong q trình hồn thành bài báo cáo giữa kỳ một cáchtốt nhất có thể ạ.

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

</div><span class="text_page_counter">Trang 4</span><div class="page_container" data-page="4">

<b>CƠNG TRÌNH ĐƯỢC HỒN THÀNHTẠI TRƯỜNG ĐẠI HỌC TƠN ĐỨC THẮNG</b>

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ướngdẫ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àinà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ệutrong 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.

Ngồ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ệucủ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.

<b>Nếu phát hiện có bất kỳ sự gian lận nào tơi xin hồn tồn chịu trách nhiệmvề 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</b>

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

<i>TP. Hồ Chí Minh, ngày 12 tháng 12 năm Tác giả</i>

<i>(ký tên và ghi rõ họ tên)</i>

<i>Nguyễn Phúc Bảo Danh</i>

<i>Huỳnh Huỳnh Đức</i>

<i>Nguyễn Thanh Q</i>

</div><span class="text_page_counter">Trang 5</span><div class="page_container" data-page="5">

<b>TĨM TẮT</b>

Đâ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ứuvề đề tài này.

</div><span class="text_page_counter">Trang 6</span><div class="page_container" data-page="6">

<b>MỤC LỤC</b>

<b>CHƯƠNG 1 – VIEW BINDING...2</b>

<b>1.1Khái niệm của view binding...2</b>

<b>1.2Các tính năng liên kết trong Android Studio...2</b>

<b>1.3Sử dụng View Binding an toàn...3</b>

<b>1.4Các bước thực hiện...3</b>

<b>CHƯƠNG 2 – DATA BINDING...5</b>

<b>2.1Khái niệm của Data Binding...5</b>

<b>2.2Để sử dụng Data Binding cần những gì?...5</b>

<b>2.3Android Studio hổ trợ Data Binding những gì?...5</b>

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

<b>TÀI LIỆU THAM KHẢO...9</b>

</div><span class="text_page_counter">Trang 7</span><div class="page_container" data-page="7">

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

<b>DANH MỤC HÌ</b>

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

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

</div><span class="text_page_counter">Trang 8</span><div class="page_container" data-page="8">

<b>CHƯƠNG 1 – VIEW BINDING</b>

<b>1.1 Khái niệm của view binding</b>

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 BindingView 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ó ln an tồn. Trong bài viết chitiế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)

</div><span class="text_page_counter">Trang 9</span><div class="page_container" data-page="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.

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

<b>- ViewBinding ln null safe và type-safe, hỗ trợ cả Java và Kotlin.</b>

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

Android Studio 4.0, chỉ có gradle 3.6).

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

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

tn 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ộttệp bố cục. Ưu tiên đặt tên tệp bố cục trong snake case. Ví dụ: ViewBinding tạotệp activity_main.xml (snake case) dưới dạng ActivityMainBinding (pascalcase), 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ó trongbố cục đó.

<b>- 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,</b>

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ã.

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

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

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

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

<b>1.3 Sử dụng View Binding an tồn</b>

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

</div><span class="text_page_counter">Trang 10</span><div class="page_container" data-page="10">

An tồ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ệ. Ngồ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.

</div><span class="text_page_counter">Trang 11</span><div class="page_container" data-page="11">

<b>CHƯƠNG 2 – DATA BINDING</b>

<b>2.1 Khái niệm của Data Binding</b>

Data Binding là một thư viện được tích hợp trong Android Jetpack. Nó cho phépliê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ễ UnitTest 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ềutrong các kiến trúc ứng dụng MVP, MVVM…

</div><span class="text_page_counter">Trang 12</span><div class="page_container" data-page="12">

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

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.

<b>2.3 Android Studio hổ trợ Data Binding những gì?</b>

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 SyntaxReferences, bao gồm cả navigationHỗ 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.

</div><span class="text_page_counter">Trang 13</span><div class="page_container" data-page="13">

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

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àngbuộ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ứcnăng bổ sung như ràng buộc 2way và sử dụng các biến trong XMLtệp.

<b>- Sự khác nhau giữa ViewBinding và DataBinding</b>

</div><span class="text_page_counter">Trang 14</span><div class="page_container" data-page="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ịchthì 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 trongmã. Mặc dù Data Binding cung cấp thêm một số tùy chọn như BindingExpressions, 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áckhung 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 DataBinding, đâ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.

</div><span class="text_page_counter">Trang 15</span><div class="page_container" data-page="15">

<b>TÀI LIỆU THAM KHẢO</b>

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

<i>trong android. </i>findviewbyid-trong-android-aWj53DwPK6m

<small>a/p/su-dung-view-binding-thay-the-cho-2.</small> <i>View Binding. </i> <i>Sơn Dương, Sử dụng Data Binding trong Android hiệu quả. </i>

<small>4.</small> <i>Wanja Mike (2021), How to use View Binding in Android. </i>

class="text_page_counter">Trang 16</span><div class="page_container" data-page="16">

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

<i>ViewBinding. </i>va-viewbinding-60bc9903d24b80926dbd18a8

</div>

×