[go: up one dir, main page]

drive.web-frontend_20201202.00_p2 

Now in Android #31

Konten pengembangan Android modern, penyempurnaan dokumentasi, rilis AndroidX, artikel, dan episode podcast

Chet Haase
Chet Haase
16 Des · bacaan 9 menit

Selamat datang di Now in Android, panduan berkelanjutan tentang hal-hal baru dan penting dalam dunia development Android.

Development Android Modern

Gambar untuk posting

Dapatkan #MADScore Anda

Berkaitan dengan seri MAD Skills, kami ingin sedikit bergembira dan memberi Anda kesempatan untuk menjawab pertanyaan menarik: Seberapa MAD kamu? Untuk mengetahuinya, instal dan jalankan plugin MAD Scorecard di Android Studio. Kartu akan dibuat untuk Anda, yang menunjukkan seberapa bagus skor aplikasi dalam empat pilar development Android modern, yang bisa Anda bagikan ke Twitter dengan hashtag #MADscore .

Kunjungi situs MAD Score untuk mendapatkan detailnya, atau lihat selengkapnya di blog Christopher Katsaros:

MAD Skills: Komponen Desain Material

Sementara itu, seri MAD Skills terus berlanjut, dengan konten teknis tentang development Android modern. Minggu lalu, seri Komponen Desain Material selesai. Sejak Now in Android terakhir, tim sudah memposting 3 episode lagi:

#4: Material Motion
Di episode MDC keempat, Nick Rout berbicara tentang empat pola gerakan dalam Material dan cara menerapkannya dalam aplikasi Anda. Dia membahas aplikasi contoh Reply , dan codelab berdasarkan aplikasi tersebut, untuk menunjukkan cara kerjanya secara langsung.

#5 Tip Komunitas dari Zarah Dominguez
Di episode MDC kelima kami menghadirkan Zarah Dominguez, seorang Google Developer Expert, yang berbicara tentang cara timnya menggunakan aplikasi katalog Material, untuk melihat bagaimana segala sesuatunya diaplikasikan dan seperti apa kode sumbernya sebagai contoh cara menerapkannya.

#6: Tanya Jawab Langsung
Episode terakhir MDC adalah, sama seperti seri sebelumnya di App Bundle dan Navigasi, Tanya Jawab langsung dengan pakar MDC tentang hubungan developer dan tim teknis material. Kami mendapat banyak pertanyaan dari Anda di Twitter dan secara real-time di YouTube selama sesi Tanya Jawab. Kami tidak punya waktu untuk menjawab semuanya, tetapi kami membuat… progres material.

Jika Anda melewatkan salah satu konten dalam seri MDC, Nick Rout menulis ringkasan seri dalam artikel penutup ini, dengan link ke semua video dan artikel yang relevan, bersama dengan contoh terkait, dokumen, codelab, dan banyak lagi.

MAD Skills: Kotlin dan Jetpack

Minggu ini, ada seri MAD Skills baru tentang Kotlin dan Jetpack. Secara khusus, seri ini membahas cara menggunakan Kotlin bersama berbagai Jetpack API. Florina Muntenescu akan membahas:

#1: Menggunakan KTX
Episode pertama dalam seri ini adalah tentang menggunakan KTX, ekstensi Kotlin yang memberikan pendekatan lebih baik dan sederhana untuk berbagai platform dan library Jetpack. Florina membahas KTX secara umum, dengan contoh dalam platform dan Jetpack API, serta menunjukkan cara menggunakannya saat menggunakan LiveData dan ViewModel.

Atau dalam bentuk artikel:

#2: Menyederhanakan API dengan Coroutine
Di episode kedua ini, Manuel Vivo menjelaskan cara menggunakan coroutine Kotlin untuk meningkatkan pengalaman penggunaan API yang ada untuk developer Kotlin. Misalnya, Anda bisa membuat adaptor yang menyederhanakan kompleksitas callback tersarang dengan coroutine. Dia mengerjakannya melalui contoh pembuatan API yang lebih sederhana bagi Fused Location Provider untuk menunjukkan cara melakukannya dalam praktik.

Atau dalam bentuk artikel:

Nantikan episode Kotlin/Jetpack lainnya dalam beberapa minggu mendatang, yang akan muncul di playlist YouTube serta dalam bentuk artikel di publikasi Developer Android.

Untuk konten selanjutnya, pastikan memeriksa playlist MAD Skills di YouTube, artikel di Medium, atau halaman pendahuluan praktis ini yang akan menunjukkan semuanya.

Dokumentasi

Izin

Gambar untuk posting
Alur kerja tingkat tinggi untuk menggunakan izin di Android

Ada beberapa perubahan izin dalam beberapa rilis terakhir, seiring dengan fokus kami pada kontrol pengguna dan transparansi data pengguna. Terkadang, developer harus bekerja ekstra untuk mengikuti update dan perubahan perilaku terkini, jadi kami mengerjakan dokumentasi untuk membantu proses tersebut.

Sebagai bagian dari upaya ini, baru-baru ini kami melakukan beberapa peningkatan besar untuk panduan Izin di Android. Situs ini sekarang memberikan panduan yang lebih efisien tentang cara kerja izin, bersama dengan praktik terbaik penggunaan izin di aplikasi Anda. Secara khusus, Anda harus mengevaluasi apakah Anda benar-benar perlu mendeklarasikan izin, yang tidak diperlukan untuk banyak kasus penggunaan umum.

DAO Room

Beberapa panduan library Room dirombak untuk menjelaskan cara menggunakan beberapa aspek API:

Penggunaan Data Access Objects (DAO) dengan Room memberikan ringkasan tentang penggunaan antarmuka DAO, termasuk menggunakan metode kueri bawaan serta metode khusus yang menggunakan anotasi @Query .

Menulis kueri DAO asinkron membahas banyak detail tentang cara menulis kueri yang terjadi di luar thread UI, yang sangat diperlukan untuk interaksi database. Panduan ini menjelaskan beberapa alternatif yang bisa Anda gunakan, tergantung bahasa dan preferensi API asinkron Anda.

AndroidX

Di antara banyak rilis versi alfa, beta, dan RC terbaru dari berbagai library AndroidX, berikut ini adalah rilis yang stabil:

  • Browser 1.3.0: Rilis terbaru ini memperkenalkan kemampuan meneruskan perintah bentuk bebas dengan Trusted Web Activity API, bersama fitur lain seperti peningkatan pengaturan warna pada tab khusus.
  • Media2 1.1.0: Rilis ini memiliki banyak perbaikan bug, bersama API tambahan untuk menangani track media dan interop dengan library Media AndroidX.
  • WearInput 1.0.0: Versi pertama WearInput ini menghadirkan dukungan untuk WearableButtons ke library AndroidX.

Ada juga beberapa rilis perbaikan bug stabil, termasuk Exifinterface 1.3.2Media 1.2.1, dan Navigation 2.3.2.

Android Studio

Gambar untuk posting

Jamal Eason memposting artikel yang mengumumkan rilis Android Studio berikutnya: Arctic Fox sekarang ada di saluran canary dan siap dicoba. Hal pertama yang perlu Anda perhatikan tentang rilis ini adalah skema penamaan dan pembuatan versi baru, yang dibahas artikel ini secara detail. Selain itu, beberapa hal yang perlu diperiksa dalam rilis ini meliputi UI untuk memasangkan dengan perangkat untuk proses debug wifi (saat ini hanya tersedia untuk MacOS), alat validasi layout, dan dukungan berkelanjutan untuk development Jetpack Compose. (Perhatikan, bahwa harus selalu menggunakan Studio versi canary untuk bekerja dengan Compose dalam kondisnya yang masih sangat-dini ini.)

Murat Yener juga memposting tentang hal-hal baru di Android Studio, dalam artikelnya tentang rilis alfa baru dari plugin Android Gradle, versi 7.0.0-alpha01. Perhatikan, AGP juga mengalami perubahan penamaan versi. AGP sekarang akan melacak versi rilis Gradle alih-alih dihubungkan dengan versi Android Studio. Yang menjelaskan mengapa sepertinya versi ini melewatkan atau melupakan beberapa versi sejak rilis 4.2. Artikel ini juga membahas tentang beberapa perubahan API terbaru di AGP 4.2.

Artikel & Video

ListAdapter

Meghan Mehta memposting artikel lain dalam serialnya tentang RecyclerView. Meskipun RecyclerView bukanlah hal baru (dan sebagian besar developer Android mungkin sudah menggunakannya di aplikasi mereka), kami menemukan bahwa dokumentasi dan contoh untuk beberapa hal fundamental cukup sulit ditemukan (setidaknya di dokumen dan artikel kami), jadi ia mencoba menjelaskan cara menggunakan beberapa hal fundamental ini, bersama kode contoh untuk menunjukkan cara melakukannya dalam praktik.

