CameraX API Google memungkinkan aplikasi menggunakan fitur kamera bawaan terbaik

API ekstensi vendor CameraX Google memungkinkan aplikasi kamera pihak ketiga menggunakan beberapa fitur terbaik dari aplikasi kamera bawaan.

Ada lelucon lama di Internet bahwa Anda dapat mengetahui apakah seseorang menggunakan ponsel Android kualitas selfie mereka yang buruk. Meskipun meme-meme tersebut agak dibesar-besarkan, sayangnya ada benarnya di balik meme-meme tersebut. Ponsel Android biasanya lebih unggul dari iPhone dalam hal performa kamera, setidaknya di atas kertas. OEM seperti LG dan Samsung cenderung menggunakan kamera dengan piksel lebih banyak dan aperture lebih besar dibandingkan iPhone pesaing. Namun, spesifikasi bukanlah segalanya. Salah satu alasan mengapa Apple dapat bersaing dalam permainan kamera adalah karena perangkat lunak iOS. Semua OEM, dari Apple hingga ZTE, menggunakan keajaiban perangkat lunak untuk membuat foto dan video terlihat lebih baik. Perusahaan menggunakan algoritme untuk mengurangi noise, mengubah saturasi dan kontras warna, dan bahkan mencerahkan pemandangan gelap, semuanya untuk membuat hasil akhir lebih menyenangkan. Secara historis, di sinilah OEM Android kalah dari Apple.

Perkembangan Perangkat Lunak

Namun belakangan ini, banyak hal mulai berubah. Contoh terbesar dari perubahan ini mungkin adalah Google dan jajaran Pixel. Dari segi perangkat keras, kamera Pixel benar-benar tidak bisa dibandingkan dengan kamera andalan lainnya. Namun, perangkat lunak adalah tempat Google membuat perbedaan. Dengan fitur-fitur seperti Mode Potret, Penglihatan Malam, HDR+, dan Zoom Resolusi Super, Piksel telah mendapatkan reputasi memiliki beberapa kamera ponsel pintar terbaik di pasaran.

OEM Android lainnya mengikuti jejak Google. Samsung, OPPO, Xiaomi, Vivo, OnePlus, dll, semuanya telah memperkenalkan versi mereka sendiri dari fitur kamera Pixel yang lebih populer, dan mereka bahkan memiliki beberapa fitur uniknya sendiri. Dengan kata kunci seperti "AI" dan "pembelajaran mesin", OEM Android mencoba meyakinkan Anda bahwa perangkat lunak mereka adalah perangkat lunak yang Anda inginkan untuk menyempurnakan foto dan video Anda. Kami telah mencapai titik di mana ponsel Android benar-benar dapat bersaing dengan iPhone dalam semua aspek kinerja kamera.

Masalah

Sayangnya, masih ada satu pengecualian utama: aplikasi pihak ketiga. Kamera andalan super duper 50 Anda mungkin mengambil foto menakjubkan dengan aplikasi kamera internal, tetapi beralihlah ke Instagram, Snapchat, atau bahkan aplikasi kamera pihak ketiga, dan pada dasarnya ini merupakan jaminan bahwa apa yang Anda ambil tidak akan terlihat sama bagusnya. Bagus. Seolah itu belum cukup, Anda juga kehilangan semua fitur dan mode kamera keren. Ini karena, tidak seperti iOS, Android tidak memiliki kerangka kamera terpadu. Tentu, fitur dasarnya ada di sana. Aplikasi pihak ketiga masih dapat mengambil foto dan video, serta menggunakan flash. Namun apa jadinya jika ponsel Anda memiliki sensor sekunder untuk sudut lebar atau telefoto? Ada kemungkinan bahwa pengembang akan dapat mengakses sensor kedua tersebut, namun metode yang mereka gunakan harus spesifik untuk perangkat Anda.

Katakanlah Anda memiliki LG V40 (saya tahu, saya tahu, bayangkan saja Anda memilikinya). V40 memiliki tiga sensor: standar, telefoto, dan ultrawide. Aplikasi kamera internal tidak memiliki masalah dalam beralih di antara semua sensor yang berbeda ini. Tapi lupakan penggunaan sensor ultrawide di Instagram. Kini, Instagram dapat melihat bagaimana aplikasi kamera LG menggunakan berbagai sensor dan mengembangkan cara bagi pengguna untuk mengambil gambar sudut lebar atau zoom. Tapi itu mungkin hanya berfungsi pada LG V40. Meski Galaxy S10 memiliki tiga mode sensor yang sama (standar, telefoto, dan ultrawide), tim Instagram harus mengembangkan metode lain untuk Samsung.

Sekarang tambahkan Huawei, Vivo, OnePlus, Xiaomi, OPPO, Nokia, ZTE, HTC, dan merek lain apa pun yang mungkin Anda pikirkan ke dalam campuran. Seperti yang dapat Anda bayangkan, mencoba mengembangkan metode untuk mengakses potensi sensor tambahan untuk setiap ponsel dari setiap merek akan menjadi sangat membosankan. Dan kemudian Anda harus menjaga kompatibilitas dengan semua ponsel terkini dan baru.

