news

Senin, 15 Juni 2020

Belajar Komponen Behavior Android Jetpack


Behavior

Komponen Behavior atau perilaku membantu aplikasi Anda terintegrasi dengan layanan Android standar, seperti notifikasi, permission atau perizinan, sharing atau berbagi dan Assistant. Berikut bagian dari komponen Behavior:


CameraX

CameraX adalah salah satu dari Support Library di Android Jetpack. CameraX akan membantu Anda mengembangkan pengembangan aplikasi dengan menggunakan Camera jadi lebih mudah. 
Menyediakan API yang konsisten dan mudah digunakan yang bisa berjalan di sebagian besar perangkat Android dengan kompabilitas dukungan Android 5.0 ke atas
CameraX memungkinan developers memanfaatkan experiences dan fitur kamera yang sama dengan yang disediakan aplikasi kamera prainstall, hanya dengan dua baris kode. 
Extension dari CameraX adalah add-on opsional yang memungkinkan Anda untuk menambahkan efek seperti Portrait, HDR, Night dan Beauty dalam aplikasi pada perangkat yang didukung. 
Keunggulan utama dari CameraX —seperti sudah dipaparkan— adalah mudah dikembangkan dan konsisten untuk berbagai peranti.
  • Ease of use
    CameraX memiliki keunikan yang membuat Anda lebih fokus untuk mengerjakan tugas diperlukan sampai selesai, tanpa khawatir menghabiskan waktu untuk mengelola tampilan device tertentu. Berikut adalah kasus yang sering dialami:
    • Preview, guna menampilkan gambar.
    • Image Analysis, guna mengakses buffer secara perlahan untuk penggunaan dalam algoritma Anda (contoh: kebutuhan ML Kit)
    • Image Capture, guna menyimpan gambar berkualitas tinggi.
  • Consistency across device
    Mengelola konsistensi kamera di seluruh aplikasi, sulit. Ada banyak hal yang perlu diperhatikan, termasuk aspek rasio, orientasi, rotas, ukuran preview-nya dan ukuran gambar  dengan resolusi tinggi. Dengan CameraX hal tersebut bisa Anda lakukan.
  • New camera experiences
    CameraX mempunyai opsional add-on yang biasa dipanggil Extensions, yang mana mengizinkan Anda untuk mengakses fitur dan kompabilitas kamera secara native hanya dengan dua baris kode.
Untuk lebih detailnya Anda bisa mempelajarinya di tautan ini

Download Manager

Download Manager adalah layanan sistem yang menangani long-running HTTP download. Klien dapat meminta agar URI diunduh menjadi berkas dengan tujuan tertentu. 
Download Manager akan melakukan unduhan di background, menjaga interaksi HTTP dan mencoba mencoba kembali(auto-retry) mengunduh ketika terjadi kegagalan atau perubahan konektivitas dan reboot sistem. 
Dengan menggunakan Download Manager, Anda dapat menjadwalkan dan mengelola unduhan dengan ukuran berkas yang besar. 
Tentu Anda perlu menambahkan izin internet sebelum mengunduh sesuatu dari server. Penasaran bagaimana cara menggunakannya? Tautan ini akan membantu jika ingin menerapkan Download Manager ke dalam proyek Aplikasi Anda.

Media & Playback

Jika sudah lulus di kelas Menjadi Android Developer Expert, tentu Anda tak asing dengan Media dan PlayBack. Modul itu membahas bagaimana MediaPlayer berjalan. API Media dan Playback mempunyai dukungan kompabilitas dengan versi lama, untuk pemutaran media dan routing atau perutean (termasuk Google Cast). Anda bisa mempelajari kembali materi Dicoding tentang MediaPlayer atau bisa cek tautan ini untuk lebih detailnya. 

Notifications

Notifikasi? Seperti yang telah kita ketahui bersama, banyak aplikasi yang dapat mengabari kita saat ia memperoleh info baru dengan menggunakan notifikasi. Misalnya saat ada pesan masuk di WhatsApp, pemberitahuan di Facebook, dan lain-lain. Ada beragam jenis notifikasi. Ada yang berupa pop-up, dan ada juga yang muncul di status bar perangkat kita. Komponen Notification menyediakan API yang kompatibel dengan versi lama dan mendukung Wear serta Auto. 
wear_2x.png
Notification - https://developer.android.com/images/ui/notifications/wear_2x.png
Yuk cek lagi materi Dicoding tentang Notification atau di tautan ini.

