Apendiks: Utilitas
Daftar Isi:
- Menyalin dan mengubah nama proyek
- Menghapus proyek
- Mengekstrak sumber daya
- Menambahkan pustaka dukungan
- Membuat gambar di Asset Studio
- Membandingkan objek khusus
Apendiks ini adalah kumpulan tugas yang mungkin perlu Anda lakukan selama proses development aplikasi di praktik ini. Tugas-tugas ini tidak khusus untuk satu praktik.
Menyalin dan mengubah nama proyek
Untuk beberapa pelajaran, Anda perlu membuat salinan proyek sebelum membuat perubahan baru. Anda juga disarankan menyalin proyek untuk menggunakan sebagian kodenya di proyek baru. Apa pun itu, Anda bisa menyalin proyek yang sudah ada (ExistingProject), lalu mengubah name dan mengoptimalkan komponen proyek baru (NewProject) untuk menggunakan nama proyek yang baru. (Di petunjuk di bawah ini, ganti nama proyek aktual Anda untuk ExistingProject dan NewProject.
1. Salin proyek
- Di sistem file komputer Anda (bukan di Android Studio), buat salinan direktori ExistingProject.
- Ubah nama direktori yang disalin menjadi NewProject.
2. Ubah nama dan optimalkan komponen proyek
Nama proyek yang lama, ExistingProject, masih ada di paket dan file di salinan proyek baru Anda. Ubah referensi file dan paket di aplikasi Anda ke nama baru, sebagai berikut:
- Mulai Android Studio
- Klik Open an existing Android Studio project.
- Masuk ke direktori NewProject, pilih, dan klik OK.
- Pilih Build > Clean Project untuk membuang file yang otomatis dibuat.
- Klik tab samping 1:Project dan pilih Android dari menu tarik-turun untuk melihat file Anda di tampilan Project.
- Perluas app > java.
- Klik kanan com.example.android.existingproject dan pilih Refactor > Rename. Ini akan membuka dialog Rename.
- Ubah existingproject menjadi newproject.
- Centang Search in comments and strings dan Search for text occurrences dan klik Refactor.
- Panel Find Refactoring Preview akan muncul yang menampilkan kode yang akan dioptimalkan.
- Klik Do Refactor.
- Perluas res > values dan klik dua kali file strings.xml.
- Ubah string name="app_name" menjadi New Project.
3. Perbarui file build.gradle dan AndroidManifest.xml
Setiap aplikasi yang Anda buat harus memiliki ID aplikasi yang unik, seperti yang didefinisikan di file build.gradle aplikasi. Meskipun langkah-langkah di atas harus diubah di file build.gradle, Anda harus memeriksanya untuk memastikan dan juga menyinkronkan proyek dengan file gradle:
- Perluas Gradle Scripts dan klik dua kali build.gradle (Module: app).
- Di defaultConfig, periksa untuk memastikan nilai kunci applicationID telah diubah menjadi "com.example.android.newproject". Jika belum berubah, ubah secara manual sekarang.
- Klik Sync Now di sudut kanan atas jendela Android Studio. Tip: Anda juga memilih Tools > Android > Sync Project dengan File Gradle untuk menyinkronkan file gradle Anda.
Sebagai tambahan, beberapa aplikasi menyertakan nama aplikasi dalam format yang bisa dibaca (misalnya, "New Project" bukan newproject), sebagai label di file AndroidManifest.xml.
- Perluas app > manifests and double-click AndroidManifest.xml.
- Temukan pernyataan di bawah ini, dan jika perlu, ubah label if menjadi sumber daya string untuk nama aplikasi baru:
android:label="@string/app_name"
Menghapus proyek
Semua file untuk proyek Android berada dalam folder proyek di sistem file komputer. Untuk menghapus proyek, hapus foldernya.
Android Studio juga menyimpan daftar proyek terbaru yang telah Anda buka. Anda bisa menghapus proyek dari daftar proyek terbaru di Android Studio. (Menghapus proyek dari daftar proyek terbaru tidak memengaruhi file proyek sebenarnya.)
Untuk membuang proyek dari daftar proyek terbaru, lakukan salah satu dari yang berikut:
- Di layar mulai Android Studio, klik nama proyek dan tekan tombol Delete.
- Pilih File > Open Recent > Manage Projects, klik nama proyek dan tekan tombol Delete.
Mengekstrak String dan Dimensi
Mengekstrak String
Agar aplikasi Anda bisa diterjemahkan ke berbagai bahasa, Anda harus mempertahankan semua sumber daya string Anda di file res/values/strings.xml.
Membuat sumber daya string
Ada beberapa cara untuk membuat sumber daya string:
- Tambahkan secara manual di file strings.xml menggunakan sintaks berikut:
<string name="string_name">String Value</string>
Kapan pun string akan digunakan, seperti atribut teks sebuah TextView:
Ketikkan nama yang diinginkan untuk sumber daya string dalam format berikut:
@string/string_name.
Ini akan disorot dengan warna merah karena sumber daya belum ada.Pastikan kursor Anda berada di teks yang disorot.
Tekan Alt + Enter dan pilih Create string value resource.
Masukkan string yang Anda inginkan dan tekan OK, dan string akan ditambahkan ke file strings.xml Anda.
- Anda bisa memilih string yang di-harcode yang sudah ada dalam XML atau Java, tekan Alt + Enter dan pilih Extract string resource.
Mengakses sumber daya string:
- Di XML, buat referensi sumber daya string menggunakan sintaks berikut:
@string/string_name
- Di Java, buat referensi sumber daya string menggunakan sintaks berikut:
getString(R.string.string_name)
2. Ekstrak Dimensi
Dimensi secara umum harus tidak di-hardcode tetapi disimpan di file dimens.xml. Ini memungkinkan Anda menetapkan dimensi yang berbeda menggunakan qualifier sumber daya
Ekstrak dimensi dengan cara yang sama sebagai string (Alt-Enter) dan dimensi akan disimpan di dimens.xml.
3. Ekstrak Gaya
Jika Anda memiliki beberapa elemen yang beratribut sama, Anda bisa membuat gaya di file style.xml. Untuk mengetahui selengkapnya tentang gaya, lihat pelajaran Gaya dan Tema.
Untuk mengekstrak atribut yang sudah ke dalam gaya, lakukan yang berikut:
- Letakkan kursor Anda di tampilan yang atributnya ingin Anda ubah menjadi gaya.
- Klik kanan dan pilih Refactor > Extract > Style.
- Beri nama gaya dan pilih atribut. Jika Launch 'Use Style Where Possible' refactoring after the style is extracted dicentang, Android Studio akan menelusuri semua file untuk atribut yang dipilih dan menerapkan gaya ke tampilan yang cocok dengan atribut.
- Klik OK.
Tambahkan pustaka dukungan Android ke file build.
Pustaka Dukungan Android menyediakan versi Android Framework API yang kompatibel dengan versi lama, komponen UI tambahan, dan serangkaian utilitas yang berguna.
Misalnya, untuk menggunakan kelas RecyclerView, yang berlokasi di paket Dukungan Android, Anda harus menyertakan dua dependensi di file build.gradle proyek Anda. Prosesnya sama dengan komponen pustaka dukungan lainnya.
Ikuti langkah-langkah berikut dan lihat tangkapan layar di bawah ini:
- Di Android Studio, di proyek Anda, pastikan Anda berada dalam panel Project (1) dan di tampilan Android (2).
- Di hierarki file, temukan folder Gradle Scripts (3).
- Perluas Gradle Scripts, jika perlu, dan buka file build.gradle (Module: app) (4).
- Di akhir file build.gradle (Module: app), temukan bagian dependensi.
- Tambahkan kedua dependensi pustaka ini sebagai dua baris (di dalam kurung kurawal):
compile 'com.android.support:recyclerview-v7:23.1.1' compile 'com.android.support:design:23.1.1'
- Mungkin terdapat baris yang sudah ada yang sama dengan ini:
compile 'com.android.support:appcompat-v7:23.1.1'
- Tambahkan baris Anda bawah baris tersebut.
- Pastikan nomor versi baris Anda sesuai dengan nomor versi baris yang sudah ada tersebut.
- Pastikan nomor versi semua pustaka sama dan cocok dengan
compiledSdkVersion
di bagian atas file. (Jika tidak cocok, Anda akan mendapatkan kesalahan build time.)
- Mungkin terdapat baris yang sudah ada yang sama dengan ini:
- Jika diminta, sinkronkan aplikasi Anda sekarang.
- Bangun dan jalankan aplikasi Anda.
Berikut ini adalah contoh bagian dependensi file build.gradle dengan pustaka dukungan yang ditambahkan.
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
testCompile 'junit:junit:4.12'
compile 'com.android.support:appcompat-v7:23.1.1'
compile 'com.android.support:recyclerview-v7:23.1.1'
compile 'com.android.support:design:23.1.1'
}
Membuat gambar di Asset Studio
Gunakan Image Asset Studio untuk membuat dan menambahkan ikon peluncur.
- Buka aplikasi Anda di Android Studio.
Klik kanan folder res di proyek Anda dan pilih New > Image Asset dari menu.
Ini akan membuka jendela Image Asset Studio, tempat Anda bisa membuat ikon teks, memilih dari clipart yang tersedia, atau menambahkan ikon khusus Anda sendiri.
Perhatikan bahwa panel di kiri atas bisa digulir; gulir untuk melihat penyesuaian tambahan.
Untuk menambahkan ikon teks khusus:
- Ubah Nama ikon menjadi
ic_launcher_text
, jika Anda tidak ingin mengganti ikon ic_launcher Android default yang ada di proyek Anda. - Di baris Asset Type, pilih Text.
- Ketikkan "Hello World!" di kotak teks.
- Coba bereksperimen dengan menyesuaikan font.
- Gulir ke bawah dan ubah warna font dan latar belakang.
- Klik Next.
- Jendela Confirm Icon Path menampilkan bagaimana sebuah ikon dengan teks yang Anda tetapkan akan dibuat untuk setiap resolusi, serta lokasi storage default dan path di aplikasi Anda.
- Klik Finish.
- Masuk ke folder res/mipmap. Jika sekarang terdapat ikon baru, dengan versi default di tingkat atas, dan versi yang ukurannya disesuaikan untuk berbagai resolusi.
- Untuk menggunakan ikon baru, buka manifes Android. Ubah baris ikon Android dari ic_launcher ke ic_launcher_text.
android:icon="@mipmap/ic_launcher_text"
- Jalankan aplikasi Anda.
- Setelah aplikasi diluncurkan, masuk ke layar beranda, dan buka daftar aplikasi.
- Gulir dan Anda akan melihat ikon Anda dicantumkan bersama dengan aplikasi lain yang dipasang.
Untuk menambahkan ikon clipart:
Ikuti langkah-langkah sebelumnya kecuali:
- Ubah Nama menjadi
ic_launcher_clipart
. - Pilih Clip Art sebagai Asset Type.
- Di baris Clip Art, klik tombol yang menampilkan ikon saat ini, Android default.
- Pilih ikon dari aplikasi dari jendela munculan clip art.
Untuk menambahkan ikon khusus:
Ikuti langkah-langkah sebelumnya kecuali:
- Ubah Nama menjadi
ic_launcher_image
. - Pilih Image sebagai Asset Type.
- Di baris Path, pilih gambar. Ini bisa berupa gambar yang telah Anda tambahkan ke proyek Anda atau gambar di komputer Anda.
Membandingkan objek khusus
Kapan pun model data Anda memanggil objek untuk diurutkan, Anda perlu mendefinisikan bagaimana objek ini bisa dibandingkan satu sama lain.
Antarmuka Comparable memungkinkan Anda untuk menetapkan cara membandingkan dua objek dan menentukan apakah salah satunya lebih besar, lebih kecil, atau sama dengan yang lain.
Antarmuka Comparable mengharuskan Anda mengimplementasikan satu metode: compareTo(<T> another)
Comparable<Foobar>
dan metode compareTo Anda akan mengambil Foobar sebagai parameter).
Metode Compare akan melakukan yang berikut:
- Mengembalikan integer negatif jika objek kurang dari parameter.
- Mengembalikan integer positif jika objek lebih besar dari parameter.
- Mengembalikan nol jika objek sama.
Misalnya, untuk membandingkan daftar buku menurut tanggal publikasi:
@Override
public int compareTo(Book book) {
if (this.publication == book.publication) { return 0; }
else { return this.publication > book.publication ? 1 : -1;}
}
Menyimpan keadaan objek khusus
Di Android, Anda akan sering membuat objek khusus untuk merepresentasikan model data khusus Anda. Untuk mempertahankan keadaan objek ini, Anda harus bisa meneruskannya ke dalam bundel savedInstanceState. Untuk melakukannya, kelas khusus Anda harus mengimplementasikan antarmuka Parcelable. Ini memungkinkan tipe primitif (int, string, byte, dsb.) untuk disimpan di callback savedInstanceState.
Lakukan yang berikut:
- Setelah menyiapkan data di kelas khusus (hanya tipe data primitif akan disimpan), tambahkan implementasi Parcelable ke deklarasi kelas Anda.
- Deklarasi akan digarisbawahi dengan warna merah, karena Anda harus mengimplementasikan metode antarmuka. Arahkan kursor ke teks yang digarisbawahi, tekan Alt + Enter dan pilih Implement methods.
- Pilih
describeContents()
danwriteToParcel(Parcel dest, int flags)
. Klik OK. - Nama kelas akan tetap digarisbawahi, yang menandakan bahwa antarmuka belum sepenuhnya diimplementasikan. Pilih nama kelas dan tekan lagi Alt + Enter dan pilih Add Parcelable implementation. Android Studio akan otomatis menambahkan kode yang diperlukan. Perhatikan variabel yang keadaannya (tipe primitif) yang ingin Anda pertahankan sudah dituliskan ke Parcel di metode
writeToParcel
. - Anda sekarang bisa menyimpan keadaan objek ini menggunakan metode bundle savedInstanceState: putParcelable, putParcelableArray, dan putParcelableArrayList dan getter yang terkait.