PEMGROGRAMAN MOBILE
Topik yang akan dibahas pada diskusi kali ini:
- Komponen aplikasi Android
- Hyrarchy of screen elements
- Proses thread
- Siklus hidup activity
- Project structure
- Struktur XML
- Jenis-jenis layouts
- Mendesain user interface/layout
- Android UI control(TextView,EditText,Button, RadioButton)
Contoh program UI control pada android
- Komponen aplikasi android
Komponen Aplikasi Android adalah salah satu bagian yang penting dari suatu aplikasi. Karena dengan komponen komponen tersebut sebuah aplikasi dapat berjalan dengan baik. Dimana komponen ini dikendalikan oleh androidManifest.xml, yang mendeskripsikan setiap komponen dan bagaimana interaksinya.
- Activities, Suatu komponen yang mengendalikan User Interface dan menangani interaksi pengguna ke layar smart phone.
- Services, Suatu komponen yang menangani proses di background yang terhubung dengan aplikasi.
- Broadcast Receivers, Suatu komponen yang menangani komunikasi antara Sistem Operasi Android dengan aplikasi.
- Content Providers, Suatu komponen yang menangani data dan masalah manajemen basis data.
Adapun komponen tambahan pada aplikasi android yaitu:
- 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.
- Resoucres, Elemen eksternal, seperti: string, konstanta dan gambar.
- Manifest, file konfigurasi untuk aplikasi.
2. Hyrarchy of screen elements
Semua elemen antarmuka pengguna dalam aplikasi Android dibangun menggunakan objek View dan ViewGroup..
- View, adalah objek yang menarik sesuatu di layar dan dapat berinteraksi dengan pengguna.
- ViewGroup , sebuah viewgroup adalah tipe objek pandang khusus yang fungsinya berisi dan mengelola sekumpulan pandangan dan kelompok pandang bawahan lainnya.
Viewgroups membiarkan Anda menambahkan struktur ke UI dan membangun elemen layar yang kompleks yang bisa dialamatkan sebagai satu kesatuan.
Antarmuka pengguna untuk setiap komponen aplikasi Anda didefinisikan menggunakan hierarki objek View dan ViewGroup, seperti yang ditampilkan dalam gambar diatas.
Setiap kelompok tampilan merupakan kontainer tak terlihat yang mengelola tampilan anak, sementara tampilan anak ini dapat berupa kontrol masukan atau widget lain yang menggambar sebagian dari UI.
Dengan kata lain Antarmuka pengguna untuk setiap komponen aplikasi Anda didefinisikan menggunakan hierarki objek View dan ViewGroup, seperti yang ditampilkan dalam gambar dislide sebelumnya.
Setiap kelompok tampilan merupakan kontainer tak terlihat yang mengelola tampilan anak, sementara tampilan anak ini dapat berupa kontrol masukan atau widget lain yang menggambar sebagian dari UI.
3. Proses dan thread
Proses adalah instansi dari sebuah Aplikasi atau Program,serta beberapa Sistem Operasi merujuk pada task , untuk merujuk pada Program yang sedang berjalan. Sebuah Proses juga selalu disimpan ke dalam memori utama ,atau yang biasa kita kenal RAM ( Random access memory).
Sebuah thread adalah bagian di dalam sebuah proses ,yang dapat dijadwalkan untuk di eksekusi. Semua thread dari sebuah proses ,akan saling membagi virtual address space dan system resources. Sedangkan proses mempunyai virtual address space tersendiri atau terpisah. Thread memiliki akses langsung ke segmen data dari proses. sedangkan proses mempunyai salinan segmen data ,dari induk proses sendiri.

4. Siklus hidup activity
Activity adalah komponen yang dapat dilihat oleh pengguna, sehingga mereka dapat berinteraksi dengan aplikasi.

Penjelasannya:
onCreate()
adalah kondisi awal saat Activity baru diciptakan, biasanya
dilakukan inisialisasi pada tahapan ini.
onStart()
adalah saat Activity dimulai
onResume()
adalah saat Activity dibuka kembali, biasanya dieksekusi
setelah onPause()
onPause()
akan dipanggil saat ada Activity lain yang terbuka.
onStop()
adalah kondisi saat Activity tidak ditampilkan dilayar (biasanya
saat pengguna menekan tombol Home).
onRestart()
adalah kondisi saat Activity kembali dibuka oleh pengguna.
onDestroy()
adalah kondisi saat Activity dihancurkan pada memori.
5. Project structure