Permissions

Maksud dari permission adalah untuk melindungi privasi dari pengguna Android. Aplikasi Android harus meminta izin untuk mengakses data user yang sensitif (seperti kontak dan SMS), serta fitur-fitur tertentu (seperti akses kamera atau internet). API ini memiliki kompatibilitas untuk memeriksa dan meminta izin aplikasi. Bergantung pada fitur, sistem mungkin memberi izin secara otomatis atau mungkin meminta pengguna untuk menyetujui permintaan. Poin penting dari arsitektur keamanan Android adalah secara default tidak ada aplikasi yang memiliki izin untuk melakukan operasi apapun yang berdampak buruk pada aplikasi lain, sistem operasi atau pengguna. Termasuk membaca dan menulis data pribadi pengguna, membaca atau menulis berkas aplikasi lain, mengambil kontak menjaga perangkat tetap terjaga dan sebagainya.
runtime_permission_request_2x.png
Permission - https://developer.android.com/images/permissions/runtime_permission_request_2x.png
Anda bisa cek di sini untuk lebih detailnya.

Preferences

Preferences adalah mekanisme penyimpanan yang sederhana. Mekanisme ini mendukung struktur penyimpanan key-valuePenggunaan Preferences terbilang sederhana, terlebih lagi bila data yang Anda gunakan bertipe teks, angka dan boolean, bukan data relasional. Anda bisa membuat hierarki ini menggunakan resource XML maupun dalam bentuk kode. Preferences juga mendukung Anda untuk membuat settings screen atau halaman pengaturan yang interaktif. 
6JNJmBb3aNKAgbZ9s_OKfC1fbXBXraOP1qYqOw7UpgR3DQiCQwNyAa4BCgblzmN8PuqpyRLUvUyY-Xhq0iBKsxh8Cck9SGlXErw24AwoDNsO6if1OGIV9d-BY8esYVme2m6_jHFhbng
Penasaran? Atau Anda lupa dengan pembahasan ini? Bisa lihat lagi di materi Dicoding tentang Preference atau di tautan ini.

Sharing

Dengan menerapkan aksi Sharing dengan efektif dan user friendly, user pun semakin mudah untuk membagikan sesuatu di aplikasi Anda. Gunakanlah ActionProvider ke dalam menu ActionBar, maka Anda dapat menangani tampilan dan behavior dari item tersebut. Penggunaan ActionProvider didukung mulai Android 4.0 ke atas. Contohnya dalam kasus ShareActionProvider, Anda dapat melakukan share intent. Ini memudahkan untuk sharing data ke aplikasi lain. Contohnya seperti ini:
Untuk memulai ShareActionProvider, tentukan atribut android: actionProviderClass untuk <item> yang sesuai di dalam berkas resource menu.

  1. <menu xmlns:android="http://schemas.android.com/apk/res/android">

  2.     <item

  3.             android:id="@+id/menu_item_share"

  4.             android:showAsAction="ifRoom"

  5.             android:title="Share"

  6.             android:actionProviderClass=

  7.                 "android.widget.ShareActionProvider" />

  8.     ...

  9. </menu>


Kode di atas bertanggung jawab untuk menampilkan dan memberi fungsi ke sebuah item untuk menjalankan ShareActionProvider. Namun, Anda harus memberi tahu provider apa yang ingin Anda bagikan informasi.
actionbar-shareaction.png
Share Action - https://developer.android.com/images/ui/actionbar-shareaction.png
Silakan buka tautan ini untuk mempelajari lebih dalam tentang aksi Sharing.

Slices

Komponen terakhir dari Android Jetpack Behaviaor adalah Slices. Dengan menggunakan Slices Anda bisa membuat elemen fleksibel UI yang dapat menampilkan data di luar aplikasi tersebut. Slices adalah template UI yang dapat menampilkan konten yang beragam, dinamis dan interaktif dari aplikasi dan bisa ditampilkan melalui Google Search dan Google Assistant. Anda dapat membuat Slices sebagai perangkat tambahan untuk tindakan aplikasi Anda. Slices mendukung mulai Android 4.4 ke atas, di mana hal tersebut mencakup sekitar 95% dari total pengguna Android.
slices-landing-example-1.pngslices-landing-example-2.png
Slices - https://developer.android.com/guide/slices/images/slices-landing-example-1.png
Anda bisa pelajari Slices di tautan ini.  Semoga Anda bisa mengimplementasikan Slices ini ke dalam proyek aplikasi