Setiap kali Anda merilis aplikasi Android, setidaknya Anda akan memiliki gambaran kasar tentang aplikasi yang Anda inginkan. Show
Goal ini bisa sangat spesifik, seperti menghasilkan jumlah pendapatan iklan tertentu di kuartal pertama, atau bisa lebih umum, seperti mendapatkan peringkat tinggi di Google Play. Apa pun yang ada di daftar keinginan Anda, membuat aplikasi Anda di depan sebanyak mungkin pengguna, selalu akan tampil di suatu tempat di daftar itu - dan Android Instant Apps adalah fitur baru yang dapat membantu Anda melakukan hal itu. Instant Apps memberi Anda cara baru menjangkau pengguna yang saat ini tidak menginstal aplikasi Anda di perangkat mereka, dengan membuat aplikasi Anda dapat ditemukan dan dapat diakses dari lokasi manapun yang mendukung URL, termasuk email, hasil penelusuran Google, pos di media sosial Platform, komentar YouTube, dan forum. Intinya, Instant App memungkinkan Anda memisahkan setiap fitur aplikasi menjadi modul yang berdiri sendiri. Pengguna kemudian dapat memuat modul instant app berikut sesuai permintaan dengan klik URL yang telah dipetakan ke modul khusus ini, dan tanpa harus memasang aplikasi Anda kapan saja. Dalam rangkaian tiga bagian ini, saya akan menunjukkan kepada Anda bagaimana menambahkan Instant App support ke proyek Android Anda. Pada akhir seri ini, Anda akan membuat sebuah aplikasi yang terdiri dari dua modul feature Instant App terpisah, yang dapat Anda luncurkan dan uji pada perangkat Android yang kompatibel. Apa yang Kita Tuju pada CoverDalam posting pertama ini, saya akan fokus pada Instant Apps apa, bagaimana kinerjanya, dan mengapa Anda harus peduli terhadapnya. Untuk memberi Anda beberapa pengalaman langsung Instant Apps, kami akan menggunakan wizard pembuatan proyek Android Studio untuk membuat aplikasi yang telah dikonfigurasikan sebelumnya dengan dukungan Aplikasi Instan, sehingga Anda dapat melihat semua komponen Instant App yang berbeda, bukan Daripada hanya membaca tentang itu. Sambil membuat aplikasi yang sudah dikonfigurasi sebelumnya dengan InstanApp support adalah cara tercepat dan termudah untuk menggunakan fitur ini, ternyata Anda lebih cenderung menambahkan Instant App support ke proyek yang ada - jadi di bagian kedua saya akan menunjukkan kepada Anda bagaimana Untuk melakukan hal itu Saya akan menyediakan aplikasi yang dapat Anda download dari GitHub, dan kemudian membawa Anda melalui proses langkah-demi-langkah untuk mengonfigurasi ulang proyek ini untuk mendukung Instant Apps. Bagian terakhir dari teka-teki ini adalah menciptakan Aplikasi Instan multi-fitur, sehingga pada bagian ketiga saya akan menunjukkan kepada Anda bagaimana menambahkan modul feature kedua ke aplikasi Anda, dan bagaimana menggunakan Android App Links untuk memetakan modul ini ke URL yang berbeda. Apakah Instant Apps itu?Salah satu cara terbaik untuk mendeskripsikan Aplikasi Instan adalah dengan melihat contoh kapan Anda menggunakannya. Bayangkan seorang teman telah mengirimi Anda tautan ke video kucing yang mereka janjikan akan Anda sukai, namun saat Anda menklik tautan, menjadi jelas bahwa Anda perlu mengunduh aplikasi sebelum dapat menonton video ini. Terlepas dari apakah Anda akhirnya mendownload aplikasi, atau mengabaikan tautan dan berisiko kehilangan video kucing terbaik yang ditawarkan Internet, ini adalah pengalaman pengguna yang buruk - dan ini adalah skenario yang banyak pengguna Android kenal. Sebagian besar dari kita memiliki pengalaman menginstall aplikasi hanya untuk menyelesaikan tugas satu kali. Misalnya, Anda bisa mendownload aplikasi hanya untuk melihat lampiran email yang telah dikirim seseorang, untuk menyelesaikan pembelian di situs web tertentu, atau untuk melacak paket yang saat ini mengarah ke alamat Anda. Sekarang mari kita bayangkan skenario video kucing kita lagi, tapi kali ini pengembang aplikasi telah menempatkan semua kode dan sumber daya yang dibutuhkan untuk memutar konten video di dalam modul feature aplikasi instannya sendiri, dan memetakan modul ini ke URL www.example.com/video. Kali ini, saat Anda klik/mengetuk www.example.com/video/cat-video, Google Play mengetahui bahwa URL ini dikaitkan dengan modul aplikasi instan dan mengambil semua kode dan sumber daya yang Anda butuhkan untuk memutar video ini. Hasil akhirnya? Anda dapat menikmati 20 detik kucing yang bermain dalam kotak tanpa harus memasang apapun, yang merupakan pengalaman pengguna yang jauh lebih baik. Mengapa Saya Harus Mulai Menggunakan Fitur Aplikasi Instan?Seperti yang akan Anda lihat di posting berikutnya di seri ini, menambahkan Instant App support ke proyek yang sudah ada bisa menjadi proses yang menakutkan, yang seringkali mengharuskan Anda mengubah sepenuhnya cara penerapan aplikasi Anda. Karena restrukturisasi sebuah proyek bukanlah keputusan yang seharusnya Anda anggap enteng, pada bagian ini saya akan membantu Anda memutuskan apakah semua waktu dan usaha itu benar-benar layak dilakukan, dengan meliput semua manfaat utama menambahkan dukungan Instant App ke proyek Anda. :
Pembatasan dan KeterbatasanSebelum memulai perjalanan aplikasi instan kita, ada baiknya dicatat bahwa saat ini ada beberapa hal yang tidak dapat dilakukan aplikasi instan:
Selain itu, aplikasi Anda harus:
Akhirnya, jika aplikasi Anda merupakan bagian dari program yang Dirancang untuk Keluarga, Anda tidak dapat menawarkannya sebagai aplikasi instan. Menyiapkan Development Environment AndaSebelum Anda dapat membuat proyek pertama dengan dukungan aplikasi instan, Anda harus menginstal yang berikut atau yang lebih tinggi:
Anda juga harus memastikan bahwa Anda memiliki versi terbaru dari Android Support Library dan Android Repository, jadi buka Pengelola SDK Android Studio dan pasang pembaruan yang ada. Setelah menginstal semua hal di atas, Anda dapat mendownload Instant Apps Development SDK:
Saat ini, Anda hanya bisa menguji aplikasi instan di Nexus 5X, Nexus 6P, Pixel, Pixel XL, atau Galaxy S7 yang menjalankan Android 6.0 atau lebih tinggi. Namun, jika Anda tidak memiliki perangkat ini, Anda dapat membuat Perangkat Virtual Android (AVD) yang mengemulasi salah satu perangkat ini, dengan beberapa syarat: AVD harus menggunakan gambar x86, dan itu harus menyertakan API Google . Karena saya tidak memiliki perangkat ini, saya akan membuat AVD yang mengemulasi Pixel:
Terakhir, Anda harus masuk ke akun Google di AVD Anda:
Membuat Aplikasi Instan Pertama AndaDi Android Studio 3.0 Preview 1 dan yang lebih tinggi, membuat sebuah proyek yang memiliki dukungan built-in Instant App semudah memilih kotak centang, jadi alih-alih hanya menjelaskan fitur Instan, kita akan membuat proyek Aplikasi Instan dan kemudian menghabiskan waktu Sisa artikel ini mendapatkan beberapa pengalaman tangan pertama dengan berbagai komponennya. Sadarilah bahwa proyek ini tidak menampilkan Tautan Aplikasi apa pun, jadi Anda tidak dapat menguji komponen Aplikasi Instan pada AVD Anda (ini adalah sesuatu yang akan kami explor secara rinci di bagian kedua). Untuk membuat proyek Anda:
Segera, kita dapat melihat bahwa proyek ini terstruktur sangat berbeda dari proyek khas Android Anda, dan terdiri dari modul berikut:
Dengan pengecualian modul feature, setiap proyek yang mendukung aplikasi instan harus memiliki semua modul di atas, jadi mari kita jelajahi masing-masing modul ini secara rinci. 1. Modul AplikasiKonsep modul aplikasi mungkin bukan hal yang baru, namun bila proyek Anda mendukung aplikasi instan, modul manifest aplikasi terlihat lebih empuk daripada yang mungkin Anda gunakan: <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.jessicathornsby.myapplication.app" />Ada alasan mengapa file ini sangat kosong: saat Anda membangun proyek Anda, isi semua file Manifest lainnya yang terdapat di seluruh base feature dan modul feature digabungkan dengan file ini-jadi tidak akan tetap kosong selamanya! Jika Anda membuka file build.gradle modul ini, maka Anda akan melihat dua elemen baru: dependencies { implementation project(':feature') implementation project(':base') }Di sini, kami menyatakan bahwa modul aplikasi kami memiliki ketergantungan pada modul feature dan modul base. Bila Anda menambahkan Instant App support ke proyek, Anda memisahkan kode dan sumber terkait ke modul feature yang dapat berfungsi secara independen dari aplikasi yang dapat diinstal. Namun, modul ini masih merupakan bagian dari aplikasi yang dapat diinstal, bukan entitas terpisah, oleh karena itu modul aplikasi kami menyatakan fitur dan modul dasar sebagai dependensi. 2. Modul Base FeatureSetiap proyek aplikasi instan harus menyertakan modul feature base tunggal, yang berisi kode dan sumber daya yang digunakan di semua modul aplikasi Anda. Misalnya, jika Anda membuka map base/res/mipmap proyek kita, Anda akan melihat semua ikon launcher aplikasi, yang jelas akan digunakan di banyak modul. Karena berisi kode dan sumber umum, semua modul feature proyek Anda bergantung pada modul feature base ini. Melanjutkan tema ini, modul feature base berisi entri Manifest yang digunakan di keseluruhan proyek Anda. Misalnya, file base/src/main/AndroidManifest.xml proyek Anda berisi pengaturan untuk ikon, tema, dan label aplikasi Anda: <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.jessicathornsby.myapplication"> <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" android:theme="@style/AppTheme" /> </manifest>Unsur penting lainnya adalah modul base build.gradle file, yang berisi beberapa atribut baru: //All base feature and “regular” feature modules use the com.android.feature plugin, rather than the com.android.application plugin// apply plugin: 'com.android.feature' android { compileSdkVersion 26 buildToolsVersion "26.0.0" //Specify that this is the project’s one and only base feature, using the ‘baseFeature true’ expression// baseFeature true … … … dependencies { //Use ‘application project’ to add a dependency from the base feature module, to your project’s installable ‘app’ module// application project(':app') //Use ‘feature project’ to reference our project’s feature module, aptly named ‘feature’// feature project(':feature')Anda juga akan melihat bahwa file build.gradle khusus ini tidak memiliki atribut applicationID, dan (spoiler alert) Anda akan menemukan hal yang persis sama ketika kita kembali untuk memeriksa file build.gradle modul feature kita. Project kita ApplicationID dideklarasikan di file modul aplication build.gradle saja. Baris application project(:app) di file build.gradle modul base kita (lihat di atas) memastikan bahwa atribut single project applicationID disebarkan di semua file build.gradle kita, oleh karena itu atribut ini hilang dari project kita. 3. Modul FeatureKetika Anda akhirnya kembali untuk menambahkan Instant App Ssupport ke proyek yang ada, tugas terbesar Anda akan mengekstrak setiap fitur aplikasi Anda ke dalam modul feature miliknya sendiri, karena setiap modul feature berisi kode dan sumber daya/resource yang diperlukan untuk mengirimkan fitur ini saja. Jika Anda membuka modul feature proyek kita, Anda akan melihat bahwa itu berisi kelas MainActivity, plus file activity_main dan content_main - pada dasarnya semua komponen yang disertakan dalam template Basic Activity. Modul single feature dapat terdiri dari beberapa Activity, namun masing-masing modul harus memiliki setidaknya satu Activity yang ditetapkan sebagai modul entry-point Activity ini. Setiap entry-point Activity dipetakan ke URL tertentu, sehingga ketika pengguna klik URL ini, URL akan memuat Activity yang terkait dan pengguna memiliki akses ke modul feature khusus ini. Anda menunjuk entry-point Activity module melalui manifest modul itu. Intinya, Anda perlu membuka file ini dan menambahkan berikut ini ke Activity yang ingin Anda gunakan sebagai entry-point Anda:
Jika Anda membuka file modul manifest program kita, Anda akan melihat bahwa semua kode ini telah ditambahkan ke deklarasi MainActivity kita: File terakhir yang akan kita lihat di modul ini adalah file build.gradle, yang berisi beberapa baris kode penting: //Again, we’re using com.android.feature plugin, rather than com.android.application// apply plugin: 'com.android.feature' android { //As previously mentioned, this section is missing an ‘applicationID’ attribute// … … … dependencies { implementation fileTree(dir: 'libs', include: ['*.jar']) androidTestImplementation('com.android.support.test.espresso:espresso-core:2.2.2', { exclude group: 'com.android.support', module: 'support-annotations' }) //All feature modules have a dependency on the base feature module, which we’re declaring here// implementation project(':base') testImplementation 'junit:junit:4.12'Karena semua modul feature bergantung pada modul feature base, pertama kali pengguna meminta fitur apa pun dari aplikasi Anda, mereka akan menerima modul feature base beserta modul feature yang sebenarnya mereka coba akses. Perhatikan bahwa meskipun proyek khusus ini terdiri dari modul feature base dan modul feature, jika aplikasi Anda hanya memiliki satu fitur yang ingin Anda sediakan sebagai Aplikasi Instan, mungkin Anda membuat proyek yang hanya terdiri dari modul fitur dasar . Kita akan melihat kedua "type" proyek Aplikasi Instan sepanjang seri ini. 4. Modul Instant AppModul Instant App memiliki tujuan sederhana: ia bertindak sebagai wadah yang mengambil semua modul feature Anda dan mengubahnya menjadi APK Instant App. Jika Anda membuka modul Instant App ini, Anda akan melihat bahwa itu cukup kosong selain file build.gradle, yang cukup menyatakan modul feature base Anda dan modul feature Anda sebagai dependensi: apply plugin: 'com.android.instantapp' dependencies { implementation project(':feature') implementation project(':base') }Menguji Aplikasi AndaKarena proyek ini tidak berisi App Links, kita tidak dapat menguji komponen instant Appnya, namun kita tetap dapat menjalankan proyek ini sebagai aplikasi yang dapat diinstal. Ini mungkin tidak terlalu menarik, namun mengingat sebagian besar kode dan sumber proyek kita ada di modul instant App feature, penting untuk menguji bagaimana proyek kita berfungsi sebagai aplikasi yang dapat diinstal. Launch AVD yang telah kita buat sebelumnya atau hubungkan smartphone atau tablet Android fisik yang kompatibel ke mesin development Anda, lalu pilih Run> Run ...> app dari toolbar Android Studio. Terlepas dari kenyataan bahwa semua kode MainActivity kita terletak di modul feature, setelah aplikasi kita dimuat, Anda akan melihat tombol floating action MainActivity (FAB) dan pesan Hello World. Yangkita lihat di sini adalah modul aplikasi kita yang mengambil code dan resource yang terdapat di fitur aplikasi Instan dan modul feature base terpisah, dan menggabungkannya menjadi aplikasi yang dapat diinstal. KesimpulanDalam tutorial ini, kami melihat bagaimana Instant Apps bekerja, dan mengeksplorasi berbagai alasan mengapa Anda ingin menambahkan Instant App support ke proyek Android Anda. Dalam dunia yang ideal, keputusan Anda untuk mulai mengeksplorasi Instant Apps akan sangat sesuai dengan dimulainya proyek Android baru, namun sayangnya, karena pengembangan jarang mudah dilakukan! Kemungkinan besar Anda harus mengonfigurasi ulang proyek yang ada untuk mendukung Aplikasi Instan, yang tidak cukup dan semudah memilih kotak centang di wizard pembuatan proyek Android Studio! Di posting berikutnya, kita akan melihat secara mendalam bagaimana menambahkan instant app support ke project yang ada. Saya juga akan menunjukkan cara menerapkan Tautan Aplikasi, sehingga pada akhir posting berikutnya Anda telah membuat Aplikasi Instan yang berfungsi penuh yang dapat Anda luncurkan dan uji pada perangkat AVD atau Android yang kompatibel. Tetap disini! Dan sementara itu, lihat beberapa posting kami yang lain mengenai pengembangan aplikasi Android. |