Batasan ini juga berlaku untuk fitur kamera. Hal-hal seperti Mode Potret, Pemandangan Malam, dan HDR+ memerlukan metode khusus per perangkat untuk digunakan, atau sama sekali tidak dapat diakses oleh aplikasi pihak ketiga.

Tentu saja, untuk aplikasi seperti Instagram, ini bukan masalah besar. Itu bukan fokus mereka, dan Anda selalu dapat menggunakan aplikasi kamera ponsel Anda untuk mengambil gambar terlebih dahulu. Tapi bagaimana dengan aplikasi kamera khusus?

Efeknya

Buka Google Play Store dan cari "kamera". Anda akan menemukan ratusan hasil. Bahkan dengan peningkatan pada perangkat lunak kamera pihak pertama, aplikasi kamera pihak ketiga masih sangat populer. Beberapa bertujuan untuk menyediakan lebih banyak fitur teknis seperti eksposur manual dan fokus (fitur yang mungkin tidak dimiliki aplikasi kamera ponsel Anda). Lainnya bertujuan untuk memberikan UX yang konsisten di seluruh perangkat Anda.

Terutama karena alasan terakhir, fragmentasi kamera Android dapat mempersulit pengembangan dan pemeliharaan aplikasi kamera yang kompatibel secara luas. Jika Anda ingin menyediakan fitur tambahan, bagaimana Anda akan menyertakan semua fitur potensial dari semua aplikasi pihak pertama yang potensial? Jika Anda mencari pengalaman yang konsisten, bagaimana Anda bisa menjamin secara realistis bahwa mengakses sensor sudut lebar di setiap perangkat yang memilikinya akan berhasil?

Jawabannya adalah: Anda tidak bisa. Anda dapat mencoba mendukung sebanyak mungkin fitur di sebanyak mungkin perangkat, namun pada akhirnya, hal tersebut akan membutuhkan banyak pekerjaan dengan imbalan yang relatif kecil. Tidak sulit membayangkan setidaknya beberapa pengembang menyerah begitu saja dalam membuat aplikasi kamera berfitur lengkap untuk Android. Faktanya, beberapa sudah.

Korban

Pergi lakukan pencarian aplikasi kamera di Play Store. Anda akan melihat beberapa hal. Satu, ada a banyak pilihan. Kedua, kebanyakan dari mereka melakukan hal yang sangat mirip (menerapkan filter setelah kejadian dan semacamnya). Ketiga, opsi lanjutan mungkin tidak terlalu sering diperbarui. Anda bahkan mungkin menemukan hasil di Google yang tidak lagi ada di toko.

Baru-baru ini, kita mendapatkan contoh yang cukup besar tentang seseorang yang memutuskan untuk berhenti. Moment memutuskan untuk menghentikan pengembangan aplikasi Pro Camera untuk Android.

Aplikasi Kamera Pro Moment bertujuan untuk menghadirkan fitur foto dan video tingkat lanjut ke Android. Ini hanyalah beberapa dari fitur-fitur tersebut:

  • histogram RGB
  • Pisahkan fokus
  • Kontrol manual atas eksposur, ISO, kecepatan rana, white balance
  • Fokus memuncak
  • Tangkapan mentah
  • Perubahan framerate dan resolusi dinamis
Tangkapan layar Moment Pro Camera. Melalui: 9to5Google

Masalahnya adalah banyak fitur ini yang tidak berfungsi di banyak perangkat. Melihat daftar kompatibilitas fitur Moment seperti melihat gambar lantai dansa. Bahkan dalam lini produk yang sama, dukungan fitur sangat terfragmentasi. Setelah dua tahun pengembangan, Moment tidak lagi memiliki kapasitas untuk melanjutkan pengembangan aplikasinya.

Hijau = didukung oleh Moment Pro Camera. Kuning = didukung oleh perangkat tetapi tidak didukung oleh Kamera Moment Pro saya. Merah = tidak didukung oleh perangkat. Sumber gambar: Momen. Diperoleh melalui: 9to5Google.

Solusinya?

Sudah hampir 12 tahun sejak Android pertama kali dirilis, namun kami akhirnya memiliki solusi untuk fragmentasi kamera.

Solusi ini datang langsung dari Google, meski tidak dibangun langsung ke Android. Sebaliknya, itu adalah a Pustaka dukungan Jetpack. Jika Anda terbiasa mengembangkan aplikasi Android, Anda mungkin pernah menemukan rangkaian pustaka dukungan AppCompat dan AndroidX. Pustaka dari Google ini bertujuan untuk memudahkan pengembang mempertahankan kompatibilitas dengan versi Android lama, sambil tetap dapat memperkenalkan fitur dan gaya baru.

