Bikin Library Android? Mudah Kok! Jangan Lupa di Publish Ya!

sumber : https://mobikul.com/

Halo semua, ini adalah tulisan kedua saya di medium. Di Senin pagi yang hujan ini pasti banyak orang yang terpaksa menerobos hujan untuk pergi ke kantor, tapi saya malah di rumah (enak dong bisa kerja remote) dan nulis di sini hehehe.

Oke di sini saya mau berbagi sedikit pengetahuan yang saya punya, mungkin banyak yang beranggapan bikin library atau dependencies itu susah, mending langsung cari aja di android-arsenal atau cari-cari di github kan banyak tuh yang share gratis. Tapi buat saya pribadi, saya mau coba bikin library atau dependencies itu, kenapa? Balik lagi ke tulisan pertama saya di medium, saya mau mengamalkan “sertifikat” (baca: pengetahuan saya) saya soalnya saya pikir agak useless kalo gak dimanfaatin. Nah sekarang kita coba yuk!

Langkah Ke-1
Seperti biasa silahkan create project dahulu di Android Studio sampai semua loading selesai.

Langkah Ke-2
Nah kalau sudah, sekarang kita coba buat module baru. Caranya klik menu File > New > New Module lalu pilih Android Library atau seperti gambar dibawah ini :

Gambar 1 : New Module

Langkah Ke-3
Jika sudah sampai tahap ini, temen-temen bisa berkreasi sesuka hati. Misalnya temen-temen mau bikin library berupa komponen view seperti bikin ScrollView yang gabisa di Scroll (ehehehe), atau mau bikin method yang bisa generate ID dari tiap perangkat secara unique? Bisaa~ semuanya bisa kok. Yang perlu temen-temen lakuin cuma bikin baris kode-nya di file baru yang tadi di-generate saat kita bikin module baru. Filenya seperti gambar ini :

Gambar 2 : File library baru

Langkah Ke-4
Oke disini saya coba sharing sedikit kodingannya ya, disini saya mau coba bikin library untuk deteksi informasi dari access-point yang kita mau. Misalkan kita terkoneksi dengan access-point A. Lalu kita mau coba dapetin SSID, BSSID, IP Address, dan lainnya dari access-point itu. Pertama buat sebuah kelas pada mylibrary lalu tuliskan beberapa kode di kelas tersebut. Baris kode yang saya gunakan seperti berikut ini :

class Wifiku {
fun getWifiSSID(context: Context): String {
val wifiManager = context.getSystemService(WIFI_SERVICE) as WifiManager
val wifiInfo = wifiManager.connectionInfo
return wifiInfo.ssid
}

fun getWifiBSSID(context: Context): String {
val wifiManager = context.getSystemService(WIFI_SERVICE) as WifiManager
val wifiInfo = wifiManager.connectionInfo
return wifiInfo.bssid
}

fun getWifiMacAddress(context: Context): String {
val wifiManager = context.getSystemService(WIFI_SERVICE) as WifiManager
val wifiInfo = wifiManager.connectionInfo
return wifiInfo.macAddress
}
}

Voela! Library Sudah Siap Digunakan!
Sampai tahap ini library sudah siap digunakan, tinggal temen-temen mau dibuat menjadi file aar, tetap berbentuk file project, atau dipublikasikan melalui jitpack.io, menurut saya pribadi lebih bagus dipublikasikan, kenapa? Pasti temen-temen bangga dong kalo di akun githubnya terpampang library buatan sendiri, apalagi kalo ternyata library buatannya digunakan banyak orang, ibaratnya bisa jadi amal jariyah yang gak keputus-putus juga tuh ehehehe. Disini saya coba bahas 2 opsi yaitu AAR dan publikasi ke jitpack.

Opsi 1 : File AAR
Ini adalah opsi termudah karena kita cukup membuat file AAR seperti membungkus library kita dalam bentuk AAR. Cara ini lebih optimal jika library temen-temen akan digunakan oleh banyak rekan kerja temen-temen, jadi privasi lebih terjaga. Langkah pertama adalah dengan cara mengubah konfigurasi build.gradle app seperti berikut :

apply plugin: 'com.android.application'

Ubah menjadi :

apply plugin: 'com.android.library'

Selanjutnya tinggal build file AAR dengan menggunakan gradle. File AAR akan muncul pada folder app >> builds >> output >> aar. Untuk cara generatenya seperti pada gambar berikut ini :

Gambar 3 : Build file AAR

Opsi 2 : Publikasi ke Jitpack (Github)
Untuk opsi kedua ini, hasilnya akan lebih mudah digunakan oleh banyak orang. Hal yang perlu dilakukan sebenarnya hanya setting gradle dan juga upload ke git. Langkahnya akan seperti berikut ini :

1. Pertama, kita harus menambahkan plugin android-maven ke dalam gradle agar jitpack dapat mendeteksi library buatan kita.

2. Tambahkan kode berikut ini pada build.gradle project :

buildscript {
...
dependencies {
...
classpath 'com.github.dcendents:android-maven-gradle-plugin:2.0'
}
}

3. Jika sudah, tambahkan baris kode berikut pada build.gradle library :

apply plugin: 'com.github.dcendents.android-maven'

group='com.github.GithubUsername'

4. Jika sudah, selanjutnya temen-temen tinggal upload (push) ke github seperti biasa dengan cara berikut :

git init
git add .
git commit -m "First Commit"
git remote add origin ***url git disini***
git push -u origin master

5. Buka repository yang baru saja dipush tadi, sebagai contoh disini saya gunakan repository saya di tautan berikut. Pastikan ada file gradle/wrapper. Jika belum ada, generate dengan menjalankan perintah ./gradle wrapper di terminal lalu push lagi.

Gambar 4 : gradle/wrapper

6. Selanjutnya temen-temen tinggal membuat “release” baru dengan cara klik menu release yang berada di antara branch dan contributor (lihat gambar 4 diatas). Lalu akan muncul tampilan seperti berikut :

Gambar 5 : Release

7. Gambar 5 adalah contoh tampilan ketika temen-temen berhasil membuat rilisan baru, yang perlu temen-temen lakukan adalah membuat release baru, dengan cara klik “Draft a new release” atau “Create a new release”.

8. Selanjutnya temen-temen tinggal isi form sesuai dengan yang temen-temen mau, disini saya kasih contoh seperti gambar berikut :

Gambar 6 : Form release

9. Jika temen-temen sudah klik publish, maka temen-temen sudah berhasil publikasikan library di github. Selanjutnya gimana?

Instalasi
Untuk menggunakan library tersebut, temen-temen harus memasang repo jitpack pada build.gradle project :

repositories {
maven { url "https://jitpack.io" }
}

Lalu tinggal temen-temen gunakan deh dependenciesnya, tambahkan di build.gradle app :

dependencies {
...
compile 'com.github.GithubUsername:namaLibrary:releaseVersion'
}

Selamat! Temen-temen berhasil publikasi library di github. Untuk lebih jelasnya bisa membaca dokumentasi dari Jitpack.io di sini. Untuk referensi bisa lihat project di github saya di sini. Dari saya pribadi mohon maaf jika tulisan saya ini kurang jelas, tapi saya berharap temen-temen bisa memanfaatkan github sebagai salah satu portofolio temen-temen. Sekedar sharing, beberapa hari yang lalu akun github saya dapat penghargaan berikut ini :

https://www.instagram.com/p/Be7I6VAjIGQ