Cách tạo thư viện Android cho người khác dùng

Chào các bạn, có bao giờ bạn hỏi những thư viện của android trong dependencies mà các bạn dùng của người khác, họ tạo ra chúng như thế nào? Hôm nay mình sẽ hướng dẫn các bạn cách tạo thư viện android và công bố cho người khác dùng. Và tất nhiên tối thiểu thì bạn cũng có thư viện cho nhiều project của mình dùng chung, đỡ phải viết lại hoặc copy dẫn đến không đồng nhất thư viện giữa các project.

Tạo ứng dụng và thư viện

Đầu tiên các bạn tạo ra một Project Android như bình thường bằng Android Studio. Tiếp theo bạn vào chọn Menu File -> New -> New Module

Tại đây các bạn chọn Android Library.

Tiếp theo các bạn nhập các thông tin của thư viện vào (nó gần giống như 1 Project vậy). Ở đây mình demo về một thư viện hiển thị toast. Các bạn có thể tạo thư viên riêng tuỳ mục đích của mình

Các bạn click finish và đợi một chút cho project load module mới của chúng ta. Sau khi load xong các bạn sẽ thấy trong chế độ xem Android, chúng ta có 1 folder ngang hàng folder app là toastlib. Nó có kèm icon biểu tượng của thư viện (library) và có cấu trúc như folder app của chúng ta.

Bây giờ các bạn mở file build.gradle (app) của module app ra, thêm dòng sau vào để project của chúng ta load thư viện vào. và nhớ click Sync Now để đồng bộ lại.

implementation project(‘:libstoast’)

Bắt đầu viết thư viện

Trong libstoas, chúng ta tạo ra 1 file java là MToast để thực hiện hiển thị một Toast riêng của chúng ta.

package com.nguyenvanquan7826.libstoast;

import android.content.Context;
import android.graphics.Color;
import android.view.View;
import android.widget.Toast;

public class MToast {
    public static void show(Context context, String message) {
        Toast toast = Toast.makeText(context, message, Toast.LENGTH_SHORT);
        View view = toast.getView();
        view.setBackgroundColor(Color.BLUE);
        toast.show();
    }
}

Vậy là chúng ta đã viết xong thư viện riêng của chúng ta. Ngoài ra trong thư viện, các bạn hoàn toàn có thể tạo Fragment, Activity,… kèm giao diện để phục vụ cho các project khác nhau.

Bây giờ chúng ta trở lại module app chính là project gốc của chúng ta để sử dụng thư viện vừa tạo ra.

Trong file MainActivity chúng ta thay sự kiện mặc định của FAB bằng việc hiển thị MToast

package com.nguyenvanquan7826.demolibs;

import android.os.Bundle;
import android.view.View;

import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.widget.Toolbar;

import com.google.android.material.floatingactionbutton.FloatingActionButton;
import com.nguyenvanquan7826.libstoast.MToast;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Toolbar toolbar = findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);

        FloatingActionButton fab = findViewById(R.id.fab);
        fab.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                MToast.show(MainActivity.this, "This is MToast");
            }
        });
    }
}

Kết quả:

Publish thư viện cho mọi người dung

Để thực hiện đưa thư viện lên toàn cầu cho mọi người dùng, trước hết các bạn cần cài đặt git vào máy. Sau đó tạo một tài khoản trên github. Những việc này các bạn có thể tìm hướng dẫn trên google rất nhiều.

Tiếp theo các bạn tạo 1 repository trên gihub để chế độ pubic

Tiếp theo, github sẽ hướng dẫn các bạn đưa code lên bằng một số câu lệnh.

Các bạn mở terminal của android studio lên (ở bên thanh trạng thái bên dưới) và lần lượt chạy các lệnh như github hướng dẫn (link repository của bạn sẽ khác của mình nhé).

git init

git remote add origin https://github.com/nguyenvanquan7826/androiddemolibs.git

git add .

git commit -m “init”

git push origin master

Lệnh push cuối cùng, có thể bạn sẽ phải nhập email và password tài khoản github của bạn nhé. Sau khi push xong thì trên github của bạn sẽ có code như này:

Các bạn click vào menu releases và tạo mới releases để tạo “xuất bản” cho thư viện.

Đến đây coi như xong rồi. Giờ bạn vào https://jitpack.io/ , đăng nhập bằng github và tìm nhập đường dẫn repository của mình vào sẽ thấy.

Kéo xuống bên dưới sẽ thấy như này là bạn và mọi người có thể dùng thư viện của bạn bằng 2 bước như hướng dẫn ở đây: 1. thêm maven { url ‘https://jitpack.io’ } vào build.gradle của project và 2 là đưa thư viện của mình vào, thay tag bằng version mà bạn đã tạo (1.0.0)

Cú pháp chung là:

com.github.user:repository:version

Mã nguồn demo các bạn có thể xem, download tại đây

Tạo nhiều thư viện trong cùng project

Có thể bạn cần tạo ra nhiều thư viện nhưng không muốn dùng nhiều project để tạo từng thư viện, vậy thì bạn cứ viết hế vào một project như trên, tạo nhiều module library sau đó khi dùng chỉ việc chỉ rõ từng thư viện thôi. Ví dụ trong project AndroidLibs mình có 2 thư viện là appbasetextviewtwoline, để sử dụng từng thư viện mình sẽ viết như sau:

implementation “com.github.nguyenvanquan7826.AndroidLibs:appbase:1.0.5”

implementation “com.github.nguyenvanquan7826.AndroidLibs:textviewtwoline:1.0.5”

Cú pháp sẽ là:

com.github.user.repository:libsname:version

Nếu muốn dùng tất cả các thư viện mà không cần viết chi tiết ra, các bạn chỉ cần viết như với 1 thư viện theo cú pháp

com.github.user:repository:version