Di artikel terbaru ini, Meghan berbicara secara khusus tentang penggunaan ListAdapter, yang menyediakan cara termudah untuk mendapatkan beberapa fungsi luar biasa untuk RecyclerView Anda, termasuk kinerja yang lebih baik dan animasi item otomatis. ListAdapter menggunakan DiffUtil untuk menentukan perubahan khusus yang terjadi, yang dibutuhkan RecyclerView untuk kinerja dan animasi yang optimal.

Kinerja

Saya melanjutkan penjelajahan ke dalam kinerja startup dengan seri dua bagian di App Startup, library AndroidX yang baru saja mencapai 1.0 . Bagian satu mengamati bagaimana penyedia konten sering digunakan untuk membuat instance library, dan bagaimana hal ini bisa menyebabkan dampak tersembunyi terhadap waktu startup aplikasi.

Bagian 2 menyelidiki bagaimana menggunakan library App Startup untuk menghapus penyedia konten tersembunyi dan sebagai gantinya mengumpulkan permintaan untuk menginisialisasi library dengan mudah.

Lokasi, Lokasi, Lokasi [GPS yang Lebih Baik]

Ada sebuah artikel di Blog Developer Android yang memerinci peningkatan yang telah kami tambahkan ke sistem lokasi dan API sehingga kami bisa mendapatkan informasi lokasi yang lebih akurat di kota-kota. Artikel ini membahas masalah mendapatkan lokasi GPS di kota, ketika asumsi default teknologi GPS saat ini yang menggunakan garis pandang tertipu saat sinyal tersebut dipantulkan oleh gedung-gedung tinggi. (Tor dan saya berbicara dengan Marc Stogaitis dari tim lokasi tentang hal ini dalam podcast ADB pada tahun 2014: fenomena ini disebut “urban canyons”).

Tim mengintegrasikan model bangunan 3D di kota-kota besar untuk mendapatkan hasil lokasi yang jauh lebih akurat. Versi 2 dari teknologi ini tersedia pada beberapa perangkat Pixel saat ini. Versi sebelumnya sudah tersedia untuk ekosistem yang lebih luas, dan versi terbaru ini juga akan tersedia awal tahun depan.

Tentu saja, semua ini adalah fitur pengguna, sedangkan Now in Android adalah untuk developer. Namun saya ingin menyebutnya di sini karena (a) menurut saya artikel dan teknologinya menarik dan (b) ada panggilan developer di sini, yaitu menggunakan Fused Location Provider (FLP) untuk mendapatkan akses data lokasi yang disempurnakan.

Selain itu, terdapat API baru di FLP sehingga Anda bisa mendapatkan informasi lokasi saat ini dengan lebih mudah cukup dengan meminta lokasi saat ini dan mendapatkan hasilnya vs. berlangganan perubahan lokasi terus-menerus dan kemudian berhenti berlangganan setelah Anda mendapatkan hasil pertama. Lihat dokumen FLP getCurrentLocation() APIcontoh CurrentLocationKotlin baru, dan artikel untuk informasi selengkapnya.

Migrasi Jetpack Compose

Chris Banes telah memindahkan aplikasinya Tivi dari aplikasi yang menggunakan Toolkit UI ke aplikasi yang menggunakan Jetpack Compose. Ia sudah menyelesaikan sebagian besar migrasi itu, dengan seluruh UI sekarang ditulis dalam Compose, dan melaporkan beberapa hasil menarik mengenai ukuran APK (yang jauh lebih kecil!), jumlah metode (yang lebih kecil!), dan durasi build (yang sedikit lebih kecil!).

CameraController di CameraX

CameraView API di CameraX berbuat terlalu banyak, menangani UI dan logika pengontrol. Sehingga logika tersebut telah direfaktorisasi menjadi PreviewView dan class CameraController baru. Artikel ini menjelaskan cara menggunakan CameraController, dan bagaimana fungsionalitas tersebut dibandingkan dengan apa yang mungkin telah Anda gunakan sebelumnya di CameraView.

Episode Podcast

Gambar untuk posting

Ada episode lain dari Android Developers Backstage yang diposting sejak Now in Android terakhir. Lihatlah pada link di bawah ini, atau di klien podcast favorit Anda:

ADB 153: Ok, Ok, Ok

Romain GuyTor Norbye dan saya berbicara dengan Jesse Wilson dari Square tentang beberapa library open-source populer yang dia kerjakan, antara lain OkHttp, Okio, dan [Ok]Moshi. Kami berbicara tentang library ini dan hal-hal lainnya, serta tentang Android, library, framework, dan pengembangan Kotlin. Dan tentang kebiasaan buruk beberapa programmer mengubah permintaan fitur atau gangguan kecil menjadi project pembuatan library open-source baru.

Nah sekarang…

Sekian untuk kali ini. Dapatkan MAD scorecard Anda! Jadilah MAD untuk mendapatkan konten MDC dan Kotlin/Jetpack lainnya! Baca dokumentasi Izin dan Ruang terbaru! Download rilis stabil AndroidX terbaru! Baca artikel terbaru mengenai ListAdapterkinerja startuplokasi GPS yang ditingkatkanmigrasi Jetpack Compose, dan CameraController! Dengarkan podcast ADB terbaru dan segera kembali ke sini untuk mendapatkan update berikutnya dari dunia developer Android.



Now in Android #30

Ilustrasi oleh Virginia Poltrack

App Bundle, Komponen Desain Material, persyaratan API Target baru, dokumen alur dan fragmen baru, serta sejumlah artikel dan video

Selamat datang di Now in Android, panduan berkelanjutan Anda tentang apa yang baru dan penting dalam dunia development Android.

MAD Skills: App Bundle & Komponen Desain Material

Seri MAD Skills terus berlanjut, dengan konten teknis baru tentang development Android modern.

Seri tentang App Bundle diakhiri dengan tip dari Google Developer Expert Angelica Oliveira dan Tanya Jawab langsung + rekaman dengan saya (bertanya) plus Ben Weiss, Wojtek Kaliciński, dan Iurii Makhno (yang akan menjawabnya). Anda bisa menemukan semua episode App Bundle (dalam bentuk video dan artikel) yang ditautkan di blog ringkasan:

MAD Skills - Menjadi pakar Android App Bundle

Pekan lalu, MAD Skills melanjutkan seri barunya tentang Komponen Desain Material, library yang menyederhanakan pembangunan aplikasi menggunakan panduan Desain Material.

Yang pertama adalah episode dari Nick Butcher tentang alasan kami menyarankan developer Android menggunakan Komponen Desain Material. Video ini menyertakan ringkasan berbagai hal yang ditawarkan MDC, termasuk dukungan tema, transisi bawaan, dan komponen bergaya Material default:

Konten ini juga dibahas dalam artikel sebelumnya:

Kami Merekomendasikan Komponen Desain Material

Berikutnya, Nick Rout memposting sebuah episode mengenai Tema Material, yang membahas project contoh MaterialThemeBuilder untuk menunjukkan kepada Anda cara menggunakan dan menyesuaikan tema material:

Selain video, Anda juga bisa melihat artikel terbaru tentang tema MDC mengenai warna, tipografi, dan bentuk.

Pekan ini, Chris Banes memposting episode ketiga tentang pembuatan tema gelap dengan MDC menggunakan fitur Force Dark Android 10 dan tema DayNight MDC.

Chris juga baru saja memublikasikan konten ini dalam bentuk artikel:

Dark Theme with MDC

Kami punya banyak konten MDC yang hadir pekan ini, plus sesi Tanya Jawab langsung lain yang akan berlangsung Kamis depan. Nantikan informasi selanjutnya tentang playlist MDC untuk detailnya.

Untuk konten MAD yang berkelanjutan, pastikan memeriksa playlist MAD Skills di YouTube, artikel di Medium, atau halaman pendahuluan praktis ini yang akan menunjukkan semuanya.

App Bundle dan Persyaratan API Target

Akan ada persyaratan untuk API target (bagi aplikasi baru dan update) serta App Bundle pada akhir 2021. Hoi Lam membuat entri blog dengan semua detailnya. Ringkasan:

Agustus 2021:

  • Aplikasi baru harus menargetkan API level 30.
  • Aplikasi baru harus menggunakan App Bundle untuk memublikasikan ke Play Store.
  • Aplikasi baru dengan ukuran aset atau fitur lebih dari 150MB harus mengirimkannya melalui Play Asset Delivery dan/atau Play Feature Delivery. File ekspansi (OBB) tidak lagi didukung untuk aplikasi baru.

