Tujuan Pembelajaran
Setelah mempelajari bab ini, kalian diharapkan dapat :
1) Memahami penggunaan library pada aplikasi mobile
2) Memahami berbagai macam library yang ada untuk aplikasi mobile
3) Membuat program aplikasi mobile menggunakan library
Inti Materi
Library dalam aplikasi program mobile
Cara menggunakan library dalam aplikasi mobile
Library merupakan kumplan fungsi yang dapat dipanggil ketika dibutuhkan. Pada umumnya
library diakses untuk mempermudah atau mempercepat pembuatan suatu aplikasi. Library
dapat membantu kita untuk mempercepat dan mempermudah proses pembuatan aplikasi
mobile. Saat ini telah banyak pengembang library yang siap digunakan oleh programmer.
PRDownloader can be used to download any type of files like image, video, pdf, apk and etc.
This file downloader library supports pause and resume while downloading a file.Supports
large file download. This downloader library has a simple interface to make download
request.We can check if the status of downloading with the given download Id. PRDownloader
gives callbacks for everything like onProgress, onCancel, onStart, onError and etc while
downloading a file.Supports proper request cancelling. Many requests can be made in parallel.
Fairy
Fairy merupakan alat debug yang memungkinkan pengembang menggunakan perintah adb
logcat untuk melihat log di sistem Android di ponsel Android dan bukan di komputer. Hal
ini juga memungkinkan untuk memindai informasi log sistem dimanapun menggunakan
ponsel Android bahkan tanpa memiliki root. Libray ini mendukung android dengan API 2.
Untuk download library dapat membuka situs github dan search Zane96/Fairy
ExpansionPanel
Library ini berfungsi untuk melakukan pengeditan elemen dengan ringan. Library ini di
rilis di bawah naungan apache 2.0. Untuk download library dapat membuka situs github
dan search florent37/ExpansionPanel
kTicketView
Ini adalah library yang menyediakan View Ticket. Ini menawarkan 3 jenis sudut
TicketView: normal, rounded dan scallop.Proyek ini dirilis di bawah lisensi Apache-2.0.
Aplikasi sampelnya dapat ditemukan di repo Github atau di Google Play. Dokumentasinya
layak dan perpustakaan mendukung API 15 dan yang lebih baru. Untuk download library
dapat membuka situs github dan search vipulasri/TicketView
Android-Indefinite-Pager-Indicator
Library ini adalah indikator pager ringan dan plug-and-play yang tidak terbatas untuk
RecyclerViews & ViewPagers. Untuk download library dapat membuka situs github dan
search rbro112/Android-Indefinite-Pager-Indicator
RecyclerViewCardGallery
Library ini adalah fork dari RecyclerViewCardGallery. Alih-alih menggunakan ViewPager,
penulis menggunakan RecyclerView, untuk mencapai efek korsel dengan swipe to refresh.
Proyek ini memiliki dokumentasi dasar, contoh aplikasi dan dirilis di bawah lisensi Apache-
2.0. Untuk download library dapat membuka situs github dan search zjw-
swun/RecyclerViewCardGallery
CalendarPicker
Library ini adalah kalender dan pemetik tanggal lainnya. Ini dapat mengatur tanggal yang
dipilih dan sangat dapat menyesuaikan hampir semua ukuran teks dan warna, warna latar
belakang, dan judul bulan. Library ini dirilis dengan lisensi MIT dan memiliki dokumentasi
dasar. Untuk download library dapat membuka situs github dan search
maxyou/CalendarPicker
Volley
Volley merupakan produk yang diperkenalkan oleh Google untuk mempermudah
pertukaran data tanpa harus membuat deretan kode yang sangat panjang. Secara default
volley menggunakan metode singkronisasi jadi anda tidak perlu membuat sebuah method
atau fungsi yang menggunakan class asynctask. Melakukan sebuah request queuing and
prioritization (Mengutamakan prioritas dalam sebuah antrian)
ExoPlayer
ExoPlayer adalah sebuah android library open source yang berfungsi untuk mengolah
media di android. ExoPlayer ini memungkinkan kita untuk bisa mengolah video dan juga
audio.
Lottie
Lottie adalah animasi library yang dibangun oleh Airbnb dimana penggunaanya digunakan
untuk memberikan animasi secara real time.
implementation 'com.google.zxing:core:3.2.1'
</resources>
4. Tambahkan kode berikut pada Activity_main.xml
<EditText
android:layout_width="fill_parent"
android:layout_height="50dp"
android:id="@+id/editText"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:hint="Masukan teks disini "
android:background="#ffffff"
android:gravity="center"
/>
<Button
android:layout_width="fill_parent"
android:layout_height="50dp"
android:textSize="20sp"
android:text="GENERATE KODE"
android:id="@+id/button"
android:textColor="#ffffff"
android:textStyle="bold"
android:background="@color/colorAccent"
android:layout_below="@+id/editText"
android:layout_centerHorizontal="true" />
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/imageView"
android:layout_centerHorizontal="true"
android:layout_below="@+id/button"
/>
</RelativeLayout>
ImageView imageView;
Button button;
EditText editText;
String EditTextValue ;
Thread thread ;
public final static int QRcodeWidth = 500 ;
Bitmap bitmap ;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
imageView = (ImageView)findViewById(R.id.imageView);
editText = (EditText)findViewById(R.id.editText);
button = (Button)findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
EditTextValue = editText.getText().toString();
try {
bitmap = TextToImageEncode(EditTextValue);
imageView.setImageBitmap(bitmap);
} catch (WriterException e) {
e.printStackTrace();
}
}
});
}
return null;
}
int bitMatrixWidth = bitMatrix.getWidth();
int bitMatrixHeight = bitMatrix.getHeight();
pixels[offset + x] = bitMatrix.get(x, y) ?
getResources().getColor(R.color.CodeBlackColor):getResources().getColor(R.color.CodeWh
iteColor);
}
}
Bitmap bitmap = Bitmap.createBitmap(bitMatrixWidth, bitMatrixHeight,
Bitmap.Config.ARGB_4444);
2. Library
Tambahkan library pada build . grad le lalu klik s ync now .
implementation 'com.itextpdf:itextg:5.5.10'
3. User Permission
Tambahkan user permission pada androidManifest.xml :
<uses-permission
android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission
android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
</manifest>
<Button
android:id="@+id/button_create"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:background="@color/colorAccent"
android:text="GENERATE TO PDF"
android:textColor="#ffff"
android:textSize="16sp" />
</LinearLayout>
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.Manifest;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.net.Uri;
import android.os.Build;
import android.os.Environment;
import androidx.core.app.ActivityCompat;
import android.app.AlertDialog;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
import com.itextpdf.text.Document;
import com.itextpdf.text.DocumentException;
import com.itextpdf.text.Paragraph;
import com.itextpdf.text.pdf.PdfWriter;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.OutputStream;
import java.util.List;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
private void createPdfWrapper() throws FileNotFoundException,DocumentException{
requestPermissions(new
String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE},
REQUEST_CODE_ASK_PERMISSIONS);
}
return;
}else {
createPdf();
}
}
@Override
public void onRequestPermissionsResult(int requestCode, String[] permissions,
int[] grantResults) {
switch (requestCode) {
case REQUEST_CODE_ASK_PERMISSIONS:
if (grantResults[0] == PackageManager.PERMISSION_GRANTED) {
// Permission Granted
try {
createPdfWrapper();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (DocumentException e) {
e.printStackTrace();
}
} else {
// Permission Denied
Toast.makeText(this, "WRITE_EXTERNAL Permission Denied",
Toast.LENGTH_SHORT)
.show();
}
break;
default:
super.onRequestPermissionsResult(requestCode, permissions,
grantResults);
}
}
private void showMessageOKCancel(String message,
DialogInterface.OnClickListener okListener) {
new AlertDialog.Builder(this)
.setMessage(message)
.setPositiveButton("OK", okListener)
.setNegativeButton("Keluar", null)
.create()
.show();
}
document.close();
previewPdf();
startActivity(intent);
}else{
Toast.makeText(this,"Download aplikasi pdf viewer untuk melihat hasil
generate",Toast.LENGTH_SHORT).show();
}
}
}
Jalankan aplikasinya: