Android Dunia Nyata dengan Tutorial | raywenderlich.com

Sebelum kamu memulai

Bagian ini memberi tahu Anda beberapa hal yang perlu Anda ketahui sebelum memulai, seperti perangkat keras dan perangkat lunak apa yang Anda perlukan, di mana menemukan file proyek untuk buku ini dan banyak lagi.

Bagian I: Mengembangkan Aplikasi Dunia Nyata

Di bagian ini, Anda akan mempelajari cara mendesain dan mengimplementasikan PetSave sebagai contoh aplikasi dunia nyata yang profesional. Anda akan belajar cara memilih pola arsitektur yang tepat dan cara menyusun kode agar aplikasi dapat diuji dan dipelihara.

Untuk membuat aplikasi Anda lebih mudah diubah, merupakan praktik yang baik untuk mendefinisikan lapisan yang berbeda dengan tanggung jawab tertentu. Secara khusus, Anda akan mempelajari cara mendesain dan mengimplementasikan lapisan domain untuk aplikasi PerSave. Anda juga akan melihat cara mengakses jaringan secara efisien, dengan menerapkan pola repositori di lapisan data.

Di akhir bagian ini, Anda akan memiliki gagasan yang jelas tentang cara menyusun kode aplikasi Anda.

Platform Android berusia lebih dari 10 tahun dan jumlah kerangka kerja, pustaka, dan alat yang dapat Anda gunakan untuk mengembangkan aplikasi Anda tidak terhitung banyaknya. Buku ini mencakup teknologi dan praktik yang perlu Anda ikuti di dunia nyata jika Anda ingin membuat aplikasi Android yang sukses.


Membangun aplikasi Android bukan hanya soal menulis kode. Anda juga perlu menggunakan arsitektur terbaik dan menyusun file Anda dengan cara yang memudahkan untuk menerapkan perubahan. Menjaga kohesi tinggi dan kopling rendah hanyalah salah satu prinsip utama yang akan Anda pelajari dalam bab ini, di mana Anda akan mulai mengerjakan aplikasi PetSave.


Lapisan domain adalah kumpulan objek entitas dan logika bisnis terkait, yang dirancang untuk mewakili model bisnis aplikasi apa pun. Di sini, Anda akan mempelajari apa itu lapisan domain dan cara membuatnya yang bagus. Anda akan melihat perbedaan antara entitas dan objek nilai bersama dengan keuntungan menggunakan abstraksi repositori. Terakhir, Anda akan menguji logika domain aplikasi Anda.


Setiap aplikasi yang berguna memungkinkan pengguna untuk mengakses informasi yang disimpan secara lokal atau diambil dari jaringan. Inilah yang lapisan data membantu Anda lakukan. Dalam bab ini, Anda akan mempelajari apa itu lapisan data dan pilihan apa yang Anda miliki saat Anda membutuhkannya. Anda akan diperkenalkan dengan pola repositori dan mempelajari cara mengimplementasikannya mulai dari desain hingga fase pengujian.


Sebagian besar aplikasi mengakses data dari jaringan, yang menimbulkan berbagai jenis masalah, seperti latensi dan biaya konektivitas. Untuk meningkatkan kinerja dan mengurangi biaya, menyimpan data secara lokal merupakan praktik yang baik. Oleh karena itu, Anda perlu menerapkan pola repositori sebagai cache atau penyimpanan lokal sederhana. Dalam bab ini, Anda akan mempelajari cara menerapkan dan menguji pola repositori di aplikasi PetSave menggunakan Room dan Hilt.


PetSave memungkinkan pengguna untuk menemukan hewan yang dekat dengan mereka berdasarkan kriteria tertentu. Ada beberapa pola desain arsitektur yang dapat Anda gunakan untuk membuat fitur ini. Di sini, Anda akan menggunakan MVVM dan Aliran Data Searah untuk mengimplementasikan fitur “Hewan di Dekat Anda”. Anda juga akan memiliki kesempatan untuk mempelajari cara menggunakan pustaka dasar seperti StateFlow, ViewModel, dan ViewBinding.


Fitur utama PetSave adalah memungkinkan Anda mencari hewan peliharaan berdasarkan kriteria tertentu. Dalam bab ini, Anda akan menggunakan pendekatan top-down untuk mengimplementasikan pencarian, mulai dari mendefinisikan UI hingga mengambil data.


Bagian II: Memodulasi Aplikasi Anda

Saat Anda menambahkan fitur baru ke aplikasi Anda, kode menjadi lebih kompleks dan sulit untuk dipelihara. Karena alasan ini, penting untuk memisahkan aplikasi Anda ke dalam pustaka yang berbeda untuk membuat kode Anda dapat dipelihara dan digunakan kembali. Ini juga meningkatkan waktu pembuatan aplikasi, yang merupakan metrik yang sangat penting untuk CI Anda.