November, 2021:

  • Update aplikasi harus menargetkan API level 30.

Android App Bundle baru dan persyaratan level API target tahun 2021

Dokumentasi

Dokumen Terfragmentasi

Fragment menyediakan elemen arsitektur penting bagi developer UI, ia memungkinkan Anda mengelola potongan kecil UI aplikasi secara terpisah. Ketika Anda menggunakan Navigasi dengan fragmen atau menggunakan fragmennya sendiri, sebaiknya ketahui cara terbaik menggunakannya dalam aplikasi. Kami tahu betapa pentingnya dokumentasi terbaru dan menyeluruh untuk memahami cara menggunakan alat dan API. Meskipun API yang tidak digunakan lagi memberi tahu Anda apa yang harus dihindari, dokumentasilah yang seharusnya memandu Anda ke arah yang benar dan menjelaskan praktik terbaiknya.

Jadi, tim ini secara substansial telah menulis ulang dokumentasi Fragment, menawarkan panduan terbaru yang lebih jelas tentang beragam aspek Fragment, termasuk daur hidup, keadaan, pengujian, dan banyak lagi. Lihat dokumen terbaru (termasuk subbagian yang ditautkan di bawah) di sini:

Fragment | Developer Android

Ian Lake, yang telah memperbaiki dan menyempurnakan Fragment di AndroidX, menjelaskan perubahan dokumen ini di feed twitter-nya.

Alur Kotlin

Ada juga serangkaian dokumentasi baru tentang alur Kotlin, beserta informasi tentang segala hal, mulai dari dasar-dasar penggunaan alur hingga pengujian untuk API StateFlow dan SharedFlow baru. Pastikan juga melihat video tentang penggunaan alur (yang akan saya bahas di bawah).

Alur Kotlin | Developer Android

Artikel & Video

Menguji Kinerja Startup

Pekan lalu saya memposting artikel tentang cara mengotomatiskan beberapa aspek kinerja startup aplikasi. Saya telah melihat kinerja startup secara umum, dan ingin menemukan cara otomatis yang bagus guna mendapatkan durasi startup untuk banyak proses yang berjalan berurutan. Saya memublikasikan pendekatan untuk siapa saja yang juga tertarik dengan pengujian kinerja startup.

Menguji Kinerja Startup Aplikasi

Dagger -> Hilt

Dalam artikelnya, Migrasi dari Dagger ke Hilt, Manuel Vivo mengajukan pertanyaan, “Apakah ini sepadan?” (Peringatan spoiler: “Mungkin saja… tetapi itu tergantung situasi Anda.”)

Artikel ini membahas beberapa alasan penting untuk mempertimbangkan migrasi, termasuk pengujian API, konsistensi, dan integrasi dengan ekstensi AndroidX.

Migrasi dari Dagger ke Hilt — Apakah ini sepadan?

Memulai Hilt

Berbicara tentang Hilt, Filip Stanis memposting artikel ini untuk membantu developer memulai dengan Hilt, bahkan mereka yang tidak memiliki pengalaman sebelumnya dengan Dependency Injection atau Dagger. Jadi jika semua ini terasa baru bagi Anda, bacalah terus.

Meskipun judulnya menyiratkan bahwa artikel ini ditujukan untuk developer Kotlin, ini sebenarnya berisi tentang cuplikan kode dalam artikel tersebut. Teknik dan pendekatan umum dalam artikel ini juga berlaku untuk developer yang menggunakan bahasa pemrograman Java.

Panduan praktis untuk Hilt dengan Kotlin

Mengikuti Alur

Manuel Vivo memposting video baru dalam seri Kotlin Vocabulary yang membahas penggunaan alur Kotlin untuk melakukan streaming data. Ini dibuat berdasarkan video sebelumnya, The ABC of Coroutines, jadi kami sarankan Anda menonton video pertama dahulu untuk… mengikuti alur.

Ekstensi Kotlin: Pengikatan Tampilan vs Sintetis

David Winer memublikasikan blog yang membahas Sintetis Kotlin serta Pengikatan Tampilan (keduanya merupakan mekanisme untuk menghilangkan panggilan findViewById() yang mengganggu dalam kode Anda). Artikel ini menunjukkan bahwa synthetics tidak akan digunakan lagi di versi plugin Kotlin mendatang (untuk alasan yang dijelaskan dalam artikel). Bagian ini juga membahas ekstensi @Parcelize, yang akan terus direkomendasikan dan didukung.

Masa depan Android Kotlin Extensions

Lokasi Latar Belakang

Banyak perubahan dalam rilis Android terbaru untuk melindungi data pengguna dan memberikan pengguna lebih banyak kontrol dan transparansi dalam cara mengakses data. Salah satu area fokus utama adalah lokasi, karena pengguna mungkin tidak menginginkan aplikasi memiliki akses ke data ini, dan mereka mungkin ingin mengontrol akses tersebut dengan sangat hati-hati.

Karena itu, kebijakan Google Play akan segera mengharuskan aplikasi yang membutuhkan akses ke lokasi saat berjalan di latar belakang meminta izin (dari Play Store) untuk akses tersebut. Artikel ini akan menjelaskan proses permintaan izinnya.

Tip agar aplikasi Anda disetujui untuk akses lokasi latar belakang

Nah sekarang…

Itu saja untuk saat ini. Silakan nikmati MAD untuk App Bundle dan Komponen Desain Material! Lihat persyaratan tahun depan untuk App Bundle dan API Target! Baca dokumen terbaru tentang Fragment dan alur Kotlin! Lihat konten developer terbaru di publikasi Developer Android di Medium, Blog Developer Android, dan saluran Developer Android di YouTube! Dan segera kembali ke sini untuk mendapatkan update berikutnya dari dunia developer Android.



Sederhanakan pembuatan pipeline data untuk media dengan Klio Spotify

Setiap hari, layanan streaming musik Spotify dapat memproses file audio dengan ratusan cara berbeda—mengidentifikasi ritme dan tempo lagu, membuat stempel waktu ketukan, dan mengukur kenyaringan—serta pemrosesan yang lebih canggih, seperti mendeteksi bahasa dan memisahkan vokal dari instrumen. Ini mungkin dilakukan untuk mengembangkan fitur baru, membantu menginformasikan playlist dan rekomendasi, atau murni untuk penelitian.

Melakukan pemrosesan semacam ini pada satu file audio sangat berarti. Namun, library musik Spotify memiliki lebih dari 60 juta lagu, dan bertambah 40.000 lagu setiap hari, belum termasuk katalog podcast yang berkembang pesat. Kemudian, perhitungkan juga bahwa ratusan tim produk memproses semua lagu ini secara bersamaan, di seluruh dunia, dan untuk kasus penggunaan yang berbeda. Skala dan kompleksitas ini—ditambah, kesulitan menangani file biner besar sejak awal—bisa menghambat kolaborasi dan efisiensi, sehingga pengembangan produk terhenti. Kecuali jika Anda memiliki Klio.

Apa yang dimaksud dengan Klio?

Untuk memproduksi pemrosesan audio, Spotify membuat Klio—framework berbasis Apache Beam untuk Python yang membantu peneliti dan programmer menjalankan pipeline data berskala besar untuk memproses file audio dan media lainnya (seperti video dan gambar). Spotify awalnya membuat Klio setelah menyadari bahwa peneliti ML dan audio di seluruh perusahaan melakukan tugas pemrosesan audio yang serupa, tetapi menemui kesulitan untuk men-deploy dan memeliharanya. Spotify melihat peluang untuk membuat proses yang fleksibel dan terkelola yang akan mendukung berbagai kasus penggunaan pemrosesan audio dari waktu ke waktu—secara efisien dan dalam skala besar—serta mudah digunakan.

Di tingkat tinggi, Klio memungkinkan pengguna menyediakan file media sebagai input, melakukan pemrosesan yang diperlukan, dan menghasilkan data serta fitur cerdas. Ada banyak kemungkinan kasus penggunaan untuk audio, mulai dari menstandardkan tugas pemrosesan audio biasa dengan ffmpeg atau librosa hingga menjalankan model machine learning khusus.

Klio menyederhanakan dan menstandardkan pembuatan pipeline untuk tugas-tugas ini, meningkatkan efisiensi, dan memfokuskan pengguna pada tujuan bisnis daripada memelihara infrastruktur pemrosesan. Sekarang Klio telah dirilis sebagai sumber terbuka, siapa pun bisa menggunakan framework ini untuk membangun alur kerja pemrosesan media yang dapat diskalakan dan efisien.