Tambahan yang lebih baru pada Jetpack (semacamnya), adalah perpustakaan CameraX. Mirip dengan perpustakaan Jetpack lainnya, tujuan CameraX adalah mempermudah pengembangan kamera. Dalam bentuknya yang paling dasar, CameraX membungkus Android Kamera2, API yang memungkinkan aplikasi menyelidiki fitur kamera di perangkat, asalkan OEM memaparkan fitur kamera tersebut ke API. Pengguna dapat memeriksa fitur kamera apa saja yang diekspos ke Camera2 API menggunakan aplikasi Camera2 API Probe dan kemudian membandingkannya dengan fitur yang tersedia di aplikasi kamera bawaan.

Pemeriksaan API Kamera2Pengembang: Lab Media Maret

Harga: Gratis.

4.2.

Unduh

Manfaat menggunakan CameraX sebagai pembungkus untuk Camera2 API adalah, secara internal, ini menyelesaikan masalah kompatibilitas spesifik perangkat apa pun yang mungkin timbul. Hal ini saja akan berguna bagi pengembang aplikasi kamera karena dapat mengurangi kode boilerplate dan waktu yang dihabiskan untuk meneliti masalah kamera. Namun bukan hanya itu yang bisa dilakukan CameraX.

Meskipun bagian pertama tersebut sebagian besar hanya menarik bagi pengembang, ada bagian lain yang berlaku bagi pengembang dan pengguna akhir: Ekstensi Vendor. Inilah jawaban Google atas fragmentasi fitur kamera di Android. Produsen perangkat dapat memilih untuk mengirimkan perpustakaan ekstensi dengan ponsel mereka yang memungkinkan CameraX (serta pengembang dan pengguna) memanfaatkan fitur kamera asli. Misalnya, Anda sangat menyukai efek Mode Potret Samsung, tetapi Anda tidak menyukai aplikasi kamera itu sendiri. Jika Samsung memutuskan untuk menerapkan ekstensi Mode Potret CameraX di ponselnya, aplikasi pihak ketiga mana pun yang menggunakan CameraX akan dapat menggunakan Mode Potret Samsung. Tentu saja, ini tidak hanya terbatas pada satu fitur saja. Produsen secara teoritis dapat membuka fitur kamera mereka ke aplikasi menggunakan CameraX.

Sayangnya, ada peringatan yang saya sebutkan sebelumnya: ini bukan persyaratan bagi produsen. kata Google mereka akan mendukung Ekstensi di semua perangkat Pixel baru dan yang akan datang, dimulai dengan Pixel 4. kata OPPO mereka telah membuka mode Kecantikan dan HDR. OEM lain dapat memilih untuk hanya menyediakan Mode Malam untuk CameraX, atau mereka dapat memilih untuk tidak menerapkan ekstensi apa pun sama sekali. Terserah sepenuhnya pada produsen perangkat mana yang mendukung ekstensi CameraX mana (jika ada). Google digunakan untuk memelihara daftar perangkat yang mendukung Ekstensi Vendor dan fitur kamera apa yang mereka buka, tetapi mereka belum memperbarui daftarnya selama beberapa bulan terakhir. Kami menghubungi Google beberapa minggu lalu untuk menanyakan apakah mereka dapat memberikan daftar terbaru, namun perusahaan belum menanggapi dengan memberikan daftar tersebut. Untuk apa nilainya, a postingan blog Google terbaru menyatakan bahwa perangkat dari Samsung, LG, OPPO, Xiaomi, dan Motorola (di Android 10) memberikan beberapa ekstensi fungsinya, tetapi postingan blog tidak menentukan secara pasti perangkat mana yang didukung atau fungsinya menyediakan.

Jika cukup banyak produsen yang memutuskan untuk menerapkan ekstensi, pemandangan kamera pihak ketiga Android akan jauh lebih cerah. Pengembang tidak perlu membuang waktu untuk mengimplementasikan ulang fitur kamera pada setiap perangkat karena kerangka kerja CameraX akan menanganinya. Fragmentasi fitur akan berkurang karena fitur serupa di seluruh perangkat akan dapat diakses melalui antarmuka yang sama. Dan masih banyak lagi kemungkinan lainnya.


Tentu saja, ini semua bergantung pada kemampuan Google untuk meyakinkan produsen agar mengimplementasikan pustaka Ekstensi Vendor CameraX di masa mendatang. Kecuali jika CameraX diimplementasikan secara luas, hal ini hanya akan menambah fragmentasi yang ada. Namun secara pribadi, saya berharap. Google bisa sangat meyakinkan jika diinginkan, dan sepertinya banyak pekerjaan yang harus dilakukan untuk CameraX. Sangat menarik untuk melihat kemungkinan solusi terhadap masalah kamera Android, dan saya berharap dapat melihat bagaimana CameraX akan meningkat dan berkembang seiring berjalannya waktu.

Apa pendapat Anda tentang CameraX? Akankah Google berhasil menghadirkan pengalaman kamera terpadu untuk Android?