Skip to content

Latest commit

 

History

History
333 lines (243 loc) · 6.03 KB

File metadata and controls

333 lines (243 loc) · 6.03 KB

Android coding conventions

1. Quy định về java

  • Viết hàm ngắn gọn

Cố gắng viết method ngắn và tập trung, điều đó giúp giảm thiểu việc sử dụng lại các đoạn code nhiều lần không cần thiết.

  • Giữ cho dòng code ngắn

Cố gắng viết mỗi dòng code ngắn lại trừ trường hợp nhập text hoặc url hoặc những dòng lệnh bắt buộc phải cùng trên 1 dòng

  • Các classes bắt đầu với chữ viết HOA
public class SomeClass {}
  • Hằng số tất cả phải viết HOA
public static final String GOOGLE_HOME_URL = "http://www.google.com";
  • Tất cả các thành phần khác đều bắt đầu bằng chữ cái viết thường

Biến toàn cục, biến cục bộ, tham số hàm, package name, hàm...

  • Sử dụng 1 chữ cái viết hoa cho từ viết tắt, không viết hoa tất cả

Yes

private void getUrl(){}

No

private void getURL(){}
  • Sử dụng JavaDoc khi mới bắt đầu

Đừng chờ đợi đến khi hoàn thành mà hãy viết ngay khi bắt đầu class hoặc một hàm.

  • Sử dụng document khắp nơi trong dự án
/**
 * GET [/api/v1/student] Get student from service
 *
 * @param context  application Context
 * @param listener callBack listener
 */;
public static void getStudent(@NonNull Context context,
                              @NonNull final ApiClient.OnResponseListener<Student> listener) {}
  • Sử dụng document ở những nơi dùng public biến, hàm, biến toàn cục.

  • Giới hạn phạm vi của biến nhỏ nhất có thể

Các biến cần được khai báo trong khối sâu nhất có thể. Ví dụ: một biến chỉ dùng trong điều kiện thì nên khai báo nó trong khối điều kiện.

if (...) {
    double d = someCalculation(…);
    doSomethingWith(d);
} else {
    // No use of d
}

-No

double d = 0;
if (…){…}else{…}
  • Luôn dùng ngoặc nhọn cho khối điều kiện if ngay cả khi chỉ có một dòng lệnh

-Yes

if (…) {
    doSomething();
}

-No

if (…)
    doSomething();

-Nếu trường hợp quá đặc biệt nếu muốn sử dụng thì tất cả phải đặt trên một dòng(Không khuyến khích điều này)

if (…) doSomething();
  • Sử dụng //TODO cho những nơi cần sửa đổi, bổ sung sau này

Ví dụ:

//TODO Remove after api finish

Trong android studio có thể mở lên cửa sổ danh sách các todo chưa làm, thói quen này giúp cho lập trình viên không bỏ sót các chức năng chưa hoàn thành.

  • Sử dụng dấu mở ngoặc nhọn { trên cùng dòng mệnh đề, không nằm riêng một dòng

-Yes

public void foo() {
    if (...) {
        doSomething();
    }
}

-No

public void foo()
{
    if (...)
    {
        doSomething();
    }
}
  • Sử dụng 4 khoảng trắng cho bắt đầu một khối code

-Yes

public void foo() {
    if (...) {
        doSomething();
    }
}

-No

public void foo() {
  if (...) {
      doSomething();
    }
}

• Sử dụng 8 khoảng trắng khi nhảy dòng -Yes

String s =
        somethingVeryLong(…);

-No

String s =
    somethingVeryLong(…);
  • Sử dụng “m” đứng đầu cho biến non-public và non-static

-Yes

private String mFirstName;
private boolean mIsMarried;

-No

private String firstName;
private boolean isMarried;
  • Đặt 's' đứng đầu cho biến static(non-final)

-Yes

private static double sBiggestRadius;

-No

private static double biggestRadius;
  • Tránh sử dụng khối catch rỗng

Thường xuyên nhưng không phải luôn luôn. -Yes

try {
    …
} catch(SomeException se) {
    doSomethingReal();
}

-No

try {
    …
} catch(SomeException se) { }
  • Đừng catch exception chung

-Yes

try {
    …
} catch(ExceptionType1 et1) {
    …
} catch(ExceptionType2 et2) {
    …
}

-No

try {
    …
} catch(Exception e) {
    …
}

2. Quy ước XML

  • Đặt tên views ID theo camel-case

ví dụ: btnLogin, tvCaption

  • Các prefix cho id trong XML
Button - btnEditText - edtTextView - tvCheckbox - chkRadioButton - rbToggleButton - tbSpinner - spnMenu - mnuListView - lvGalleryView - gvLinearLayout -llRelativeLayoutrlCalendar ==> calendarDatepicker => datePickerTimepicker => timePickerVideoview=> videoViewSeekbar==> seekBarRatingBar==> ratingBarProcessbar => processBarImageView,==> imgImageButton=> imgBtnLayout parent => containerLayoutChild ==> ll,rl,frRecycleView =>recycleViewCardView =>cardViewScrollView => scrollView
  • Đơn vị của chữ tùy theo yêu cầu của khách hàng mà dùng để sp hay dp
  • Cách đặt tên cho file XML
Item cho list view: item_list_*
•   Item cho grid view: item_grid_*
•   Custom cho view: custom_*
•   Custom cho dialog: dialog_*

Ví dụ:

@+id/tvSubjectQuestions
@+id/ivTakeCamera
  • Đặt tên resource string, color, dimen

Yes

<string name="network_error">Network error</string>
<string name="call_failed">Call failed</string>
<string name="map_failed">Map loading failed</string>
  • Đặt tên cho hình ảnh sử dụng:
o   icon: ic_*
o   background: bg_*
o   Image: img_*
  • 1 số quy ước đặt tên khác:
o   ArrayList: thêm s vào cuối từ ví dụ như: mStudents
o   Tên model: rõ ràng ví dụ như: Student, Teacher
o   Activity Name: *Activity ví dụ: UserActivity
o   Fragment Name: *Fragment ví dụ: HomeFragment
o   Adapter: *Adapter ví dụ PageAdapter