Bagaimana cara kerja Klio?

Klio job overview.jpg
Ringkasan tugas Klio

Saat ini Klio mungkinkan beberapa langkah penting untuk membuat pipeline yang diinginkan. Pertama, Klio mengasumsikan bahwa pipeline akan menerima file biner besar sebagai input. Ini bisa berupa audio, gambar, atau video. File ini disimpan di Cloud Storage. Sebagai bagian darinya, tugas mengirimkan pesan unik ke Pub/Sub, yang mengumumkan bahwa file telah di-upload. Klio kemudian membaca pesan ini dan men-download file untuk memulai pemrosesan. Pada langkah ini, Klio bisa mulai menjalankan logika yang diperlukan secara cerdas untuk memproses hasil yang diinginkan untuk kasus penggunaan tertentu, seperti ekstraksi bahasa. Setelah pemrosesan selesai, artefak outputnya di-upload ke bucket Cloud Storage lain untuk disimpan. Orkestrasi pipeline secara keseluruhan dilakukan oleh Apache Beam, yang memungkinkan antarmuka Python tradisional untuk pengguna ML/audio dan eksekusi pipeline tradisional.

Salah satu keunggulan utama Klio adalah dukungannya untuk Directed Acyclic Graphs (DAG), yang memungkinkan pengguna mengonfigurasi tugas dependen dan urutan eksekusinya sehingga tugas induk bisa memicu tugas turunannya.

directed acyclic graphs.jpg

Dalam contoh ini, ada tiga tim yang semuanya mengandalkan tugas induk yang sama secara keseluruhan, yang disebut Downsample. Downsampling ini menyesuaikan jumlah sampel dalam file audio untuk mengompresi file ke tingkat tertentu yang mungkin diperlukan untuk tugas selanjutnya. Hasilnya, sekarang tugas Tim A, B, dan C bisa mulai meluncurkan pemrosesan yang mereka butuhkan. Tugas ini mungkin mendeteksi “vokal” atau jumlah kata yang diucapkan, “instrumental” atau ketiadaan vokal, dan banyak lagi.

Fitur utama Klio yang lain adalah kemampuannya mengoptimalkan urutan eksekusi. Menjalankan tugas Klio dalam grafik untuk file tertentu tidaklah selalu efisien atau diperlukan. Mungkin Anda ingin melakukan iterasi tugas sendiri tanpa memicu tugas yang setara atau tugas hilir. Atau Anda memiliki subset katalog media yang memerlukan beberapa pemrosesan pengisian ulang. Terkadang ini berarti menjalankan tugas Klio induk untuk mengisi dependensi yang hilang. Karena itu, Klio mendukung pemrosesan bottom-up saat dibutuhkan, seperti ini:

optimize the order of execution.gif

Pertama-tama tugas Klio akan memeriksa untuk melihat apakah pekerjaan untuk file tertentu telah diproses. Jika telah diproses, pekerjaan untuk tugas tersebut akan dilewati. Namun, jika data input tugas tidak tersedia (yaitu, jika tugas Energy tidak memiliki output dari tugas Beat Tracking untuk audio tertentu), Klio secara rekursif akan memicu tugas dalam barisan langsung eksekusinya tanpa memicu pekerjaan untuk tugas yang setara.

Bagaimana pengembangan Klio selanjutnya?

Rilis awal Klio ini merepresentasikan dua tahun pembangunan, pengujian, dan aplikasi praktik oleh berbagai tim di Spotify. Sejak awal, Klio dibuat dengan berorientasi pada sumber terbuka.

Dengan keseluruhan arsitektur ini, pengguna bebas menambahkan kustomisasi khusus untuk memenuhi kebutuhan mereka. Klio bersifat cloud-agnostik, yang berarti bahwa Klio bisa mendukung berbagai runner, baik secara lokal maupun cloud. Dalam kasus Spotify, ini berarti Google Cloud, menggunakan Apache Beam untuk memanggil Dataflow Runner. Namun hal ini juga bisa diperluas ke runner lain. Jika Anda tertarik berkontribusi, mereka akan menyambut setiap kolaborasi dengan komunitas sumber terbuka.

Meskipun pada awalnya dibuat untuk audio, Klio mampu melayani semua tipe media. Di Spotify, Klio telah meraih kesuksesan dalam berbagai kasus penggunaan internal. Secara khusus, Klio memisahkan vokal dan instrumen untuk mengaktifkan fungsionalitas Sing Along di Jepang serta atribut audio umum sidik jari, seperti “danceability” dan “tempo,” di Audio Features API mereka. Berdasarkan kesuksesan awal dari kasus penggunaan ini, akan sangat menarik bila melihat masalah pemrosesan media lainnya yang bisa dipecahkan oleh Klio, baik dengan mengaktifkan moderasi konten skala besar maupun melakukan deteksi objek dalam streaming video berukuran besar.

Cara memulai

Untuk mempelajari lebih lanjut, baca kisah Klio selengkapnya di blog Spotify Engineering. Atau bergabunglah dan memulai Klio sekarang.

MAD Skills — Menjadi pakar Android App Bundle

MAD Skills — Menjadi pakar Android App Bundle

23 November 2020

Diposting oleh Ben Weiss, Developer Relations Engineer

Gambar Android

Seri Android App Bundle dari Modern Android Development baru saja selesai. Kami mengakhirinya dengan sesi Tanya Jawab langsung. Saya bergabung dengan Chet HaaseWojtek KaliciÅ„ski, dan Iurii Makhno untuk membahas berbagai pertanyaan dari tagar #AskAndroid di Twitter serta dari obrolan selama streaming langsung.

Namun, mari kita mengulasnya sebentar dari awal.

Pengantar Android App Bundle

Dalam episode tersendiri, Wojtek menyoroti seri ini dengan berbicara tentang mengapa bundel aplikasi sangatlah penting bagi Anda dan aplikasi Anda.

Semua yang perlu diketahui tentang Play App Signing

Dalam episode ini, Anda akan mempelajari cara ikut serta dalam Play App Signing dengan bergabung bersama Wojtek menyusuri Konsol Play. Setelah menonton video ini, Anda akan mempelajari opsi yang tersedia saat memilih Play App Signing.

Selain video ini, kami sarankan Anda melihat FAQ tentang Play App Signingdokumentasi penandatanganan aplikasi Android , dan halaman bantuan Play App Signing di Konsol Play.

Membangun bundel aplikasi pertama Anda

Sekarang saatnya mempelajari cara membangun dan meng-upload Android App Bundle pertama Anda.

Dalam episode ini, saya akan memandu Anda menjalani proses pembangunan bundel menggunakan Android Studio dan antarmuka baris perintah.

Sebagai gantinya, Anda bisa membaca tulisan mengenai episode ini.

Sebagai pendamping episode ini, lihat dokumentasi bundel aplikasi.

Mengonfigurasi aplikasi Anda untuk Play Feature Delivery

Di sini Anda akan mempelajari tentang opsi pengiriman. Dari waktu instal, pengiriman bersyarat, hingga pengiriman sesuai permintaan. Saya membahas semuanya. Kita juga akan melihat-lihat contoh di GitHub.

Episode ini juga tersedia dalam bentuk artikel yang bisa Anda baca. Selain itu, panduan PlayCore adalah referensi berharga.

Menguji bundel aplikasi dengan bundletool dan Konsol Play

Pernahkah Anda bertanya-tanya bagaimana cara menguji bundel aplikasi? Tidak perlu lagi. Wojtek akan memandu Anda menguji bundel aplikasi secara lokal dan dengan Konsol Play.

Anda bisa membaca materi episode ini dalam artikel pendamping dan panduan untuk menguji Android App Bundle.

Selain itu, kami punya panduan tentang alat developer di Konsol Play dan halaman bantuan Konsol Play untuk berbagi aplikasi secara internal yang tersedia bagi Anda.

Dan, jika Anda ingin mendownload bundletool, di sinilah tempatnya.

Penghematan besar dengan Android App Bundle

Android GDE Angélica Oliveira memberi tahu kita tentang proses dan penghematan ukuran yang mengesankan bagi perusahaannya saat beralih ke Android App Bundle.

Sesi Tanya Jawab langsung

Kami mengajukan pertanyaan Anda di Twitter. Anda membalasnya menggunakan tagar #AskAndroid.

Dan Anda terus mengajukan pertanyaan selama sesi Tanya Jawab langsung.

Chet kemudian menghadirkan Wojtek, Iurii, dan saya di depan kamera dalam sesi tanya jawab langsung untuk menjawab pertanyaan Anda.

Pengingat: Aplikasi baru wajib menggunakan bundel aplikasi mulai Agustus 2021

Baca selengkapnya tentang persyaratan bundel aplikasi dan level API minimum 2021

[GPD MED] Churn: Membangun dan mengoptimalkan strategi yang efektif

Churn: bertindaklah sebelum terlambat

Audience aplikasi bisa dibagi menjadi 3 kelompok dasar: audience yang tidak aktif berinteraksi (tertarik dengan strategi akuisisi), audience yang sering berinteraksi (didorong oleh strategi retensi), dan audience yang semakin jarang berinteraksi (teralihkan oleh strategi churn). Karena semuanya melibatkan strategi berbeda, sangatlah masuk akal bila menganggap akuisisi, retensi, dan churn sebagai area yang sepenuhnya berbeda - tetapi memberantas churn sering kali diabaikan, baik karena dianggap akan berkurang seiring dengan peningkatan akuisisi, atau terselesaikan dengan meningkatkan retensi pengguna yang berinteraksi.

Dalam artikel sebelumnya [LINK], kami membahas bagaimana developer bisa menyiapkan strategi retensi yang efektif, strategi yang bertujuan untuk meningkatkan kemungkinan mempertahankan pengguna yang berinteraksi (Anda juga dapat melihat laporan lengkap yang membahasnya dengan lebih detail). Namun betapa pun hebatnya strategi dan aplikasi Anda, beberapa pengguna tetap akan churn.

Pengguna yang churn dikaitkan dengan kerugian bagi perusahaan karena kehilangan pendapatan potensial yang jelas. Jika pengguna churn lebih awal, biaya akuisisi pengguna tersebut akan hilang seluruhnya, dan meskipun kita bisa menarik kembali pengguna yang churn, upaya ini mungkin lebih banyak memakan biaya dan waktu daripada mendapatkan pengguna baru.

Karena itu, daripada mencoba menarik kembali pengguna - proses ini mengharuskan kita membereskan semua masalah yang menyebabkan mereka dahulu churn - jauh lebih baik bila kita bisa melakukan sesuatu terlebih dahulu untuk mencegah pengguna pergi.

Bagaimana kita bisa bertindak sebelum terlambat?

Tetapkan prediktor churn yang jelas

Mencegah churn berarti bertindak sebelum terjadi dengan membuat sistem peringatan yang memungkinkan Anda mengidentifikasi sinyal churn dan bertindak lebih awal. Pengguna tidak berhenti menggunakan aplikasi secara tiba-tiba - sebelum melakukan churn, cara mereka berinteraksi dengan aplikasi akan mulai berubah secara terukur dan dapat diidentifikasi. Untuk mengidentifikasi tanda bahaya ini, perhatikan data Anda dan lihat perilaku yang ditunjukkan oleh pengguna yang melakukan churn:

  • Titik churn: Periksa berapa lama pengguna biasanya tidak aktif sebelum melakukan churn. Lihat pengguna yang churn dan data interaksi mereka sebelumnya untuk mengidentifikasi setiap pola yang relevan dengan aplikasi Anda.
  • Perubahan pola interaksi: Interaksi kemungkinan akan mulai menurun frekuensi dan durasinya sebelum melakukan churn. Pola lain yang umumnya menunjukkan churn adalah interaksi yang dangkal, waktu sesi yang lebih singkat, menghindari fitur inti, atau melihat halaman ‘cara membatalkan’.
  • Tingkat churn: Sangatlah penting untuk melihat tingkat penurunan interaksi. Penurunan penggunaan yang tiba-tiba memerlukan respons cepat sebagai solusi terhadap penurunan tersebut, sementara penurunan bertahap bisa ditangani dalam jangka waktu yang lebih panjang.

Quickbooks menggunakan pemodelan terperinci untuk mendekonstruksi perilaku pengguna yang baru saja melakukan churn. Mereka membuat ‘profil risiko pengguna’ yang menyoroti perilaku mana yang berkorelasi dengan kemungkinan churn tinggi.

Profil ini terdiri dari 200 hingga 300 perilaku dalam aplikasi terpisah, termasuk kurangnya interaksi dengan fitur, jumlah hari tidak aktif, dan kegagalan mencapai metrik north star. Untuk mempelajari lebih lanjut tentang cara mengaturnya, lihat artikel ini

Melakukan post-mortem ini membuat Quickbooks bisa segera melakukan intervensi dengan dorongan khusus untuk perilaku yang diinginkan, sehingga mengurangi risiko churn.

 

Memperkuat nilai aplikasi Anda

Setelah membuat prediktor churn, Anda bisa mengidentifikasi pengguna yang berisiko dan membantu mereka terhubung kembali dengan aplikasi Anda. Pengguna harus melihat lagi nilai tambah yang bisa diberikan aplikasi Anda. Anda bisa memperkuatnya melalui pengingat tentang fitur yang sudah mereka akses atau memicu antusiasme mengenai peluncuran mendatang.

Salah satu cara untuk melakukannya adalah dengan mengingatkan pengguna mengenai apa yang telah mereka capai dengan bantuan aplikasi Anda. Yazio terus memastikan progres pengguna secara jelas dilacak dan dirayakan setiap saat sebagai langkah untuk mencegah churn. Mereka memanfaatkan status progres dan layar perayaan untuk memotivasi pengguna agar terus mencapai tujuannya.

Pastikan untuk mempersonalisasi konten sebanyak mungkin agar pengguna merasa dihargai. Mobills mengirimkan pesan khusus kepada pengguna yang aktif berinteraksi, menawarkan hadiah dan pesan yang menggembirakan.

Lifesum juga mengirimkan pesan khusus. Namun, mereka menyoroti hal-hal yang mungkin terlewatkan oleh pengguna. Mereka berfokus pada pengingat fitur utama dan menyoroti fitur yang tidak banyak diketahui yang mungkin menarik pengguna untuk terus berinteraksi.

 

Perhatikan langganan yang akan berakhir

Jika aplikasi Anda menjalankan model langganan, jendela pembaruan selalu berpotensi menimbulkan risiko. Hal terpenting di sini adalah bertindak berdasarkan sinyal yang tepat pada waktu yang tepat. Untuk melakukannya, identifikasi perilaku yang mengindikasikan churn dalam beberapa minggu atau bulan menjelang akhir langganan dan pada jam berapa hal tersebut terjadi. Anda mungkin menemukan sinyal lebih awal dari yang Anda harapkan.

Selain itu, pastikan Anda menawarkan opsi lain selain pembatalan dan mengomunikasikannya dengan jelas kepada pengguna. Mereka mungkin tidak tahu bahwa ada opsi yang lebih terjangkau, low touch, atau berbasis iklan. Jangan beri mereka alasan untuk membatalkan!

Saat memberikan penawaran, pertimbangkan pembingkaian ulang nilai. Pembaruan langganan bukanlah hal yang mudah. Anda mungkin perlu menguji pesan berbeda untuk menemukan hal yang menarik pengguna. Pesan langsung tentang biaya, keuntungan, dan opsi membuat pengguna merasa penting. Membandingkan biaya dengan pengeluaran harian yang setara bisa menawarkan beberapa perspektif - Yazio menunjukkan bahwa biaya bulanan langganan mereka kurang dari secangkir kopi dan lebih murah daripada beberapa produk diet.

Dan seperti biasa, perpesanan yang dipersonalisasi membuat pengguna merasa dihargai. Selama alur pembatalan, Quickbooks menampilkan apa yang telah dicapai pengguna melalui aplikasi (misalnya, melacak 1.000 mil), dan menyoroti fitur yang telah mereka bayar tetapi belum digunakan.

 

Kesimpulan

Melalui langkah-langkah di atas, Anda mungkin menemukan pola perilaku berbeda yang menyebabkan churn, yang mewakili kelompok pengguna yang berbeda dan rintangannya. Untuk beberapa grup, churn mungkin tidak dapat dihindari. Mereka mungkin mewakili pengguna yang salah memahami proposisi nilai aplikasi Anda atau baru saja mengembangkannya. Berfokuslah pada kelompok pengguna yang akan memberi Anda nilai lebih, bukan pada pengguna yang Anda identifikasi memiliki tingkat aktivitas rendah meskipun telah dilakukan sejumlah upaya untuk menariknya kembali. Ingat, tidak mungkin sepenuhnya memberantas churn.

Semoga artikel ini bisa membantu Anda menyiapkan strategi untuk meminimalkan churn. Taktik  di atas adalah alat yang berguna untuk menjaga interaksi pengguna “selalu terkontrol” - bagian penting dari pertumbuhan berkelanjutan untuk aplikasi Anda  - di samping strategi akuisisi dan retensi. Untuk informasi selengkapnya tentang topik ini, silakan lihat sumber daya di bawah ini:

  • Artikel terbaru kami tentang retensi
  • Laporan lengkap, menampilkan lebih banyak studi kasus tentang topik retensi dan churn!

 

[AD BLOG] Masa depan Android Kotlin Extensions

Masa depan Android Kotlin Extensions

Plugin Gradle Android Kotlin Extensions (jangan disamakan dengan Android KTX) dirilis pada tahun 2017 dan menghadirkan dua kemudahan baru untuk pengembangan Android di Kotlin:

  • Synthetic memungkinkan Anda mengganti panggilan ke findViewById dengan binding android.synthetic.
  • Parcelize memungkinkan Anda menghapus boilerplate dan dengan mudah membuat Parcelables melalui anotasi @Parcelize.

Sejak saat itu, kami telah merilis View Binding for Android, library dengan dukungan resmi yang memiliki integrasi mendalam dengan toolchain build Android dan menyediakan fungsi yang serupa dengan synthetic Kotlin. Meskipun kami terus merekomendasikan Parcelize, sejumlah kelemahan muncul saat menggunakan synthetic Kotlin:

  • Mereka mencemari namespace global
  • Mereka tidak mengekspos informasi nullability
  • Mereka hanya bekerja dalam kode Kotlin

JetBrains awalnya mengembangkan plugin Android Kotlin Extensions, dan kami semua telah membahas kelebihan dan kekurangan dari terus mempertahankan synthetic: kami berusaha keras untuk menjamin dukungan jangka panjang untuk API, tetapi kami juga ingin membimbing developer menuju praktik terbaik yang membuat basis kode yang baik, pada akhirnya, pengguna yang senang.

Tahun depan, tim kami akan bersama-sama menghentikan penggunaan synthetic untuk terus mendukung opsi yang kami rekomendasikan, View Binding. Inilah artinya:

  • Jika Anda menggunakan Parcelize, Anda bisa terus menggunakan anotasi dan API yang sama. Namun, paket anotasi akan berubah menjadi parcelize, dan dalam file Gradle tingkat modul, Anda harus mulai menggunakan plugin kotlin-parcelize mandiri, bukan android-kotlin-extensions. Anda dapat menemukan dokumentasi Parcelize di situs dokumentasi developer Android.
  • Anda harus bermigrasi ke View Binding jika menggunakan synthetic Android Kotlin. Lihat panduan migrasi kami untuk lebih jelasnya.

Periode penghentian dimulai dengan Kotlin 1.4.20, yang dirilis hari ini. android-kotlin-extensions akan terus ada setidaknya selama satu tahun, tetapi akan dihapus pada rilis Kotlin mendatang selama atau setelah September 2021. Untuk jangka panjang, kami akan terus mempertahankan plugin kotlin-parcelize, dan Anda bisa terus melaporkan masalah Parcelize di issue tracker Android Studio.

Sejak mengumumkan dukungan Kotlin pada tahun 2017, kami mendapatkan banyak pertanyaan tentang Kotlin di Android: Anda ingin tahu apakah sudah waktunya mempelajari Kotlin, menghadirkannya ke aplikasi Anda, kursus atau tutorial apa yang terbaik untuk mempelajarinya, apakah Google secara internal menggunakan Kotlin dan rencana kami untuk bahasa pemrograman Java. Dalam postingan kali ini, saya akan menjawab beberapa pertanyaan berikut.

Pertanyaan: Haruskah saya mempelajari Kotlin untuk Android?

Pertanyaan serupa yang paling sering kami terima adalah:

  • “Apa yang harus saya pelajari untuk pemula, Kotlin atau bahasa pemrograman Java?”
  • ​”Saya telah menyelesaikan dasar-dasar bahasa pemrograman Java, apakah sekarang waktu yang tepat bagi saya beralih ke Kotlin untuk pengembangan Android?”
  • “Untuk developer Java lama yang ingin mempelajari pengembangan Android, apakah Anda merekomendasikan untuk langsung mempelajari Kotlin atau mempelajari Java terlebih dahulu?”

Jawaban singkat:

Ya! Mulailah pelajari dan gunakan Kotlin!

Jawaban panjang:

Kotlin & Android

Pada tahun 2017, kami mengumumkan dukungan Kotlin di Google I/O. Saat itulah kami mulai membuat langkah pertama untuk memastikan bahwa API, dokumen, dan contoh kami ramah-Kotlin. Pada tahun 2019, Android mulai mengutamakan Kotlin, jadi kami lebih mengandalkan fitur Kotlin. Sebagai contoh, Coroutine menjadi solusi yang kami rekomendasikan untuk menjalankan pekerjaan asinkron. Inilah hal lain yang telah kami lakukan:

Library yang mengutamakan Kotlin

Kami mulai dengan menambahkan dukungan kelas satu untuk Coroutine Kotlin ke beberapa Android Jetpack API kami, seperti Room, LiveData, ViewModel, dan WorkManager, hal ini mengubah cara kami melakukan operasi asinkron di Android. Firebase Android SDK dan banyak library Jetpack memiliki library ekstensi Kotlin (KTX) agar penggunaannya lebih lancar dengan Kotlin.

Sekarang, banyak library kami yang mengutamakan Kotlin, seperti Paging 3.0 dan DataStore. Jetpack Compose, toolkit UI deklaratif terpisah kami yang baru, ditulis dari awal dengan Kotlin.

Peralatan

Produktivitas pengembangan berawal dari peralatan yang tepat. Karena itu, kami telah melakukan banyak peningkatan untuk Kotlin pada toolchain kompilasi, termasuk penyempurnaan compiler JVM Kotlin, pengoptimalan R8 khusus Kotlin, bahkan mengembangkan alat baru seperti Kotlin Symbol Processing. Kami telah menambahkan template Android Kotlin Live bawaan, sehingga Anda bisa menggunakan cara pintas untuk menambahkan konstruksi Android umum ke aplikasi Kotlin. Pada saat yang sama, pemeriksaan Lint khusus Kotlin membantu Anda membuat kode Kotlin lebih idiomatis. Ini sangat berguna saat Anda beralih dari bahasa pemrograman Java ke Kotlin.

Pertanyaan: Apakah secara internal Google menggunakan Kotlin?

Kami juga melipatgandakan Kotlin di Google. Lebih dari 60 aplikasi kami (seperti Google Home, Drive, Maps, dan lainnya) telah menambahkan Kotlin ke codebase aplikasi. Codebase internal besar kami menghitung lebih dari dua juta baris kode Kotlin.

Pertanyaan: Haruskah saya melakukan migrasi aplikasi ke Kotlin?

Kami sering mendapatkan pertanyaan ini, tetapi jawabannya tergantung Anda. Jika Anda sudah senang dengan codebase dan tech stack saat ini, pintar mencari solusi untuk mengelola tugas asinkron, dan memiliki cara yang efisien untuk menangkap kesalahan, migrasi mungkin bukan solusi untuk Anda

Jika Anda menyukai apa yang telah Anda lihat dengan Kotlin baik dengan mencobanya maupun mempelajari bahasanya melalui beberapa kursus yang disebutkan di bawah, dan Anda juga ingin memanfaatkan Jetpack API terbaru, maka Anda harus mempertimbangkan untuk menambahkan Kotlin ke aplikasi. Salah satu keuntungan Kotlin adalah interop yang sangat bagus dengan bahasa pemrograman Java. Anda bisa mengambil langkah kecil secara bertahap dalam mengadopsinya — mungkin terlebih dahulu mencobanya di pengujian, lalu mencoba beberapa fitur baru, kemudian Anda dapat mencoba konversi beberapa kode lama saat menyentuhnya.

Untuk membuat langkah pertama Anda dalam migrasi ke Kotlin idiomatis, lihat Mengonversi ke codelab Kotlin.

Pertanyaan: Bagaimana dengan bahasa pemrograman Java di Android?

Kami menambahkan dukungan Kotlin selain Java karena keduanya dikompilasi ke bytecode yang sama dan bisa berdampingan satu sama lain. Kami menyukai Kotlin karena ekspresif dan lebih aman saat menulis kode. Kami juga terus mempertahankan dan mengembangkan dukungan Java. Misalnya, di Android 11, kami menambahkan dukungan untuk sejumlah API dari rilis OpenJDK terbaru hingga versi 13 dan Android Studio bahkan mengizinkan Anda menggunakan beberapa API ini di semua perangkat Android, apa pun versi OS-nya. Baca selengkapnya tentang dukungan untuk API bahasa terbaru di sini.

Pertanyaan: Apa cara terbaik untuk mempelajari Kotlin?

Mengadopsi bahasa baru bukanlah tugas yang mudah, tetapi kami berusaha membuatnya semudah mungkin:

  • Mulailah dengan kursus pelatihan — kursus ini mewadahi developer dari semua tingkatan, dari pemula hingga profesional, yang akan membantu Anda meningkatkan keterampilan Kotlin di Android, dari Dasar-dasar Android di Kotlin, kursus online baru untuk orang-orang yang tidak memiliki pengalaman pemrograman, hingga tutorial lanjutan yang mengajarkan Anda cara menggunakan Coroutine.
  • Semua halaman dokumentasi kami berisi cuplikan kode Kotlin, sehingga Anda bisa dengan mudah membandingkan cara kerja API dalam kedua bahasa tersebut, dan semua contoh memiliki versi Kotlin.
  • Lihat artikel dan video kami yang mengajarkan Anda tentang berbagai topik Kotlin.
  • Baca panduan untuk developer dan tim yang ingin beralih ke Kotlin di halaman developers.android.com/kotlin kami.

Sejak secara resmi menambahkan dukungan untuk Kotlin 3 tahun lalu, kami semakin meningkatkan dukungan untuk bahasa dan ekosistem yang luar biasa ini. Bersama JetBrains, kami telah membangun fondasi bagi Kotlin untuk memastikan bahasanya berkembang dengan baik, misalnya melalui proses yang cermat untuk memeriksa perubahan yang dapat menyebabkan gangguan. Kontribusi kami lebih dari itu: Google memiliki tim engineer yang berkontribusi untuk compiler Kotlin sebagai pekerjaan tetap mereka, Jetpack API yang kami bangun tidak hanya mendukung Kotlin tetapi juga mengutamakan Kotlin, dan kami berkomitmen untuk memberikan pengalaman Kotlin yang mulus di Android.

Java adalah merek dagang terdaftar dari Oracle dan/atau afiliasinya.



Now in Android #29

Ilustrasi oleh Virginia Poltrack

App Bundle, rilis stabil AndroidX, artikel serta video Kotlin, dan episode podcast ADB terbaru

Selamat datang di Now in Android, panduan berkelanjutan Anda tentang apa yang baru dan penting dalam dunia development Android.

MAD Skills: App Bundle

Seri MAD Skills terus berlanjut, dengan konten teknis tentang development Android modern. Wojtek Kaliciński dan Ben Weiss telah memposting beberapa episode pada seri kedua di App Bundle. Sejauh ini, kami telah melihat konten Play App Signing, Building your First App Bundle, dan Play Feature Delivery. Lihat video dan artikel di bawah ini untuk mengetahui selengkapnya.

Episode 1: Semua yang perlu diketahui tentang Play App Signing

Dalam seri tentang Android App Bundle, kita sering membicarakan tentang penandatanganan aplikasi, karena Play menghasilkan APK untuk didownload ke perangkat pengguna, dan APK tersebut harus ditandatangani agar bisa diinstal. Video ini akan memperlihatkan kepada Anda cara mengaktifkan penandatanganan aplikasi di Konsol Play, termasuk opsi untuk meminta Google membuat kunci atau meng-upload kunci Anda sendiri.

Pastikan membaca artikel terkait dari Wojtek mengenai pertanyaan umum tentang Play App Signing:

Jawaban atas pertanyaan umum tentang App Signing dari Google Play

Episode 2: Membangun bundel aplikasi pertama Anda

Video dari Ben akan membimbing Anda melalui langkah-langkah pembuatan App Bundle, Anda bisa melakukannya di Android Studio atau baris perintah, dilanjutkan dengan meng-upload-nya ke Konsol Play. Ia juga menunjukkan cara menggunakan alat di Konsol Play untuk menggali informasi tentang paket yang di-upload.

Episode 3: Mengonfigurasi Aplikasi Anda untuk Play Feature Delivery

Episode ini menunjukkan kepada Anda cara menggunakan Android Studio untuk memodularisasi aplikasi, dan cara memilih modul yang akan didownload pada waktu penginstalan (dengan kondisi opsional yang menentukan apakah akan diinstal atau tidak) atau sesuai permintaan. Ben juga menjelaskan secara detail cara menggunakan API untuk meminta penginstalan modul sesuai permintaan.

Atau dalam bentuk artikel:

Mengonfigurasi aplikasi Anda untuk Play Feature Delivery

Episode 4: Pengujian dengan bundletool dan Play Console

Dalam episode terakhir ini, Wojtek menjelaskan cara menggunakan alat yang tersedia untuk menguji bundel Anda dan APK yang dihasilkan, termasuk bundletool untuk pengujian lokal serta Konsol Play untuk menguji upload.

Ada beberapa artikel dan dokumen yang ditautkan dari deskripsi video, pastikan memeriksanya untuk mendapatkan informasi lebih lanjut tentang topik tersebut.

Nantikan konten App Bundle final minggu depan, kami akan mengadakan sesi Tanya Jawab langsung Kamis mendatang (link YouTube live akan muncul di playlist saat sesi dimulai, dan kami akan mengirimkan pesan sebelum acara berlangsung bila Anda punya pertanyaan).

Untuk konten yang berlangsung, pastikan memeriksa playlist MAD Skills di YouTube, artikel di Medium, atau halaman pendahuluan praktis ini yang akan menunjukkan semuanya. Seri berikutnya akan dimulai minggu depan: nantikan informasi selanjutnyanya!

AndroidX

Di tengah banyaknya rilis alfa, beta, dan RC inkremental dari library AndroidX, ada beberapa versi stabil penting yang baru saja diluncurkan dan harus Anda perhatikan.

  • ConstraintLayout 2.0.4: Perubahan terpenting di sini sebenarnya adalah versi 2.0.2 (sekaligus terbaru), yang memiliki optimalisasi kinerja penting. Namun pilihlah versi terbaru untuk mendapatkan perbaikan bug lainnya.
    Peningkatan kinerja berasal dari ConstraintLayout yang jauh lebih pintar dalam menentukan kapan ia bisa menjalankan solver serta menghindari banyak pengukuran dan solver passes. Hal ini memberikan peningkatan kinerja yang signifikan dalam banyak situasi umum. Misalnya, hierarki dengan banyak tampilan GONE dan tampilan yang menggunakan match constraint (layout_[height|width]=”0dp”) bisa menjadi jauh lebih cepat dilayout.
  • Startup 1.0.0: Library startup aplikasi semula dikembangkan untuk memudahkan aplikasi menginisialisasi komponen saat startup secara lebih optimal dibandingkan bila tidak menggunakannya. Ternyata menginisialisasi satu ContentProvider membutuhkan banyak waktu, dan banyak aplikasi menginisialisasi lebih dari satu — bahkan sering kali lebih banyak dari itu. Startup memungkinkan aplikasi Anda menginisialisasi komponen tanpa membuat beberapa ContentProvider (spoiler: library membuat dan menggunakan satu cara kerja ContentProvider untuk semua permintaan), yang memungkinkan aplikasi Anda melewati sebagian besar overhead itu.
  • Tracing 1.0.0: Library ini menulis event pelacakan ke buffer pelacakan sistem. Memberi instruksi pada aplikasi Anda dengan event pelacakan bisa digunakan untuk memberikan lebih banyak informasi tentang kinerja yang nanti dapat Anda lihat dengan menggunakan alat Perfetto (atau Systrace pada perangkat lama). Lihat panduan tentang pelacakan sistem untuk detail selengkapnya tentang cara melakukannya.
    Library “baru” ini tidak menyediakan fungsi baru, tetapi menyediakan fungsionalitas dari class TraceCompat yang sudah ada dengan cara yang sangat tertarget sehingga Anda tidak perlu menarik semua androidx.core untuk fungsionalitas terbatas ini. Ada juga fungsi ekstensi KTX yang mempermudah penambahan pelacakan di sekeliling blok kode tertentu.

Artikel & Video: Kotlin, Kotlin, Kotlin, dan Kotlin

Kita tidak selalu membicarakan Kotlin, tetapi ketika kita melakukannya, kita akan banyak membicarakannya. Ada beberapa artikel dan video yang diposting tentang Kotlin baru-baru ini:

Data Berkelas

