1.Komponen Aplikasi Android
Komponen aplikasi android adalah suatu bagian yang sangat penting dari suatu aplikasi Android karena dengan komponen-komponen inilah suatu aplikasi android dapat berjalan dengan baik. Komponen-komponen ini dikendalikan oleh AndroidManifest.xml yang mendeskripsikan setiap komponen dan bagaimana mereka berinteraksi.
Berikut ini adalah 4 komponen utama yang dapat digunakan dalam sebuah aplikasi Android:
Activities
Sebuah activity merepresentasikan sebuah layar dengan User Interface. Dalam artian, activity-lah yang melakukan aksi pada layar, Contohnya: pada facebook, halaman log in adalah sebuah activity lalu news feed setelah Anda log in merupakan activity yang berbeda.
Jika sebuah aplikasi memiliki lebih dari 1 activity, maka salah satu dari activity tersebut harus ditAndai sebagai activityyang ditampilkan secara default ketika aplikasi dijalankan.
Sebuah activity dapat diimplementasikan sebagai sebuah subclass dari suatu Activity class dengan cara berikut:
Intent
Intent adalah sebuah pesan yang dapat mengizinkan sebuah aplikasi melakukan sesuatu sesuai intent tersebut. Contohnya: pada facebook Anda, activity yang sedang berjalan adalah News feed dan Anda ingin melihat sebuah gambar yang diposting teman Anda dalam full frame. Melakukan klik pada gambar tersebut akan mengaktifkan View Photo Intent sehingga gambar foto dalam full frame tersebut akan ditampilkan.
Services
Service adalah komponen yang berjalan di background untuk melakukan operasi yang berjalan panjang, Contohnya: sebuah service dapat memainkan music di background sementara pengguna dalam aplikasi yang berbeda atau service dapat mengambil data dalam jaringan tanpa menghalangi interaksi user dengan sebuah activity.
Sebuah service dapat diimplementasikan sebagai sebuah subclass dari Service class dengan cara berikut:
Broadcast Receivers
Broadcast Receivers merespon terhadap pesan broadcast dari aplikasi lain atau dari system, Contohnya: aplikasi juga dapat melakukan broadcast agar aplikasi lain tahu bahwa beberapa aplikasi yang telah di-download ke dalam perangkat dan dapat mereka gunakan. Di sinilah fungsi Broadcast Receivers yang berfungsi mengambil alih komunikasi seperti ini dan menginisiasi aksi yang tepat.
Sebuah Broadcast Receivers dapat diimplementasikan sebagai sebuah subclass dari BroadcastReceiver class dan setiap pesan dikirimkan sebagai Objek Intent dengan cara berikut:
Content Providers
Komponen content provider menyuplai data dari satu aplikasi ke aplikasi lainnya pada saat diminta datanya. Request ini ditangani oleh metode dari kelas Content Resolver. Data nya mungkin dapat disimpan di file system, di database atau di suatu tempat secara keseluruhan.
Sebuah content provider dapat diimplementasikan sebagai sebuah subclass dari ContentProvider class dan harus mengimplementasikan sekumpulan API stAndar yang memungkinkan aplikasi lain untuk melakukan transaksi dengan cara berikut:
Kita akan mempelajari bahan-bahan ini lebih detail lagi dalam sub-bab selanjutnya. Dalam sub-bab komponen aplikasi android ini khusus untuk mempelajari komponen aplikasi android secara garis besar.
Komponen Tambahan
Ada beberapa komponen tambahan yang akan digunakan dalam pembuatan 4 komponen utama di atas, komponen-komponen itu adalah:
Komponen | Deskripsi |
---|---|
Fragments | Merepresentasikan sebuah porsi dari User Interface dalam sebuah Activity. |
Views | Elemen User Interface yang digambar pada layar seperti tombol, list, formulir, dan lain lain. |
Layouts | Hierarki dari view yang mengontrol format layar dan tampilan dari view. |
Intents | Objek pesan yang dapat digunakan untuk meminta aksi dari komponen aplikasi lain. |
Resources | Elemen eksternal, seperti: string, konstanta dan gambar. |
Manifest | File Konfigurasi untuk aplikasi. |
2. Hierarchy of Screen Elements
Unit fungsional dasar aplikasi Android adalah aktivitas – objek android.app.Activity kelas. Suatu aktivitas bisa melakukan banyak hal, namun dengan sendirinya tidak ada kehadiran di layar. Untuk memberi aktivitas Anda kehadiran layar dan desain UI-nya, Anda dapat bekerja dengan tampilan dan kelompok pandang – unit dasar ekspresi pengguna di platform Android.
Views
Tampilan adalah objek kelas dasar android.view.View. Ini adalah struktur data yang propertinya menyimpan tata letak dan konten untuk area persegi panjang tertentu pada layar. Objek View menangani pengukuran dan tata letak, menggambar, mengubah fokus, menggulir, dan tombol / isyarat untuk area layar yang diwakili.
Kelas View berfungsi sebagai kelas dasar untuk widget – satu set subclass yang diimplementasikan sepenuhnya yang menarik elemen layar interaktif. Widget menangani pengukuran dan menggambar mereka sendiri, sehingga Anda dapat menggunakannya untuk membangun UI Anda lebih cepat. Daftar widget yang tersedia meliputi Text, EditText, InputMethod, MovementMethod, Button, RadioButton, Checkbox, dan ScrollView.
Viewgroups
Sebuah viewgroup adalah objek kelas android.view.Viewgroup. Seperti namanya, sebuah viewgroup adalah tipe objek pandang khusus yang fungsinya mengandung dan mengelola sekumpulan pandangan dan kelompok pandang bawahan lainnya, Viewgroups membiarkan Anda menambahkan struktur ke UI Anda dan membangun elemen layar yang kompleks yang dapat dialamatkan sebagai entitas tunggal.
Kelas Viewgroup berfungsi sebagai kelas dasar untuk layout – seperangkat subclass yang diimplementasikan sepenuhnya yang menyediakan jenis tata letak layar yang umum. Tata letak memberi Anda cara untuk membangun struktur untuk serangkaian tampilan.
A Tree-Structured UI
Pada platform Android, Anda mendefinisikan UI Activity dengan menggunakan node tree of view dan viewgroup, seperti yang ditunjukkan pada diagram di bawah ini. Pohon itu bisa sesederhana atau sesulit yang Anda butuhkan untuk membuatnya, dan Anda dapat membangunnya menggunakan seperangkat widget dan tata letak standar Android atau jenis tampilan khusus yang Anda buat sendiri.
Untuk melampirkan Tree ke layar untuk rendering, Kegiatan Anda memanggil metode setContentView () dan meneruskan referensi ke objek simpul akar. Setelah sistem Android memiliki referensi ke objek simpul akar, ia dapat bekerja secara langsung dengan simpul untuk membatalkan, mengukur, dan menggambar pohon. Ketika Aktivitas Anda menjadi aktif dan menerima fokus, sistem akan memberitahukan aktivitas Anda dan meminta simpul akar untuk mengukur dan menggambar pohon. Simpul akar kemudian meminta agar simpul anak-anaknya menggambar sendiri – pada gilirannya, masing-masing node kelompok viewgroup di pohon bertanggung jawab untuk menarik anak-anaknya langsung.
Seperti yang telah disebutkan sebelumnya, setiap kelompok pandangan memiliki tanggung jawab untuk mengukur ruang yang tersedia, meletakkan anak-anaknya, dan memanggil Draw () pada setiap anak untuk membiarkannya menghasilkan dirinya sendiri. Anak-anak dapat meminta ukuran dan lokasi pada orang tua, namun objek orang tua memiliki keputusan akhir mengenai seberapa besar setiap anak dapat melakukannya.
3. Proses dan Thread
Bila komponen aplikasi dimulai dan tidak ada komponen aplikasi lain yang berjalan, sistem Android akan memulai proses Linux baru untuk aplikasi dengan satu thread eksekusi. Secara default, semua komponen aplikasi yang sama berjalan dalam proses dan thread yang sama (disebut thread “utama).
Proses
Secara default, semua komponen aplikasi yang sama berjalan dalam proses yang sama dan kebanyakan aplikasi tidak boleh mengubah ini. Akan tetapi, jika Anda merasa perlu mengontrol proses milik komponen tertentu, Anda dapat melakukannya dalam file manifes.
Entri manifes untuk setiap tipe elemen komponen <activity>, <service>, <receiver>, dan <provider> mendukung atribut android:process yang bisa menetapkan dalam proses mana komponen harus dijalankan.
Elemen <application> juga mendukung atribut android:process, untuk menyetel nilai default yang berlaku bagi semua komponen.
Android bisa memutuskan untuk mematikan proses pada waktu tertentu, bila memori tinggal sedikit dan diperlukan oleh proses lain yang lebih mendesak untuk melayani pengguna. Komponen aplikasi yang berjalan dalam proses yang dimatikan maka sebagai konsekuensinya juga akan dimusnahkan. Proses dimulai kembali untuk komponen itu bila ada lagi pekerjaan untuk mereka lakukan.
Daur hidup proses
Sistem Android mencoba mempertahankan proses aplikasi selama mungkin, namun pada akhirnya perlu membuang proses lama untuk mengambil kembali memori bagi proses baru atau yang lebih penting.
Ada lima tingkatan dalam hierarki prioritas. Daftar berikut berisi beberapa tipe proses berdasarkan urutan prioritas (proses pertama adalah yang terpenting dan dimatikan terakhir):
Proses latar depan – Proses yang diperlukan untuk aktivitas yang sedang dilakukan pengguna. Proses dianggap berada di latar depan jika salah satu kondisi berikut terpenuhi:
-
- Proses menjadi host Activity yang berinteraksi dengan pengguna dengan (Activity dengan metode onResume() telah dipanggil).
- Proses menjadi host Service yang terikat dengan aktivitas yang sedang berinteraksi dengan pengguna.
- Proses menjadi host Service yang berjalan “di latar depan”— layanan telah memanggilstartForeground().
- Proses menjadi host Service yang menjalankan salah satu callback daur hidupnya (onCreate(), onStart(), atau onDestroy()).
- Proses menjadi host BroadcastReceiver yang menjalankan metode onReceive().
Secara umum, hanya ada beberapa proses latar depan pada waktu yang diberikan. Proses dimatikan hanya sebagai upaya terakhir jika memori hampir habis sehingga semuanya tidak bisa terus berjalan.
Proses yang terlihat – Proses yang tidak memiliki komponen latar depan, namun masih bisa memengaruhi apa yang dilihat pengguna di layar. Proses dianggap terlihat jika salah satu kondisi berikut terpenuhi:
-
- Proses ini menjadi host Activity yang tidak berada di latar depan, namun masih terlihat oleh pengguna (metode onPause() telah dipanggil). Ini bisa terjadi, misalnya, jika aktivitas latar depan memulai dialog, sehingga aktivitas sebelumnya terlihat berada di belakangnya.
- Proses menjadi host Service yang terikat dengan aktivitas yang terlihat (atau latar depan)
Proses yang terlihat dianggap sangat penting dan tidak akan dimatikan kecuali jika hal itu diperlukan agar semua proses latar depan tetap berjalan.
Proses layanan – Proses yang menjalankan layanan yang telah dimulai dengan metode startService() dan tidak termasuk dalam salah satu dari dua kategori yang lebih tinggi.
Proses latar belakang – Proses yang menampung aktivitas yang saat ini tidak terlihat oleh pengguna (metode onStop() aktivitas telah dipanggil). Proses ini tidak memiliki dampak langsung pada pengalaman pengguna, dan sistem bisa menghentikannya kapan saja untuk memperoleh kembali memori bagi proses latar depan, proses yang terlihat, atau proses layanan.
Proses kosong – Sebuah proses yang tidak berisi komponen aplikasi aktif apa pun. Alasan satu-satunya mempertahankan proses seperti ini tetap hidup adalah untuk keperluan caching, meningkatkan waktu mulai (startup) bila nanti komponen perlu dijalankan di dalamnya.
penerima siaran harus menjalankan layanan daripada hanya menempatkan operasi yang menghabiskan waktu di thread.
Thread
Bila aplikasi diluncurkan, sistem akan membuat thread eksekusi untuk aplikasi tersebut, yang diberi nama, “main”. Thread ini sangat penting karena bertugas mengirim kejadian ke widget antarmuka pengguna yang sesuai, termasuk kejadian menggambar. Ini juga merupakan thread yang membuat aplikasi berinteraksi dengan komponen dari toolkit Android UI (komponen dari paket android.widget dan android.view). Karena itu, thread ‘main’ juga terkadang disebut thread UI.
Sistem ini tidak membuat thread terpisah untuk setiap instance komponen. Semua komponen yang berjalan di proses yang sama akan dibuat instance-nya dalam thread UI, dan sistem akan memanggil setiap komponen yang dikirim dari thread itu. Akibatnya, metode yang merespons callback sistem (seperti onKeyDown() untuk melaporkan tindakan pengguna atau metode callback daur hidup) selalu berjalan di thread UI proses.
Misalnya saat pengguna menyentuh tombol pada layar, thread UI aplikasi akan mengirim kejadian sentuh ke widget, yang selanjutnya menetapkan status ditekan dan mengeposkan permintaan yang tidak divalidasi ke antrean kejadian. Thread UI akan menghapus antrean permintaan dan memberi tahu widget bahwa widget harus menggambar dirinya sendiri.
Saat aplikasi melakukan pekerjaan intensif sebagai respons terhadap interaksi pengguna, model thread tunggal ini bisa menghasilkan kinerja yang buruk kecuali jika Anda mengimplementasikan aplikasi dengan benar. Khususnya jika semua terjadi di thread UI, melakukan operasi yang panjang seperti akses ke jaringan atau kueri database akan memblokir seluruh UI. Bila thread diblokir, tidak ada kejadian yang bisa dikirim, termasuk kejadian menggambar. Dari sudut pandang pengguna, aplikasi seperti hang atau mogok. Lebih buruk lagi, jika thread UI diblokir selama lebih dari beberapa detik (saat ini sekitar 5 detik) pengguna akan ditampilkan dialog “aplikasi tidak merespons” (ANR) yang populer karena reputasi buruknya. Pengguna nanti bisa memutuskan untuk keluar dari aplikasi dan mencopot pemasangan aplikasi jika mereka tidak suka.
Selain itu, toolkit Android UI bukan thread-safe. Jadi, Anda tidak harus memanipulasi UI dari thread pekerja—Anda harus melakukan semua manipulasi pada antarmuka pengguna dari thread UI. Sehingga hanya ada dua aturan untuk model thread tunggal Android:
- Jangan memblokir thread UI
- Jangan mengakses toolkit Android UI dari luar thread UI
Thread pekerja – Karena model thread tunggal, Anda dilarang memblokir thread UI demi daya respons UI aplikasi. Jika memiliki operasi untuk dijalankan yang tidak seketika, Anda harus memastikan untuk melakukannya di thread terpisah (thread “latar belakang” atau thread “pekerja”).
Awalnya hal ini tampak bekerja dengan baik, karena menciptakan thread baru untuk menangani operasi jaringan. Akan tetapi, hal tersebut melanggar aturan kedua model thread tunggal: jangan mengakses toolkit Android UI dari luar thread UI—contoh ini memodifikasi ImageView dari thread pekerja sebagai ganti thread UI. Ini bisa mengakibatkan perilaku yang tidak terdefinisi dan tidak diharapkan, yang bisa menyulitkan dan menghabiskan waktu untuk melacaknya.
Untuk memperbaiki masalah ini, Android menawarkan beberapa cara untuk mengakses thread UI dari thread lainnya. Berikut ini daftar metode yang bisa membantu:
Kini implementasi ini thread-safe: operasi jaringan dilakukan terpisah dari thread sementara ImageView dimanipulasi dari thread UI.
Akan tetapi, karena operasi semakin kompleks, jenis kode seperti ini bisa semakin rumit dan sulit dipertahankan. Untuk menangani interaksi yang lebih kompleks dengan thread pekerja, Anda bisa mempertimbangkan penggunaan Handlerdi thread pekerja, untuk memproses pesan yang dikirim dari thread UI. Mungkin solusi terbaiknya adalah memperpanjang kelas AsyncTask, yang akan menyederhanakan eksekusi tugas-tugas thread pekerja yang perlu berinteraksi dengan UI.
Menggunakan AsyncTask – Dengan AsyncTask, Anda bisa melakukan pekerjaan asinkron pada antarmuka pengguna. AsyncTask memblokir operasi di thread pekerja kemudian mempublikasikan hasilnya di thread UI, tanpa mengharuskan Anda untuk menangani sendiri thread dan/atau penangan sendiri.
Untuk menggunakannya, Anda harus menjadikan AsyncTask sebagai subkelas dan mengimplementasikan metode callback doInBackground() yang berjalan di pool thread latar belakang. Untuk memperbarui UI, Anda harus mengimplementasikan onPostExecute(), yang mengirim hasil dari doInBackground() dan berjalan di thread UI, jadi Anda bisa memperbarui UI dengan aman. Kemudian Anda bisa menjalankan tugas dengan memanggil execute() dari
Kini UI aman dan kode jadi lebih sederhana, karena memisahkan pekerjaan ke dalam bagian-bagian yang harus dilakukan pada thread pekerja dan thread UI.
Anda harus membaca acuan AsyncTask untuk memahami sepenuhnya cara menggunakan kelas ini, namun berikut ini ringkasan singkat cara kerjanya:
- Anda bisa menetapkan tipe parameter, nilai kemajuan, dan nilai akhir tugas, dengan menggunakan generik
- Metode doInBackground() berjalan secara otomatis pada thread pekerja
- onPreExecute(), onPostExecute(), dan onProgressUpdate() semuanya dipanggil pada thread UI
- Nilai yang dikembalikan oleh doInBackground() akan dikirim ke onPostExecute()
- Anda bisa memanggil publishProgress() kapan saja di doInBackground() untuk mengeksekusi onProgressUpdate() pada thread UI
- Anda bisa membatalkan tugas ini kapan saja, dari thread mana saja
Metode thread-safe – Dalam beberapa situasi, metode yang Anda implementasikan bisa dipanggil dari lebih dari satu thread, dan karena itu harus ditulis agar menjadi thread-safe.
Penyedia materi juga bisa menerima permintaan data yang berasal dalam proses lain. Meskipun kelas ContentResolver dan ContentProvidermenyembunyikan detail cara mengelola komunikasi antarproses, metode ContentProvider yang merespons permintaan itu metode query(), insert(), delete(), update(), dan getType() dipanggil dari pool thread pada proses penyedia materi, bukan thread UI untuk proses tersebut. Mengingat metode ini bisa dipanggil dari thread mana pun sekaligus, metode-metode ini juga harus diimplementasikan sebagai thread-safe.
4. Siklus Hidup Activity (Activity Lifecycle)
Dalam mengembangkan aplikasi berbasis android, tidak lepas dari yang namanya Activity. Activity ini memiliki siklus hidup (activity lifecycle) dimana tiap terjadi aktivitas, misalnya pindah dari activity satu ke activity lain, menutup aplikasi atau aktivitas lainnya. Perpindahan siklus hidup ini terjadi secara berurutan, dari tahap satu ke tahap lainnya sehingga bisa digambarkan sebagai langkah piramida seperti pada gambar di bawah ini:
Method onCreate() dipanggil ketika activity pertama kali dibuat. Method ini tentu sudah tidak asing karena tiap membuat activity, method inilah yang kita panggil untuk menampilkan layout. Setelah method ini dipanggil, selanjutnya diikuti dengan method onStart(), yang dipanggil ketika activity terlihat oleh user. Selanjutnya ketika activity telah benar-benar aktif, method onResume()-lah yang dipanggil. Pada bagian ini activity berada di bagian teratas diantara activity lain.
Selanjutnya, pada saat kita berpindah dari satu activity ke activity lain(2), maka activity pertama tersebut akan memanggil method onPause() dimana activity tetap terlihat, tapi tidak mendapat focus, kemudian diikuti dengan method onStop() dimana activity sudah tidak terlihat, digantikan oleh activity lain(2).
Kemudian ketika kita menutup activity lain(2) tersebut dan kembali ke activity pertama, maka method onRestart() dipanggil, diikuti dengan method onStart() dan onResume().
Ketika kita keluar aplikasi, secara berurutan activity akan memanggil method onPause() -> onStop() -> onDestroy().
5. Struktur Directory Project Android Pada Android Studio
Perhatikan pada gambar di atas setruktur pada project android.
/manifests – Pada forder ini terdapat file yang bernama AndroidManifest.xml file tersebut sangat penting sekali untuk melakukan konfigurasi dalam pembuatan aplikasi android, di sini lah dimana didefinisikan nama aplikasi, icon aplikasi, semua activity yang ada dalam aplikasi serta permission untuk mengakses hardware maupun resource lainnya.
/java – Pada folder ini terdapat dua folder lagi dengan nama com.packge.aplikasi dan satu lagi com.packge.aplikasi (androidTest) biasanya kita sering bekerja menggunakan folder yang com.packge.aplikasi pada folder ini lah tempat tersimpannya activity atau class yang dibuat, berisi source code java dari aplikasi android. dan ini juga salah satu tempat kerja utama dalam pembuatan aplikasi android.
/res – Pada folder ini terdapat empat folder lagi dengan masing masing nama drawable, layout, mipmap, dan values. Directory resource pada project android, dimana berisi semua resource yang dibutuhkan dalam pembuatan aplikasi android seperti icon, layout, menu, warna, ukuran, string, dimensi, tema, dan lainya. ini juga salah satu tempat kerja yang paling sering dikunjungi ketika pembuatan aplikasi android, bahkan bisa jadi sebagian besar waktu pembuatan dipakai disini.
/res/drawable – Pada folder ini dimana anda dapat meletakan gambar atau icon yang nantinya akan di butuhkan dalam pembuatan aplikasi android.
/res/layout – Pada folder ini dimana anda melakukan atau membuat sebuah tampilan pada peroject aplikasi android, folder ini juga yang paling sering digunakan dalam membuat project aplikasi android.
/res/mipmap – Pada folder ini hampir sama dengan folder drawable namun disini hanya untuk meletakan icon bar untuk project aplikasi android.
/res/values – Pada folder ini dimana anda bisa melakukan perubahan warna tema pada project aplikasi android, dan anda juga bisa membuat string yang di gunakan untuk memberikan judul aplikasi, nama menu, dan lainya.
6. Struktur XML
- Baris pertama merupakan deklarasi XML, Ini mendefinisikan versi XML (1.0) dan pengkodean yang digunakan (ISO-8859-1 = Latin-1/West European character set).
- Baris kedua menggambarkan root element dari dokumen, seperti mengatakan, dokumen ini adalah tentang buku
- Tiga baris berikutnya menggambarkan child element dari root (pengarang, judul, tahun)
- Dan baris terakhir adalah penutup root
Dari dokumen xml tersebut dapat digambarkan bahwa, buku tersebut dikarang oleh robert,judulnya mak lampir, dan diterbitkan tahun1990
XML dokumen berbentuk struktur pohon (tree structure)
Sebuah dokumen XML harus berisi element root, elemen ini merupakan parent dari element-element yang lain. Elemen dalam dokumen XML membentuk struktur pohon. Sebuah pohon dimulai dengan root dan memiliki cabang sampai level yang paling rendah. Semua elemen dapat mempunyai sub elemen(elemen child).
Istilah parent, child, dan sibling yang digunakan untuk menggambarkan hubungan antar elemen. Elemen root memiliki child. children pada tingkat yang sama disebut sibling(saudara).
Semua elemen dapat memiliki konten teks dan atribut (seperti dalam HTML). Perhatikan gambar berikut :
Gambar diatas mewakili salah satu buku di XML di bawah ini:
root element dalam contoh di atas adalah <bookstore>. Semua <book> elements di dalam dokumen berada dalam <bookstore>. <book> element memiliki 4 children:
<title>,< author>, <year>, <price>.
7. Jenis-jenis Layout Android
Berikut jenis-jenis layout yang terdapat di Android :
LinearLayout adalah layout yang menampilkan elemen-elemen view dengan arah linear, vertikal ataupun horizontal. Ini adalah layout paling sederhana di Android.
RelativeLayout adalah layout yang menampilkan elemen-elemen view dalam posisi yang relatif. Posisi dari sebuah view yang dapat diletakkan relatif terhadap posisi elemen view di sekitarnya atau relatif terhadap area layout utama. Sebuah desain tampilan aplikasi bisa dibuat lebih mudah dan sederhana menggunakan RelativeLayout dibandingkan dengan LinearLayout.
TableLayout adalah layout yang menampilkan elemen view berdasarkan baris dan kolom. Bagi Anda yang telah mempelajari HTML, penggunaan TableLayout disini seperti penggunaan table di HTML yaitu dengan tag <table> dan <tr> serta <td>.
GridView adalah layout grid yang biasa digunakan untuk membuat galeri foto.
TabLayout adalah layout pada android dengan desain seperti tab.
ListView adalah jenis layout dengan tampilan list.
8. Mendesain UI dengan Layout Editor
Di Layout Editor Android Studio, dapat dengan cepat membangun layout dengan menyeret widget ke dalam editor desain visual sebagai ganti menulis XML layout secara manual. Editor ini bisa menampilkan pratinjau layout Anda dalam berbagai versi dan perangkat Android, dan Anda secara dinamis bisa mengubah ukuran layout untuk memastikannya berfungsi dengan baik pada berbagai ukuran layar. Layout Editor sangat berguna saat membangun layout baru dengan ConstraintLayout pengelola layout yang disediakan dalam pustaka dukungan yang kompatibel dengan Android 2.3 (API level 9) dan yang lebih tinggi.
Laman ini menyediakan ringkasan fitur dan antarmuka Layout Editor. Untuk mengetahui selengkapnya tentang cara membangun layout dengan ConstraintLayout,
Pengantar Editor
Layout Editor muncul bila Anda membuka file layout XML. Sesuai angka dalam gambar 1, region editor adalah seperti berikut:
- Palette: Menyediakan daftar widget dan layout yang bisa Anda seret ke dalam layout di editor.
- Component Tree: Menampilkan hierarki tampilan untuk layout Anda. Klik sebuah item di sini untuk melihatnya dipilih dalam editor.
- Toolbar: Menyediakan tombol untuk mengonfigurasi penampilan layout di editor dan untuk mengedit properti layout.
- Design Editor: Menampilkan layout Anda bersama tampilan Design dan Blueprint.
- Properties: Menyediakan kontrol properti untuk tampilan yang dipilih saat ini.
Mengubah penampilan pratinjau
Tombol-tombol di baris atas editor Design memungkinkan Anda mengonfigurasi penampilan layout dalam editor. Bilah alat ini juga tersedia dalam editor Text di jendela Preview.
Sesuai nomor dalam gambar 3, tombol yang tersedia adalah seperti berikut:
Desain dan cetak biru: Pilih cara Anda ingin menampilkan layout di editor. Tampilan Design menampilkan pratinjau berwarna dari layout Anda, sedangkan tampilan Blueprint
hanya menampilkan garis luar setiap tampilan. Atau Anda bisa menampilkan Design + Blueprint
berdampingan.
- Orientasi layar: Memutar perangkat antara lanskap dan potret.
- Ukuran dan tipe perangkat: Pilih tipe perangkat (ponsel/tablet, Android TV, atau Android Wear) dan konfigurasi layar (ukuran dan kepadatan). Anda bisa memilih dari sejumlah tipe perangkat yang telah dikonfigurasi dan definisi AVD Anda sendiri, atau mulailah AVD baru dengan memilih Add Device Definition dari daftar.
- Versi API: Pilih versi Android tempat pratinjau layout Anda.
- Tema aplikasi: Pilih tema UI yang akan diterapkan pada pratinjau. Catatan: Ini hanya berfungsi untuk gaya layout yang didukung; sehingga banyak tema dalam daftar ini yang mengakibatkan kesalahan.
- Bahasa: Pilih bahasa untuk menampilkan string UI Anda. Daftar ini hanya menampilkan bahasa yang tersedia dalam sumber daya string Anda. Jika Anda ingin mengedit terjemahan, klik Edit Translations dari menu tarik- Varian Layout: Beralih ke salah satu layout alternatif Anda untuk file ini, atau buat yang baru.
- Catatan: Konfigurasi ini tidak berpengaruh pada kode atau manifes aplikasi (kecuali jika Anda memilih untuk menambahkan file layout baru dari Varian Layout); konfigurasi ini hanya memengaruhi pratinjau layout.
Membuat Layout Baru
Saat menambahkan layout baru untuk aplikasi Anda, mulailah dengan membuat file layout dalam direktori layout/ default proyek Anda sehingga diterapkan pada semua konfigurasi perangkat. Setelah memiliki layout default, Anda bisa membuat variasi layout itu untuk konfigurasi perangkat tertentu (misalnya untuk layar ekstra besar) jika itu yang Anda inginkan, lompat ke buat varian layout.
Ada beberapa macam cara untuk membuat layout baru, bergantung pada tampilan jendela Project Anda, namun prosedur berikut dapat diakses dari tampilan apa saja:
- Di jendela Project, klik modul (misalnya app) yang ingin Anda tambahkan layout.
- Di menu utama, pilih File > New > XML > Layout XML File.
- Dalam dialog yang muncul, masukkan nama file, tag layout akar, dan set sumber yang memiliki layout tersebut. Kemudian klik Finish.
Dua cara lain untuk memulai file layout baru (walaupun dialog yang muncul berbeda) adalah sebagai berikut:
- Jika Anda memilih tampilan Project di jendela Project: buka direktori res untuk modul aplikasi Anda, klik kanan direktori layout tempat Anda ingin menambahkan layout kemudian klik New > Layout resource file.
- Jika Anda telah memilih tampilan Android di jendela Project: klik kanan folder layout kemudian pilih New > Layout resource file.
Membuat varian layout
Jika Anda sudah memiliki layout dan ingin membuat versi alternatifnya untuk mengoptimalkan layout bagi orientasi atau ukuran layar yang berbeda, ikuti langkah-langkah ini:
- Buka file layout asal dan pastikan Anda menampilkan editor Design (klik tab Design di bagian bawah jendela).
- Klik Layout Variants
di bilah alat. Dalam daftar tarik-turun, klik varian yang diusulkan misalnya Create Landscape Variant dan selesai, atau klik Create Other dan lanjutkan ke langkah berikutnya.
- Dalam dialog yang muncul, Anda hanya perlu mendefinisikan qualifier sumber daya untuk nama direktori tersebut. Anda bisa mengetikkannya dalam Directory name atau pilih dari daftar Available qualifiers, satu per satu, dan klik Add
.
- Setelah Anda menambahkan semua qualifier, klik OK.
Bila Anda memiliki beberapa variasi layout yang sama, Anda bisa dengan mudah berpindah layout dari daftar yang muncul bila Anda mengeklik Layout Variants .
Mengonversikan layout ke ConstraintLayout
ConstraintLayout adalah grup tampilan yang tersedia di pustaka Constraint Layout, yang telah disertakan bersama Android Studio 2.2 dan yang lebih tinggi. Layout ini dibangun dari nol bersama Layout Editor, jadi apa saja dapat diakses dari Design editor dan Anda tidak perlu mengedit XML secara manual.
Android Studio memiliki konverter bawaan untuk membantu Anda melakukan ini:
- Buka layout yang ada di Android Studio dan klik tab Design di bagian bawah jendela editor.
- Di jendela Component Tree, klik kanan layout kemudian klik Convert layout to ConstraintLayout.
Untuk mengetahui selengkapnya tentang cara membangun layout dengan ConstraintLayout.
9. Android Kontrol UI
Ada sejumlah kontrol UI yang disediakan oleh Android yang memungkinkan Anda untuk membangun antarmuka pengguna grafis untuk aplikasi Anda.
TextView – Kontrol ini digunakan untuk menampilkan teks ke pengguna.
EditText – EditText adalah subclass yang telah ditetapkan dari TextView yang mencakup kemampuan editing kaya.
Button – A push-tombol yang bisa ditekan, atau diklik, oleh pengguna untuk melakukan suatu tindakan.
ImageButton – AbsoluteLayout memungkinkan Anda untuk menentukan lokasi yang tepat dari anak-anaknya.
ChekBox – On / off switch yang dapat diubah oleh pengguna. Anda harus menggunakan kotak centang ketika menyajikan pengguna dengan sekelompok opsi yang dapat dipilih yang tidak saling eksklusif.
ToggleButton – Sebuah tombol on / off dengan lampu indikator.
RadioButton – The RadioButton memiliki dua negara: baik diperiksa atau dicentang.
ProgressBar – ProgressBar memberikan umpan balik visual tentang beberapa tugas yang sedang berlangsung, seperti ketika Anda melakukan tugas di latar belakang.
TimePicker – Pandangan TimePicker memungkinkan pengguna untuk memilih waktu hari, baik dalam modus 24-jam atau mode AM / PM.
DatePicker – DatePicker lihat memungkinkan pengguna untuk memilih tanggal hari.
10. Penggunan UI control dalam Aplikasi
kontrol input adalah komponen interaktif di antarmuka pengguna aplikasi Anda. Android menyediakan berbagai macam kontrol yang dapat digunakan dalam UI Anda, seperti tombol, bidang teks, mencari bar, centang kotak, tombol zoom, tombol toggle, dan banyak lagi.
Tampilan objek mungkin memiliki ID unik yang ditugaskan untuk itu yang akan mengidentifikasi Melihat unik dalam pohon. Sintaks untuk ID, dalam sebuah tag XML adalah
Untuk membuat UI Control / View / Widget Anda harus menentukan tampilan / widget di tata letak file dan menetapkan ID unik sebagai berikut
Lalu akhirnya membuat sebuah instance dari objek Control dan menangkap itu dari tata letak, gunakan berikut
File Presentasi dapat Di download Di sini
Daftar Pustaka
http://www.insinyoer.com/komponen-aplikasi-android/
http://www.iteedu.com/handset/android/androidmanual/devel/ui/hierarchy.php
https://developer.android.com/guide/components/processes-and-threads.html?hl=id#Processes
http://www.erikgunawan.com/android-siklus-hidup-activity-activity-lifecycle/
http://www.ngulikode.com/2016/01/mengenal-struktur-directory-project.html
http://dwi.staff.unisbank.ac.id/2012/10/24/struktur-dokumen-xml-xml-tree/
https://www.dumetschool.com/blog/Layout-di-Android
https://www.tutorialspoint.com/android/android_user_interface_controls.htm
http://www.w3ii.com/id/android/android_user_interface_controls.html