(Temporary Note only) Kotlin & Android Studio for Mobile Programming 2
— — Interaksi dg database (Room Database)
Room Database adalah library dari Android Jetpack yang menyediakan cara lebih mudah untuk membuat, mengelola, dan berinteraksi dengan database SQLite pada aplikasi Android. Room menyediakan lapisan abstraksi di atas SQLite untuk menyederhanakan penggunaan database dalam proyek Android. Fitur : basis data sqlite persisten di app, lapisan abstraksi memungkinkan interaksi lbih ke konsep objek drpd query, entity adl representasi class. DAO (Data Access Object): DAO adalah antarmuka yang berisi deklarasi metode untuk mengakses data dari database. Metode-metode ini dapat digunakan untuk mengambil, menyisipkan, memperbarui, atau menghapus entitas dari database.
— — cara memakai : tambah plugins di gradle app plugins {
id ‘com.android.application’
id ‘org.jetbrains.kotlin.android’
id ‘kotlin-kapt’
id ‘kotlin-parcelize’
}, di dependenciesnya implementation “androidx.room:room-runtime:2.5.2”
kapt “androidx.room:room-compiler:2.5.2”
— — RecyclerView,komponen antarmuka pengguna (UI) yang disediakan oleh Android untuk menampilkan daftar item dengan cara yang lebih fleksibel dan efisien daripada ListView. Ini adalah bagian dari Android Jetpack. Poin : View Recycling: Salah satu fitur paling penting dari RecyclerView adalah kemampuannya untuk mendaur ulang tampilan (View Recycling). Ini berarti saat Anda menggulir melalui daftar, tampilan item yang tidak terlihat dihapus dari layar dan digunakan kembali untuk menampilkan item-item baru yang muncul. LayoutManager: RecyclerView memiliki konsep LayoutManager yang memungkinkan Anda
untuk mengatur cara tampilan item ditampilkan di dalam RecyclerView. Anda dapat menggunakan LinearLayoutManager untuk membuat daftar linear vertikal atau horizontal, GridLayoutManager untuk tata letak kotak, atau StaggeredGridLayoutManager untuk tampilan kotak dengan ukuran berbeda. Adapter: Seperti ListView, RecyclerView juga menggunakan konsep adapter untuk menghubungkan data dengan tampilan. Anda perlu membuat kelas Adapter yang mewarisi RecyclerView.Adapter,
ViewHolder: ViewHolder adalah komponen yang menyimpan referensi ke tampilan individu dalam daftar. Ini membantu dalam menghindari pemanggilan findViewById berulang-ulang, yang dapat merugikan kinerja aplikasi. Listener dan Interaksi: Anda dapat menambahkan pendengar klik atau interaksi lainnya pada tampilan item dalam ViewHolder. Fleksibilitas dan Kustomisasi: Dibandingkan dengan ListView, RecyclerView jauh lebih fleksibel dan memungkinkan Anda untuk mengatur tampilan dan perilaku item dengan lebih terperinci.
— — service adalah Komponen Aplikasi android yang bekerja dibelakang layar, tanpa user interface dan interaksi dengan user. Foreground n Background, Bound : layanan akan bound bila komponen aplikasi mengikatkan kepadanya dengan
memanggil bindService(). Layanan terikat menawarkan antarmuka klien-server yang memungkinkan
komponen berinteraksi dengan layanan tersebut, mengirim permintaan, mendapatkan hasil dan
bahkan melakukannya pada sejumlah proses dengan komunikasi antarproses (IPC).
— — API = Application Programming Interface, software yang
memungkinkan para developer untuk mengintegrasikan dan mengizinkan dua aplikasi yang berbeda secara bersamaan untuk saling terhubung satu sama lain dan bertukarkirim data. Representasional State Transfer disingkat REST. Ini adalah API yang mengikuti seperangkat aturan
untuk aplikasi dan layanan untuk berkomunikasi satu sama lain.
REST API bekerja dengan mengajukan permintaan untuk sumber daya dan mengembalikan semua informasi yang relevan tentang sumber daya, diterjemahkan ke dalam format yang dapat dengan mudah ditafsirkan oleh klien (format ini ditentukan oleh API yang menerima permintaan).
RESTful API adalah Application Programming Interface (API) yang mematuhi batasan arsitektur
REST dan berinteraksi dengan layanan web RESTful. RESTful API juga mengikuti prinsip REST API.
RESTful API lebih skalabel dan memiliki masa pakai yang lebih lama. RESTful API menggunakan
permintaan HTTP untuk mengakses dan menggunakan data. Ada empat permintaan HTTP dasar yang
dapat dibuat klien adalah:
GET — Untuk mengambil sumber daya.
POST — Untuk membuat sumber daya baru.
PUT — Untuk mengedit atau memperbarui sumber daya yang ada.
DELETE — Untuk menghapus sumber daya.
OPTION — Untuk mendapatkan operasi yang disupport oleh resource pada rest server. Saat pengguna membuat respons, API mengirim informasi ‘request’ dari aplikasi web atau server
web, ia akan menerima ‘response’. Lokasi tempat API mengirim request atau tempat sumber daya berada adalah endpoint. Dengan REST API, endpoint adalah salah satu ujung saluran komunikasi.
— — Alasan mengapa memilih Web API :
a. Web API bersifat Open Source
b. Saat membutuhkan Web Service dan tidak perlu SOAP, maka ASP.NET Web API adalah solusi dan
pilihan terbaik.
c. Web API dapat digunakan untuk membangun Layanan HTTP sederhana, non-SOAP di atas WCF
message pipeline.
d. Konfigurasi yang mudah dan tidak seperti pada layanan WCF REST.
e. Pembuatan Service dengan API Web cukup sederhana, Berbeda dengan Layanan WCF REST,
pembuatan service menjadi cukup sulit.
f. Berdasarkan HTTP sehingga mudah untuk didefinisikan, mengekspos dan mengkonsumsi dengan
cara RESTful.
g. Berdasarkan arsitektur RESTful yang ringan dan bagus untuk perangkat yang memiliki bandwidth
terbatas seperti ponsel pintar.
— -Perbedaan antara REST API dan RESTful API :
bedaan.REST API mengikuti semua aturan Arsitektur REST. Ini memiliki sistem lapisan client-server,
stateless, cacheable, dengan antarmuka yang seragam, sedangkan aplikasi web RESTful memilikisemua fitur arsitektur REST dengan fitur tambahan yang unik.
Di REST Protokolnya kuat, dan mewarisi banyak langkah keamanan, yang merupakan lapisan arsitektur bawaan. Dalam RESTful API Ini adalah multi-layer dan memiliki protokol transport yang membuat sistem kurang aman jika dibandingkan dengan REST. Saat menggunakan layanan web REST API, kerja URL didasarkan pada permintaan dan respons.
Cara kerja RESTful sepenuhnya didasarkan pada aplikasi REST.
Ini sangat mudah beradaptasi dan ramah pengguna untuk semua perusahaan bisnis dan IT yang
menggunakan REST API, RESTful API Ini terlalu fleksibel jika dibandingkan dengan layanan web
RESTLESS.
di modul app :
implementation ‘com.amitshekhar.android:android-networking:1.0.0’
di manifest utk internet :
<uses-permission android:name=”android.permission.INTERNET”/>
— — loncat dulu :
Contoh Recycle View bagian activity xml :
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="8dp"
android:orientation="vertical"
tools:context=".PekerjaanActivity">
<FrameLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1">
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/rvPekerjaan"
android:layout_width="match_parent"
android:layout_height="match_parent" />
<com.google.android.material.floatingactionbutton.FloatingActionButton
android:id="@+id/fabAddPekerjaan"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="end|bottom"
android:layout_margin="16dp"
android:backgroundTint="@color/white"
android:src="@drawable/baseline_add_24"
/>
</FrameLayout>
</LinearLayout>
Lalu utk per itemnya xml :
<?xml version="1.0" encoding="utf-8"?>
<androidx.cardview.widget.CardView
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
xmlns:app="http://schemas.android.com/apk/res-auto"
app:cardCornerRadius="20dp"
android:layout_marginStart="12dp"
android:layout_marginEnd="12dp"
android:layout_marginTop="8dp"
android:backgroundTint="@color/white"
android:layout_height="80dp">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:orientation="vertical">
<TextView
android:id="@+id/tvNama"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Nama Pekerjaan"
android:textColor="@color/black"
android:textStyle="bold"
android:layout_marginStart="16dp"
android:layout_marginEnd="16dp"
android:textSize="18sp"/>
<TextView
android:id="@+id/tvShift"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Shift Pekerjaan"
android:textColor="@color/black"
android:layout_marginStart="16dp"
android:layout_marginEnd="16dp"
android:textSize="14sp"/>
</LinearLayout>
</androidx.cardview.widget.CardView>
— — Firebase : Firebase adalah suatu layanan dari Google untuk memberikan kemudahan bahkan mempermudah
para developer aplikasi dalam mengembangkan aplikasinya. Firebase alias BaaS (Backend as a Service)
merupakan solusi yang ditawarkan oleh Google untuk mempercepat pekerjaan developer.
Dengan menggunakan Firebase, apps developer bisa fokus dalam mengembangkan aplikasi tanpa
memberikan effort yang besar untuk urusan backend.
Singkat cerita mengenai sejarah dari Firebase didirikan pertama kali pada tahun 2011 oleh Andrew Lee
dan James Tamplin. Produk Firebase yang pertama kali adalah Realtime Database. Realtime Database
digunakan developer untuk menyimpan data dan synchronize ke banyak user.Layanan-layanan yang tersedia dari Firebase ada 2 pilihan, di antaranya:
•SPARK : kita bisa menggunakan layanan secara gratis.
•BLAZE : kita akan dikenakan biaya sesuai dengan pemakaian layanan.
Jenis firebase :analytics, cloud msg and notif, auth, cloud firestore (database), realtime database : Firebase Realtime Database adalah database yang di-host melalui cloud. Data disimpan dan
dieksekusi dalam bentuk JSON dan disinkronkan secara realtime ke setiap user yang terkoneksi. Hal ini
berfungsi memudahkan kamu dalam mengelola suatu database dengan skala yang cukup besar. Ketika
kamu membuat aplikasi lintas-platform/multiplatform menggunakan SDK Android, iOS, dan juga JS
(JavaScript), semua
pengguna
akan
berbagi
sebuah
instance Realtime Database dan
menerima update-an data secara serentak dan otomatis.
Kemampuan lain dari Firebase Realtime Database adalah tetap responsif bahkan saat offline karena
SDK Firebase Realtime Database menyimpan data langsung ke disk device atau memori lokal. Setelah
perangkat terhubung kembali dengan internet, perangkat pengguna (user) akan menerima setiap, dan firebase hosting :Selanjutnya ada Firebase Hosting, suatu layanan hosting konten web. Hanya dengan satu instruksi,
kamu dapat mengimplementasikan aplikasi web serta menyajikan konten statis maupun dinamis ke
CDN (jaringan penayangan konten) global dengan cepat.
— Cloud Storage for Firebase dibuat untuk developer aplikasi yang perlu menyimpan dan
menayangkan konten buatan pengguna, seperti foto atau video. Cloud Storage for Firebase adalah
layanan penyimpanan objek yang andal, sederhana, dan hemat biaya yang dibuat untuk skala Google.
Firebase SDK untuk Cloud Storage menambahkan keamanan Google pada upload dan download file
untuk aplikasi Firebase Anda, bagaimanapun kualitas jaringannya.
kemampuan : stabil, keamanan, skalabilitas tinggi. Developer menggunakan Firebase SDK untuk Cloud Storage untuk mengupload dan mendownload file
langsung dari klien. Jika koneksi jaringan buruk, klien bisa mencoba operasi ini lagi dari posisi terakhir
saat terhenti, sehingga menghemat waktu dan bandwidth pengguna.