Florina Muntenescu menambahkan episode lain dalam seri Kotlin Vocabulary yang sedang berjalan, kali ini tentang class data Kotlin. Class data memungkinkan Anda membuat struktur dengan mudah untuk menyimpan data dengan kode boilerplate lebih sedikit, dan mengandalkan Kotlin untuk secara otomatis menghasilkan fungsi equals() dan hashCode() yang sesuai. Anda juga langsung mendapatkan destrukturisasi untuk properti class, bersama dengan copy(). Seperti biasa untuk episode Kotlin Vocabulary, Florina mendalami bytecode yang telah didekompilasi untuk class data guna menjelaskan cara kerjanya.

Atau dalam bentuk artikel:

Class data — cara berkelas untuk menyimpan data

Delegate Bawaan

Berbicara tentang Kotlin Vocabulary, Murat Yener memposting lanjutan dari artikel sebelumnya tentang fitur delegate Kotlin. Kali ini, ia akan membahas tentang delegate yang disediakan oleh Kotlin Standard Library: lazy, observable, vetoable, dan notNull.

Delegate Bawaan

Haruskah Saya Mempelajari Kotlin untuk Android? (dan Tanya Jawab Lainnya)

Jawaban singkatnya adalah… Ya!

Namun untuk penjelasan lebih panjang, Florina memposting artikel ini untuk menjawab beberapa pertanyaan yang sering diajukan developer tentang berinvestasi dalam pendidikan dan development Kotlin, serta link ke sumber daya pembelajaran penting.

Haruskah saya mempelajari Kotlin untuk Android dan Tanya Jawab lainnya

Error Berkurang dan Stabilitas Bertambah dengan Kotlin

Dalam artikel ini, Florina membahas beberapa alasan yang membuat aplikasi Kotlin tidak rentan error dibandingkan aplikasi yang tidak ditulis dengan Kotlin. Ia menunjukkan beberapa aplikasi dan kasus penggunaan tertentu yang mendukung pernyataan ini, tetapi juga membahas beberapa alasan mengapa bahasa ini memungkinkan kode menjadi lebih kuat, termasuk nullability, hashCode() != equals(), dan lainnya. Baca postingannya untuk mengetahui semua detailnya.

Error berkurang dan stabilitas bertambah dengan Kotlin

Episode Podcast

Ada episode lain dari Android Developers Backstage yang diposting sejak Now in Android terakhir. Lihatlah pada link di bawah ini, atau di klien podcast favorit Anda:

ADB 152: Pemuatan Gambar dengan Coil

Romain Guy, Tor Norbye, dan saya berbicara dengan Colin White dari Instacart tentang library pemuatan gambar sumber terbuka, Coil. Kami mengobrol tentang pemuatan gambar, kinerja, sumber terbuka, dan penggunaan Kotlin serta coroutine untuk membuat library yang mengutamakan Kotlin ini.

Episode 151: Pemuatan Gambar dengan Coil

Nah sekarang…

Cukup sampai di sini. Jadi, silakan pelajari App Bundle! Download rilis AndroidX terbaru! Baca artikel terbaru tentang Kotlin! Dengarkan episode podcast ADB terbaru! Dan segera kembali ke sini untuk mendapatkan update berikutnya dari dunia developer Android.



Tips dan panduan developer: Pelanggaran kebijakan umum dan cara menghindarinya

Oleh Andrew Ahn, Product Manager, Google Play App Safety

Di Google Play, kami ingin mengembangkan ekosistem aplikasi yang aman, menarik, berguna, dan menghibur yang digunakan dan disukai oleh miliaran pengguna Android di seluruh dunia. Itulah sebabnya kami secara rutin mengupdate dan merevisi Kebijakan Developer dan Perjanjian Distribusi Developer Google Play, memerinci batasan konten dan fungsi aplikasi yang diizinkan pada platform, serta memberikan panduan terbaru tentang cara developer mempromosikan dan memonetisasi aplikasi.

Pada upaya terbaru dalam menganalisis aplikasi mengenai kepatuhan kebijakan di Google Play, kami mengidentifikasi beberapa kesalahan dan pelanggaran yang sering dilakukan developer, dan kami membagikannya dengan komunitas developer dengan tips dan panduan tentang cara menghindarinya, mengurangi risiko aplikasi dan akun developer ditangguhkan karena melanggar kebijakan kami.

Link yang membawa pengguna ke aplikasi lain di Play Store

Salah satu kesalahan yang paling sering kami lihat adalah aplikasi yang memiliki tombol dan menu yang terhubung ke Play Store -- baik ke aplikasi oleh developer yang sama, atau aplikasi lain yang mungkin berafiliasi dengan developer tersebut, tetapi tidak jelas apakah ini iklan atau link promosi. Tanpa kejelasan ini, aplikasi mungkin akan dipaksa memiliki iklan yang memperdaya / mengecoh. Salah satu cara menghindari kesalahan ini adalah dengan secara eksplisit memanggilnya dengan memberi label pada tombol dan link dengan ‘Aplikasi Lainnya’, ‘Game Lainnya’, ‘Jelajahi’, ‘Lihat aplikasi kami yang lainnya’, dll.

Contoh konten aplikasi yang terhubung ke cantuman aplikasi di Play

Contoh konten aplikasi yang terhubung ke cantuman aplikasi di Play

Deskripsi aplikasi spam

Kesalahan lain yang sering kami temui adalah developer yang ‘memasukkan’ kata kunci dalam keterangan aplikasi dengan harapan menghasilkan visibilitas dan peringkat yang lebih baik terhadap kata kunci dan frasa tertentu. Blok atau daftar teks yang berisi kata kunci atau referensi berulang atau tidak terkait melanggar kebijakan Cantuman Play Store dan Promosi kami. Menulis keterangan aplikasi dengan jelas yang ditujukan dan dioptimalkan agar mudah dibaca dan dipahami pengguna adalah salah satu cara terbaik untuk menghindari pelanggaran ini.

Tonton video ini untuk mempelajari cara menghindari cantuman toko berisi spam dan upaya meningkatkan visibilitas aplikasi secara artifisial.

Aplikasi yang terbengkalai dan rusak

Ada aplikasi yang sudah lama dipublikasikan oleh developer, tetapi tidak lagi dikelola. Aplikasi yang terbengkalai dan tidak dikelola sering kali menimbulkan masalah pengalaman pengguna -- misalnya, fungsi aplikasi rusak. Aplikasi semacam itu tidak hanya berisiko mendapatkan rating bintang rendah dan ulasan negatif dari pengguna, tetapi juga akan ditandai karena melanggar kebijakan fungsi minimum. Untuk mengurangi dampak negatif terhadap reputasi developer dan pemaksaan aplikasi, sebaiknya batalkan publikasi aplikasi tersebut dari Play Store. Perhatikan bahwa tindakan pembatalan publikasi yang diupdate tidak akan memengaruhi pengguna lama yang telah menginstal aplikasi, dan developer selalu bisa memilih untuk memublikasikannya kembali setelah memperbaiki pengalaman yang rusak.

Contoh aplikasi terbengkalai yang memberikan pengalaman aplikasi rusak

Contoh aplikasi terbengkalai yang memberikan pengalaman aplikasi rusak

Ikon Play dengan topi kelulusan

Ikuti kursus ‘Minimum and Broken Functionality Spam’ di Akademi Play



Aplikasi vs. Webview

Terakhir, kami memperhatikan banyak sekali pengajuan aplikasi yang hanya merupakan webview dari situs yang ada. Sebagian besar aplikasi ini dikirimkan dengan tujuan utama untuk mengarahkan traffic, bukan memberikan pengalaman aplikasi yang menarik kepada pengguna Android. Aplikasi semacam ini dianggap sebagai spam webview, dan dihapus dari Play. Sebagai gantinya, pikirkan apa yang bisa dilakukan pengguna atau yang bisa dilakukannya lebih baik dengan menggunakan aplikasi daripada di web dan terapkan fitur serta fungsi relevan yang memperkaya pengalaman pengguna.

Contoh webview tanpa fungsi aplikasi

Contoh webview tanpa fungsi aplikasi

Ikon Play dengan topi kelulusan

Ikuti kursus ‘Webview Spam’ di Akademi Play



Meskipun hal di atas adalah salah satu kesalahan yang paling sering terjadi, pastikan selalu mengikuti kebijakan terbaru dengan mengunjungi Pusat Kebijakan Developer Play. Lihat pelatihan Kebijakan Akademi Google Play, termasuk kursus Spam baru kami, dan tonton video Play PolicyBytes kami untuk mempelajari lebih lanjut tentang update kebijakan terbaru.