MỤC LỤC
Kotlin biên dịch tới JVM bytecode: giống như Java, Bytecode ở đây nghĩa là sau khi biên dịch code sẽ được chạy qua một máy ảo thay vì là bộ vi xử lý của máy tính. Sau khi chương trình Kotlin được convert thành bytecode, nó sẽ được tải qua network và thực thi bởi JVM(Java Virtual Machine). Kotlin có thể sử dụng toàn bộ những Framework và thư viện sẵn có của Java.
Điểm đặc biệt nhất về Kotlin là nó có thể dễ dàng kết hợp với Maven, Gradle và các hệ thống build khác. Kotlin là một ngôn ngữ rất dễ học, cú pháp rất trong sách và dễ hiểu. JetBrains cũng đã đính kèm tính năng tự động chuyển đổi Java thành Kotlin, qua đó tiết kiệm được rất nhiều thời gian cho lập trình viên.
Giống như Swift, thì Kotlin cũng là một ngôn ngữ an toàn, với cơ chế null- safety, sẽ không còn khái niệm NullPointerExceptions nữa.
Bên cạnh đó, Firebase còn được hiểu là một dịch vụ cơ sở dữ liệu hoạt động trên nền tảng đám mây cloud với hệ thống máy chủ mạnh mẽ của Google. Lập trình viên có thể dễ dàng lập trình ứng dụng bằng cách đơn giản hóa các thao tác với cơ sở dữ liệu sẵn có. Đây là một nền tảng có cấu trúc khá đơn giản chuyên cung cấp các API cần thiết để tích hợp tính năng trò chuyện vào các trang web.
Tuy nhiên, họ nhận ra rằng nền tảng này đang được sử dụng để truyền dữ liệu ứng dụng chứ không đơn giản là chat. Đến tháng 10 năm 2014, Firebase đã chính thức được Google mua lại và trở thành một ứng dụng đa năng trên nền tảng di động và website. Sau khi đăng ký tài khoản, bạn chỉ cần đăng nhập vào là đã có thể sử dụng các tính năng của Firebase.
Ngoài ra, Firebase có một kho backend với giao diện đa dạng, phong phú giúp bạn thoải mái lựa chọn. Sau khi đăng ký tài khoản, bạn chỉ cần đăng nhập vào là đã có thể sử dụng các tính năng của Firebase.
Nhờ đó mà lập trình viên tiết kiệm được thời gian phát triển và tiếp thị ứng dụng. View không nhận biết được tất cả các logic xảy ra bên ViewModel, điều này làm cho việc ViewModel có thể sử dụng lại. Khi sử dùng repository giữa ViewModel và Model, ViewModel chỉ biết cách tạo data request và repository sẽ quan tâm đến cách data sẽ được tìm gọi, cho dù đó là từ API hoặc local DB.
Vì chúng ta sử dụng ViewModel và LivaData để nhận biết vòng đời của Activity, nó sẽ dẫn đến ít crashes và memory leaks. Không giống như các observables khác, nó nhận thức được vòng đời, tức là nhận nhận thức được vòng đời của các components như là activity, fragment hay services. Điều này có nghĩa là nó chỉ cập nhật các component observers khi chúng ở trạng thái vòng đời hoạt động.
Là library hỗ trợ cho phép chúng ta liên kết với các thành phần UI của mình từ layout với data source trong ứng dụng của chúng ta bằng cách khai báo thay vì lập trình. Chúng ta định nghĩa toàn bộ XML trong thẻ <layout> </ layout>. Chúng ta dùng thẻ <variable></variable> để xác định các custom object mà sau đó có thể được sử dụng bên trong các layout views.
Sự kiện kích hoạt Người dùng có nhu cầu tìm kiếm một khách sạn ở khu vực nào đó Luồng chính 1. Sự kiện kích hoạt Người dùng có nhu cầu xem thông tin chi tiết của một khách sạn. Sự kiện kích hoạt Người dùng có nhu cầu tại tài khoản để sử dụng ứng dụng cho lần kế tiếp.
Điều kiện trước Điện thoại phải có kết nối mạng Người dùng phải có email. Sự kiện kích hoạt Người dùng có nhu cầu đăng nhập tài khoản Luồng chính 1. Điều kiện trước Điện thoại / máy tính phải có kết nối mạng Điều kiện sau Người dùng đăng nhập thành công vào tài khoản.
Người dùng chọn tab hóa đơn để xem lại danh sách các đơn đặt phòng. Sự kiện kích hoạt Người dùng có nhu cầu lưu lại các khách sạn yêu thích Luồng chính 1. Sự kiện kích hoạt Người dùng muốn xóa một khách sạn khỏi danh sách yêu thích.
Điều kiện trước Điện thoại phải có kết nối mạng Điều kiện sau Khách sạn được xóa khỏi danh sách. Sự kiện kích hoạt Người dùng muốn xem lại danh sách các khách sạn yêu thích.
3 Button Sign in Nhấn để đăng nhập vào ứng dụng bằng tài khoản đã có. 2 Màn hình chính Hiển thị danh sách tất cả các khách sạn hoặc các khách sạn có tên, địa chỉ trùng với chữ đã nhập ở Search box. 5 Button Favourite List Nhấn để đi đến màn hình Danh sách khách sạn yêu thích.
2 Màn hình chính Hiển thị danh sách tất cả các thông tin chi tiết về khách sạn, các nhận xét của người dùng khác về khách sạn. 1 Màn hình chính Hiển thị tất cả thông tin chi tiết của đơn đặt phòng và người đặt. 3 Item (Khách sạn) Nhấn vào khách sạn bất kỳ để đi đến màn hình Thông tin chi tiết của khách sạn đó.