Di bagian ini, Anda akan mempelajari cara membagi aplikasi Anda menjadi modul yang berbeda. Secara khusus, Anda akan belajar cara menggunakan fitur dinamis opsi, yang mengoptimalkan ukuran kode yang harus diunduh pengguna Anda untuk menggunakan aplikasi Anda.

Modularisasi adalah salah satu masalah paling menantang yang Anda hadapi dengan aplikasi besar. Memisahkan aplikasi ke dalam modul yang berbeda memungkinkan Anda mengurangi waktu pembuatan sekaligus membuat kode yang dapat digunakan kembali di aplikasi lain. Dalam bab ini, Anda akan mempelajari cara membuat modul fitur untuk PetSave, dengan fokus pada navigasi.


Bab ini mencakup konsep dasar fitur dinamis. Fitur dinamis memungkinkan Anda membagi aplikasi menjadi modul yang berbeda untuk mengurangi ukuran APK serta waktu dan biaya pengunduhan.


Aplikasi seluler, terutama game dan aplikasi dengan banyak aset grafis, seringkali memiliki APK yang besar. Opsi fitur dinamis Google memungkinkan Anda menjaga aplikasi tetap ramping dengan membaginya menjadi beberapa bagian yang dapat dimuat pengguna jika dan saat mereka benar-benar membutuhkannya. Dalam bab ini, Anda akan mempelajari cara menggunakan fitur dinamis untuk menginstal PetSave dengan lebih efisien.


Bagian III: Meningkatkan UI Anda

Antarmuka pengguna (UI) adalah salah satu aspek terpenting dari aplikasi dunia nyata mana pun. Bagaimana pengguna Anda berinteraksi dengan fitur aplikasi Anda adalah yang menentukan apakah aplikasi tersebut berhasil atau tidak.

Saat membuat aplikasi, Anda memiliki tiga opsi untuk membuat UI. Sebagian besar waktu Anda akan menggunakan apa yang disediakan oleh SDK Android. Dalam kasus lain, Anda menyesuaikan komponen yang ada. Opsi ketiga Anda adalah membuat komponen kustom Anda sendiri.

Di bagian ini, Anda akan mempelajari cara menyempurnakan antarmuka pengguna aplikasi Anda. Anda akan membuat dan menyesuaikan animasi menggunakan yang baru Editor Animasi, yang hadir dengan Android Studio versi terbaru. Anda juga akan belajar bagaimana menguasai tema dan gaya dan membuat tampilan kustom.

Setelah membaca bagian ini, Anda akan memiliki aplikasi yang lebih menarik dan pengguna yang lebih bahagia.

Animasi sangat penting untuk membuat aplikasi Anda mudah dan menyenangkan untuk digunakan. Platform Android menyediakan beberapa API untuk mengimplementasikan berbagai jenis animasi. Dalam bab ini, Anda akan mempelajari cara menggunakan animasi berbasis fisika dan Lottie.


Menerapkan animasi di platform Android bisa jadi sulit dan memakan waktu. Sangat penting untuk menggunakan alat yang tepat. Dalam rilis terbaru Android Studio, Motion Editor memungkinkan Anda mengimplementasikan berbagai jenis animasi dengan cara yang sederhana dan deklaratif. Dalam bab ini, Anda akan mempelajari cara menggunakan Motion Editor dan cara mengintegrasikan MotionLayout ke dalam aplikasi Anda.


Platform Android menyediakan berbagai komponen standar yang dapat Anda gunakan untuk membuat UI aplikasi Anda. Sebagian besar waktu, mereka sudah cukup. Terkadang, seperti di aplikasi PetSave, Anda memerlukan sesuatu yang khusus. Untuk membuat elemen UI kustom, Anda menggunakan tampilan kustom, yang akan Anda pelajari semuanya dalam bab ini.


Android menyediakan gaya dan tema untuk menyesuaikan tampilan dan nuansa komponen UI aplikasi apa pun. Mereka memungkinkan Anda untuk sepenuhnya mengubah aspek UI aplikasi Anda secara deklaratif dengan menyediakan file XML sederhana. Dalam bab ini, Anda akan melihat cara menyesuaikan UI yang menggunakan komponen standar dan cara menggunakan gaya dan tema dengan tampilan kustom.


Bagian IV: Mengamankan Aplikasi Anda

Membuat aplikasi Anda lebih aman adalah aspek pengembangan yang sering diabaikan, tetapi, pada saat yang sama, sangat penting. Bayangkan apa yang akan terjadi jika seseorang meretas kode Anda, mencuri data penting atau bahkan nama pengguna dan kata sandi pengguna Anda. Itu akan menjadi bencana.