Pada bagian ini , Anda bisa melihat banyak file dan direktori lainnya. Yang terpenting di antaranya adalah sebagai berikut:
build/ Berisi keluaran pembangunan.
libs/ Berisi pustaka privat.
src/ di bagian ini terdapat beberapa menu lagi :
androidTest/ Berisi kode untuk pengujian instrumentasi yang dijalankan pada perangkat Android.
main/ Berisi file sourceset “main”: sumber daya dan kode Android yang digunakan bersama oleh semua varian pembangunan (file untuk varian pembangunan lainnya
AndroidManifest.xml
Menjelaskan sifat aplikasi dan masing-masing komponennya.
java/ Berisi sumber kode Java.
jni/ Berisi kode asli yang menggunakan Java Native Interface (JNI).
gen/ Berisi file Java yang dihasilkan oleh Android Studio,
build.gradle (modul)
Ini mendefinisikan konfigurasi pembangunan khusus modul.
6. Struktur XML
XML (eXtensible Markup Language) adalah bahasa markup seperti HTML, XML dirancang untuk menyimpan dan mengangkut data.
Dalam pemgrograman android kode XML akan tergenerate secara otomatis ketika kita meng-create sebuah project dan menciptakan user interface pada Pallete, seperti menambahkan Button, label, textfield dsb.
Setiap file XML mengandung struktur elemen (tree of element) yang menentukan layout dari widget dan container yang membentuk sebuah View. Attibut dari elemen XML disebut dengan properti, hal ini melukiskan bagaimana widget akan terlihat atau bagaimana sebuah container harus bersikap.

Berbicara tentang Layout tentunya bagian ini akan membentuk UI (User Interface) pada aplikasi Android. UI pada Android dibuat (dicreate) pada Activity.
Sebuah Activity akan menampilkan interface aplikasi yang kita buat, yang mungkin mengadung widget seperti : button, label dsb, container, serta berbagai jenis layout yang terdapat pada bagian Pallete. Untuk menenemukan dimana file Activity kita, dapat ditemukan pada app/src/main/res/layout/nama_file.xml.
Adapun struktur XML yang dipakai
match_parent, Ketika anda set lebar (width) layout dan tinggi layout, maka akan menempati area seutuhnya.
wrap_content, Ketika anda set lebar (width) layout dan tinggi layout, maka akan menempati area sesuai dengan lebar dan tinggi dari widget tersebut.

7. JenisLayout Android
a. Linear layouts, Layout yang mengatur anak-anaknya menjadi satu baris horizontal atau vertikal. Layout ini akan membuat scrollbar jika panjang jendela melebihi panjang layar

b. Relative layouts, Memungkinkan Anda menentukan lokasi objek anak relatif terhadap satu sama lain (anak A di kiri anak B) atau terhadap induk (disejajarkan dengan atas induknya).

c. List View
Anda bisa mengisi AdapterView seperti ListView atau GridView dengan mengikat instance AdapterView ke Adapter, yang akan mengambil data dari sumber eksternal dan membuat View yang mewakili setiap entri data.

d. Grid view, Menampilkan petak kolom dan baris yang bergulir.

e. Web view
Menampilkan laman web. Seperti contoh aplikasi browser android menampilkan laman sebuah website

8. Mendesain user interface / layouts
Antarmuka pengguna (user interface) merupakan bentuk tampilan grafis yang berhubungan langsung dengan pengguna (user).
Antarmuka pengguna berfungsi untuk menghubungkan antara pengguna dengan sistem operasi, sehingga komputer tersebut bisa digunakan.
Point-point mendesain user interface
a.Imajinasi
Proses membayangkan interface seperti apa yang mau dibuat mulai dari konsep UI, tata letak konten, pemilihan icon, pemilihan warna.
b.Cari inspirasi
Hasil dari proses imajinasi terkadang terasa abstrak. Maka langkah selanjutnya adalah mencari inspirasi di internet.
Bisa cek : https://www.uplabs.com/material
c.Mocups
Setelah berimajinasi dan mencari inspirasi, dilakukanlah pembuatan mockup. Bisa di kertas, atau software seperti photoshop, Ilusstrator, dsb
d.Buat layouts android
Setelah mockup selesai buat interface di Android Studio dengan mengikuti hasil mockup tersebut.

(gambar kiri) Keyline dan margin
Tepi layar margin kiri dan kanan: 16dp
Konten yang terkait dengan ikon atau avatar margin kiri: 72dp
Margin horizontal pada ponsel: 16dp
(gambar kanan) Vertical spacing
Status bar: 24dp
Toolbar: 56dp
Subtitle: 48dp
List item: 72dp
9. Android UI control
Kontrol masukan adalah komponen interaktif dalam antarmuka pengguna aplikasi Anda. Android menyediakan aneka ragam kontrol yang bisa Anda gunakan dalam UI, seperti tombol, bidang teks, bilah pencarian, kotak centang, tombol zoom, tombol toggle, dan masih banyak lagi.

10. Contoh program UI control pada android
Berikut adalah contoh program ui control pada android yang didalamnya menggunakan floating button, dan listview.

Link presentasi bisa di download dibawah ini
Terimakasih…