Pendahuluan: ini bukan pertanyaan tentang cara menggunakan jenis dan rasa produk dalam aplikasi Android. Saya mengerti konsep dasar yang terlibat. Pertanyaan ini lebih lanjut tentang mencoba memahami konfigurasi mana yang harus ditentukan dalam tipe build, konfigurasi mana yang harus ditentukan dalam rasa produk, dan apakah perbedaan sebenarnya diperlukan.
Minggu ini, saya telah belajar lebih banyak tentang konfigurasi gradle untuk aplikasi Android. Awalnya saya pikir saya memiliki pegangan yang baik pada tipe build vs rasa produk, tetapi semakin dalam saya masuk ke dokumentasi semakin saya menyadari perbedaan antara keduanya tidak jelas bagi saya sama sekali.
Karena ada hierarki yang terdefinisi dengan baik (dalam arti bahwa properti yang ditentukan dalam tipe build lebih diutamakan daripada yang ditentukan dalam rasa produk), saya tidak mengerti mengapa ada kebutuhan untuk membedakan antara tipe build dan rasa produk sama sekali. Bukankah lebih baik menggabungkan semua properti dan metode menjadi objek DSL rasa produk, dan kemudian hanya memperlakukan jenis pembuatan sebagai dimensi rasa (default)?
Beberapa contoh nyata yang menyebabkan kebingungan saya:
The
signingConfig
properti dapat diatur dalam kedua jenis membangun dan rasa produk ... tapiminifyEnabled
(dan, saya berasumsi,shrinkResources
?) Hanya dapat dikonfigurasi dalam jenis membangun.applicationId
hanya bisa ditentukan dalam rasa produk ... danapplicationIdSuffix
hanya bisa ditentukan dalam tipe bangunan !?
Pertanyaan aktual :
Dengan contoh-contoh di atas: apakah ada perbedaan yang jelas antara peran tipe bangun vs cita rasa produk?
Jika demikian, apa cara terbaik untuk memahaminya?
Jika tidak, apakah rencana untuk akhirnya menggabungkan tipe dan citarasa produk ke dalam satu objek DSL yang dapat dikonfigurasi?
applicationId
, misalnya.