Dalam bab ini, Anda akan belajar bagaimana menangani keamanan dari sudut pandang yang berbeda. Anda akan mempelajari cara melindungi data pengguna dan cara menyambung ke server dengan aman. Terakhir, Anda akan belajar bagaimana membuat hidup peretas lebih sulit, dengan menggunakan berbagai metode untuk melindungi kode dan data Anda.

Dalam bab ini, Anda akan mempelajari praktik terbaik untuk mengamankan aplikasi Android. Anda akan melihat cara menangani izin dan cara mencegah risiko keamanan yang paling umum.


Mengakses data dari penyimpanan lokal memiliki implikasi keamanan, sehingga Android menyediakan berbagai API dan alat untuk menghindari akses yang tidak diinginkan ke data Anda. Di sini, Anda akan mempelajari cara membuat aplikasi Anda lebih aman dengan mengenkripsi dan mendekripsi data dan dengan menggunakan biometrik untuk mengimplementasikan login pengguna.


Dalam bab ini, Anda akan belajar mengamankan koneksi jaringan aplikasi Anda dengan menggunakan HTTPS untuk panggilan jaringan, memercayai koneksi dengan penyematan sertifikat, dan memverifikasi integritas data yang dikirimkan.


Aplikasi seluler apa pun dapat rentan terhadap berbagai jenis serangan dari peretas. Sudah umum membaca tentang peretas yang merusak aplikasi dan mencuri informasi penting. Karena itu, menghindari kerentanan kode dan memvalidasi input dari pengguna adalah topik yang sangat penting. Dalam bab ini, Anda akan mempelajari cara menggunakan beberapa teknik terpenting untuk membuat aplikasi Anda sulit diretas.


Bagian V: Memelihara Aplikasi Anda

Saat Anda mengembangkan aplikasi dunia nyata, Anda mungkin berpikir bahwa penerbitan adalah tujuan akhir Anda. Tapi sungguh, pekerjaan Anda belum berakhir hanya karena Anda telah merilis aplikasi Anda. Anda masih perlu memahami apakah aplikasi Anda berfungsi dengan baik dan masalah apa yang dialami pengguna Anda.

Di bagian ini, Anda akan mempelajari semua yang perlu Anda ketahui tentang memelihara dan mengontrol aplikasi Anda setelah dipublikasikan dan tersedia untuk pengguna. Secara khusus, Anda akan mempelajari cara menggunakan Firebase untuk mencatat error, cara mengaktifkan atau menonaktifkan fitur tertentu, dan cara menggunakan pengujian A/B untuk memahami solusi apa yang terbaik bagi pengguna Anda.

Terakhir, Anda akan melihat cara mengoptimalkan ukuran aplikasi dan cara menggunakan Android Studio sebagai alat pembuatan profil.

Setelah membaca bagian ini, Anda akan siap untuk menggunakan semua alat yang tersedia untuk meningkatkan kualitas aplikasi Anda.

Firebase adalah alat yang ampuh untuk mengelola aspek penting aplikasi Anda. Di sini, Anda akan melihat cara menggunakan Crashlytics untuk memantau kerusakan dan kesalahan. Kemudian, Anda akan melihat cara menggunakan Remote Config untuk mengontrol aplikasi Anda dari jarak jauh. Terakhir, Anda akan mempelajari cara menggunakan Test Lab untuk menguji aplikasi Anda di berbagai perangkat.


Saat Anda membangun aplikasi, mengimplementasikan fitur-fiturnya dan menjalankan pengujian saja tidak cukup. Anda juga perlu meluangkan waktu untuk meningkatkan kualitas aplikasi melalui pengoptimalan. Misalnya, mengurangi ukuran APK penting untuk mendukung perangkat lama dan pengguna dengan koneksi internet yang lambat. Dalam bab ini, Anda akan mempelajari cara mengoptimalkan aplikasi Anda sebelum dirilis.


Saat Anda menerapkan aplikasi atau mencoba memperbaiki bug, Anda memerlukan beberapa alat untuk memeriksa apa yang terjadi. Misalnya, Anda mengalami crash dan tidak tahu mengapa, atau Anda menerima informasi yang tidak valid dari jaringan dan perlu memeriksa data. Bab ini berisi semua yang perlu Anda ketahui tentang debugging, dari memori ke jaringan, dari penggunaan baterai hingga definisi UI dan banyak lagi.


Terkadang, aplikasi Anda bermasalah dan Anda tidak tahu alasannya. Untuk mengatasi masalah ini, Anda perlu melakukan penyelidikan mendalam, tidak hanya ke dalam kode Anda, tetapi juga ke dalam kode yang Anda impor dari perpustakaan pihak ketiga. Dalam kasus lain, masalahnya bukan pada kode, tetapi file atau database yang rusak. Dalam bab ini, Anda akan mempelajari cara memeriksa bytecode aplikasi Anda dan file yang digunakannya untuk menemukan bug dan masalah keamanan.


Pemrograman