Bài đăng

Đang hiển thị bài đăng từ Tháng 6, 2021

Các link trong quá trình học

1. Kotlin https://github.com/googlecodelabs/tools   https://proandroiddev.com/   https://developer.android.com/courses/andro https://medium.com/androiddevelopers   id-basics-kotlin/course   2. UI https://material.io/design   https://uigradients.com/#MasterCard   https://material.io/resources/color/#!/?view.left=0&view.right=0   https://www.uplabs.com/ui-kits/android 3. Navigation https://developer.android.com/guide/navigation/navigation-navigate 4.Lưu data https://developer.android.com/training/data-storage/shared-preferences 5.API https://github.com/public-apis/public-api 6. Auto scroll RecyclerView https://github.com/public-apis/public-apis

Callback In Kotlin

Hình ảnh
1. Khái niệm về callback Trong lập trình máy tính, callback là khi ta truyền một đoạn code (một hàm A) vào hàm B như một tham số đầu vào. Hàm A sẽ được gọi bên trong hàm B.     Có 2 loại callback là: Đồng bộ: được gọi trước khi hàm trả về. Thường không được dùng cho việc đồng bộ dữ liệu giữa các thread. Bất đồng bộ: có thể được gọi sau khi hàm trả về. Thường được sử dụng trong các thao tác vào ra hoặc trong các sự kiện. và được gọi bằng lệnh ngắt hoặc từ các thread. Các ngôn ngữ lập trình khác nhau sẽ hỗ trợ callback theo các cách khác nhau. Trong Kotlin hỗ trợ callback bằng cách sử dụng interface hoặc lambda function. Ở bài viết này mình sẽ dùng lambda function (thường sẽ dùng lambda để tiết kiệm code và dễ hiểu). 2. Callback trong Kotlin Như đã nói trên mình sẽ chủ yếu sử dụng lambda để thực thi callback trong Kotlin vì vậy để thực sự hiểu bài này các bạn cần tìm hiểu về lambda function.  Dưới đây là 1 ví dụ mình dùng callback đơn giản chỉ là print 1 số. Mình khai báo 1...

Class and Data Class in Kotlin

Hình ảnh
I. CLASS Khai báo: Giống như trong Java, class trong Kotlin được khai báo với từ khóa class. Ví dụ về khai báo lớp nhân viên:   Hàm khởi tạo: Như các bạn đã biết, hàm khởi tạo (constructor) dùng để khởi tạo giá trị cho các thuộc tính khi tạo 1 thể hiện của một lớp. Và một lớp không nhất thiết phải có hàm khởi tạo.   Một class trong Kotlin có thể chứa một hàm khởi tạo chính (primary constructor) , một hoặc nhiều hàm khởi tạo thứ cấp (secondary constructor) Cú pháp khai báo hàm khởi tạo chính: Cú pháp khai báo hàm khởi tạo thứ cấp: Để khai báo ta dùng từ khóa constructor Với khai báo như trên thì class NhanVien có 2 hàm khởi tạo. Một hàm khởi tạo có 2 tham số và một hàm khởi tạo không có tham số. Và đoạn code this("","") với mục đích gọi hàm khởi tạo chính. Đây là xử lí bắt buộc. Thuộc tính: Có 2 cách để khai báo thuộc tính với Kotlin, một là khai báo sử dụng hàm khởi tạo chính, hai là khai báo theo cú pháp sau: Trong đó từ khóa lateinit để xác định thuộc tính sẽ đư...

Nested and Inner Class in Kotlin

Hình ảnh
I. Nested Class Trong Kotlin, một Class có thể nằm trong một class khác, đó gọi là Nested Class Để truy cập vào các phương thức hoặc thuộc tính của Nested Class, bạn cần gọi theo cú pháp ClassA.ClassNested().fun trong đó ClassA là tên class chứa, ClassNested là tên class nằm trong và fun là tên phương thức hoặc thuộc tính của class nằm trong Bạn cũng có thể cho Interface nằm trong Class, Class nằm trong Interface hoặc Interface nằm trong Interface II. Inner Class Một class bao chứa một class khác bên trong có thể truy cập được đến các phương thức hoặc thuộc tính của class nằm trong nó, tuy nhiên điều ngược lại không xảy ra. Vì vậy, để class nằm trong có thể sử dụng các thuộc tính riêng của class bao chứa nó, chúng ta phải sử dụng từ khóa inner   trước tên của class nằm bên trong III. Những lý do cho việc sử dụng Nested Class Những lý do cho việc sử dụng nested classes bao gồm: Nhóm các class chỉ được sử dụng ở một chỗ lại với nhau một cách hợp lý  : Nếu một class chỉ dùn...

Enum Class in Kotlin

Hình ảnh
1. Khái niệm Enum class hiểu đơn giản như 1 class tự định nghĩa các object của mình bên trong nó 2. Cách khai báo Cách 1: Không có Constructor Giữa các Object có dấu ',' (phẩy) , giữa các Object và các thuộc tính, phương thức có dấu ';' (chấm phẩy)      Ta có thể hiểu Red và Blue là các Object của Class Color. Mọi Object đều có thể thực hiện hàm draw(), ở đây vì mình để draw là abstract function nên tất cả Object bắt buộc phải Override lại, ngoài ra có thể dùng function có body thông thường. Cách 2: Có Constructor Có thể hiểu với mỗi Color đều được tạo thành từ 3 thuộc tính trong Constructor (Red - Green - Blue)   3. Cách sử dụng Enum Class có thể được gọi tới như 1 ArrayList và cũng có thể truy cập Object tại vị trí, kiểm tra size,... Có thể truy cập tới các Object của Enum Class bằng 2 cách Cách 1: enumValues<Tên Enum Class>()[Thứ tự của Object] Cách 2: <Tên Enum Class>.valueOf("Tên Object") Khi muốn gọi tới Object bạn biết rõ thứ tự trong Enum C...

Scope Function In Kotlin

Hình ảnh
I.   Khái niệm Là function được thực thi trong một khối code bên trong phạm vi ngữ cảnh (context) của một Object. Giúp việc quản lý dễ dàng, dễ hiểu hơn. Giúp cho code trở nên dễ đọc và tương đồng với ngôn ngữ tự nhiên hơn. Gồm 5 hàm let , also, run, apply , with. Context của Object có thể là this hoặc it. II.  Những điểm khác biệt: Giá trị trả về: Trả về chính Object được tham chiếu đến : apply, also. Trả về một lambda result : let, run, with . Context Object This: run, with, apply It: let, also                                    III.   Các Scope Function A.   Let() Khái niệm: Là một hàm phạm vi (scoping function): Sử dụng nó khi bạn muốn định nghĩa một biến trong một phạm vi cụ thể trong đoạn code. Nó cực kì hữu dụng giúp cho đoạn code "tự đóng gói" vì thế bạn sẽ không lo những biến này bị "leak" ra ngoài. let() được sử dụng khá nhiều trong trường...

Form

1. Khái niệm 2. Cách khai báo 3. Các trường hợp thường áp dụng 4. Mở rộng