API-ul pentru extensii pentru furnizori CameraX de la Google face posibil ca aplicațiile de cameră terță parte să folosească unele dintre cele mai bune caracteristici ale aplicației de cameră stoc.
Există o glumă de lungă durată pe internet că îți poți da seama dacă cineva folosește un telefon Android calitatea proastă a selfie-urilor lor. În timp ce memele exagerează cu siguranță destul de mult, există, din păcate, un pic de adevăr în spatele lor. Telefoanele Android au fost de obicei înaintea iPhone-urilor în ceea ce privește performanța camerei, cel puțin pe hârtie. OEM ca LG și Samsung tind să folosească camere cu mai mulți pixeli și deschideri mai mari decât iPhone-urile concurente. Specificațiile nu sunt totul, totuși. O parte din motivul pentru care Apple poate concura în jocul camerei este din cauza software-ului iOS. Toți producătorii OEM, de la Apple la ZTE, folosesc ceva magic software pentru a face fotografiile și videoclipurile să arate mai bine. Companiile folosesc algoritmi pentru a reduce zgomotul, pentru a ajusta saturația și contrastul culorilor și chiar pentru a lumina scenele întunecate, totul pentru a face rezultatele finale mai plăcute. Acesta este, din punct de vedere istoric, locul în care producătorii de echipamente OEM Android nu au ajuns la Apple.
Dezvoltari software
Mai recent, însă, lucrurile au început să se schimbe. Cel mai mare exemplu al acestei schimbări este probabil Google și gama Pixel. În ceea ce privește hardware-ul, camerele Pixel nu se pot compara cu alte produse emblematice. Software-ul este locul în care Google face diferența, totuși. Cu funcții precum Modul Portret, Vedere nocturnă, HDR+ și Zoom Super Res, Pixelii și-au câștigat reputația pentru că au unele dintre cele mai bune camere pentru smartphone de pe piață.
Alți OEM Android urmează exemplul Google. Samsung, OPPO, Xiaomi, Vivo, OnePlus etc., cu toții au introdus propriile versiuni ale caracteristicilor mai populare ale camerei Pixel și chiar au unele caracteristici unice. Cu cuvinte la modă precum „AI” și „învățare automată”, OEM-urile Android încearcă să vă convingă că software-ul lor este software-ul pe care doriți să vă îmbunătățiți fotografiile și videoclipurile. Am ajuns la un punct în care telefoanele Android pot concura cu adevărat împotriva iPhone-urilor în toate aspectele performanței camerei.
Problema
Din păcate, există încă o excepție majoră: aplicațiile terță parte. Arhiva dvs. super-duper cu 50 de camere foto ar putea face fotografii uimitoare cu aplicația pentru cameră încorporată, dar treceți la Instagram, Snapchat sau chiar o aplicație de cameră terță parte și, practic, este o garanție că ceea ce capturați nu va arăta nici pe departe la fel de bun. De parcă nu ar fi suficient, pierzi și toate funcțiile și modurile cool ale camerei. Acest lucru se datorează faptului că, spre deosebire de iOS, Android nu are cu adevărat un cadru de cameră unificat. Sigur, caracteristicile de bază sunt acolo. O aplicație terță parte poate face în continuare fotografii și videoclipuri și poate folosi blițul. Dar ce se întâmplă dacă telefonul tău are un senzor secundar pentru unghi larg sau teleobiectiv? Este posibil ca dezvoltatorii să poată accesa acel al doilea senzor, dar metoda pe care o folosesc va trebui să fie specifică dispozitivului tău.
Spuneți că aveți un LG V40 (știu, știu, doar imaginați-vă că aveți). V40 are trei senzori: standard, teleobiectiv și ultrawide. Aplicația pentru cameră încorporată nu are nicio problemă la comutarea între toți acești senzori diferiți. Dar uitați să folosiți senzorul ultrawide pe Instagram. Acum, Instagram ar putea arunca o privire asupra modului în care aplicația pentru cameră a LG folosește diferiții senzori și ar putea dezvolta o modalitate prin care utilizatorii pot face fotografii cu unghi larg sau cu zoom. Dar asta ar funcționa probabil doar pe LG V40. Chiar dacă Galaxy S10 are aceleași trei moduri de senzor (standard, teleobiectiv și ultrawide), echipa Instagram ar trebui să dezvolte o altă metodă pentru Samsung.
Acum adăugați în combinație Huawei, Vivo, OnePlus, Xiaomi, OPPO, Nokia, ZTE, HTC și orice altă marcă la care vă puteți gândi. După cum vă puteți imagina, încercarea de a dezvolta o metodă pentru a accesa doar potențialii senzori suplimentari pentru fiecare telefon de la fiecare marcă ar deveni incredibil de plictisitoare. Și apoi trebuie să menții compatibilitatea cu toate telefoanele actuale și noi.
Aceste limitări se aplică și caracteristicilor camerei. Lucruri precum Portret, Night Sight și HDR+ fie au nevoie de metode specifice pentru fiecare dispozitiv, fie sunt complet inaccesibile pentru aplicațiile terțe.
Evident, pentru o aplicație precum Instagram, aceasta nu este o afacere prea mare. Nu este concentrarea lor și poți oricând să folosești aplicația de cameră a telefonului tău pentru a fotografia mai întâi. Dar cum rămâne cu aplicațiile dedicate pentru cameră?
Efectele
Deschideți Google Play Store și căutați „camera”. Veți găsi sute de rezultate. Chiar și cu îmbunătățirile aduse software-ului camerei de la prima parte, aplicațiile pentru camere de la terți sunt încă foarte populare. Unele își propun să ofere mai multe caracteristici tehnice, cum ar fi expunerea manuală și focalizarea (funcții pe care aplicația de cameră a telefonului dvs. poate să nu le aibă). Alții urmăresc să ofere un UX consistent pe dispozitivele dvs.
Mai ales din acest din urmă motiv, fragmentarea camerei Android poate face incredibil de dificilă dezvoltarea și întreținerea unei aplicații de cameră compatibile pe scară largă. Dacă doriți să oferiți funcții suplimentare, cum veți include toate funcțiile potențiale ale tuturor potențialelor aplicații primare? Dacă sunteți în căutarea unei experiențe consistente, cum puteți garanta în mod realist că accesarea senzorului cu unghi larg de pe fiecare dispozitiv care îl are va funcționa?
Răspunsul este: nu poți. Puteți încerca să susțineți cât mai multe funcții pe cât mai multe dispozitive posibil, dar în cele din urmă, va fi multă muncă pentru o recompensă relativ mică. Nu este greu de imaginat că cel puțin câțiva dezvoltatori au renunțat pur și simplu să creeze o aplicație de cameră complet pentru Android. De fapt, mai multe au.
Pierderile
Căutați aplicații pentru cameră în Magazinul Play. Vei observa câteva lucruri. Unu, există o lot de opțiuni. În al doilea rând, cei mai mulți dintre ei fac lucruri destul de asemănătoare (aplică filtre după fapt și așa). Trei, opțiunile mai avansate probabil nu sunt actualizate atât de des. Este posibil să găsiți chiar rezultate pe Google care nu mai sunt în magazin.
Recent, am primit un exemplu destul de important de cineva care renunță la asta. Moment a decis să înceteze dezvoltarea aplicației sale Pro Camera pentru Android.
Aplicația Moment Pro Camera își propune să aducă funcții avansate foto și video pe Android. Acestea sunt doar câteva dintre aceste caracteristici:
- Histograme RGB
- Focalizare divizată
- Control manual asupra expunerii, ISO, viteza obturatorului, balansul de alb
- Concentrarea maximă
- Captură RAW
- Modificări dinamice de framerate și rezoluție
Problema este că multe dintre aceste funcții pur și simplu nu funcționează pe multe dispozitive. Privind lista de compatibilitate a funcțiilor Moment este ca și cum ați privi o imagine a unui ring de dans. Chiar și în cadrul aceleiași linii de produse, suportul pentru funcții este incredibil de fragmentat. După doi ani de dezvoltare, Moment nu mai are capacitatea de a continua dezvoltarea aplicației sale.
Verde = acceptat de Camera Moment Pro. Galben = acceptat de dispozitiv, dar nu Moment Pro Camera. Roșu = nu este acceptat de dispozitiv. Sursa imagine: Moment. Preluat prin: 9to5Google.
Soluția?
Au trecut aproape 12 ani de când Android a fost lansat pentru prima dată, dar este posibil să avem în sfârșit o soluție la fragmentarea camerei.
Această soluție vine direct de la Google, deși nu este încorporată direct în Android. În schimb, este un Biblioteca de suport Jetpack. Dacă sunteți familiarizat cu dezvoltarea de aplicații Android, probabil că ați întâlnit suitele de bibliotecă de suport AppCompat și AndroidX. Aceste biblioteci de la Google urmăresc să faciliteze pentru dezvoltatori să mențină compatibilitatea cu versiunile mai vechi de Android, putând, în același timp, să introducă noi funcții și stiluri.
O nouă adăugare la Jetpack (un fel de), este biblioteca CameraX. Similar altor biblioteci Jetpack, obiectivul CameraX este de a facilita dezvoltarea camerei. În forma sa cea mai de bază, CameraX include Android Camera2, un API care permite aplicațiilor să verifice caracteristicile camerei de pe un dispozitiv, cu condiția ca OEM să expună acele funcții ale camerei la API. Utilizatorii pot verifica ce caracteristici ale camerei sunt expuse la API-ul Camera2 folosind aplicația Camera2 API Probe și apoi le pot compara cu caracteristicile disponibile în aplicația de stocare a camerei.
Pret: Gratuit.
4.2.
Avantajul utilizării CameraX ca înveliș pentru API-ul Camera2 este că, pe plan intern, rezolvă orice probleme de compatibilitate specifice dispozitivului care pot apărea. Numai acest lucru va fi util pentru dezvoltatorii de aplicații pentru camere foto, deoarece poate reduce codul standard și timpul petrecut în cercetarea problemelor camerei. Nu este tot ce poate face CameraX, totuși.
În timp ce prima parte este în mare parte interesantă doar pentru dezvoltatori, există o altă parte care se aplică atât dezvoltatorilor, cât și utilizatorilor finali: Extensii pentru furnizori. Acesta este răspunsul Google la fragmentarea caracteristicilor camerei pe Android. Producătorii de dispozitive pot opta pentru a livra biblioteci de extensii împreună cu telefoanele lor, care permit CameraX (și dezvoltatorilor și utilizatorilor) să folosească funcțiile native ale camerei. De exemplu, să presupunem că vă place foarte mult efectul mod portret al Samsung, dar nu vă place aplicația pentru cameră în sine. Dacă Samsung decide să implementeze o extensie CameraX Portrait Mode în telefoanele sale, orice aplicație terță parte care utilizează CameraX va putea folosi modul Portret al Samsung. Evident, acest lucru nu se limitează doar la acea caracteristică. În mod teoretic, producătorii pot deschide oricare dintre funcțiile camerei lor către aplicații care utilizează CameraX.
Din păcate, există o avertizare, pe care am menționat-o mai devreme: aceasta nu este o cerință pentru producători. spune Google vor accepta extensii pe toate dispozitivele Pixel noi și viitoare, începând cu Pixel 4. spune OPPO și-au deschis modurile Frumusețe și HDR. Alți producători OEM ar putea alege să pună la dispoziție pentru CameraX doar modurile lor nocturne sau ar putea alege să nu implementeze deloc extensii. Depinde complet de producător ce dispozitiv acceptă ce extensii CameraX (dacă există). Google folosit pentru a menține o listă de dispozitive care acceptă extensiile furnizorilor și ce funcții de cameră au deschis, dar nu au actualizat lista în ultimele câteva luni. Am contactat Google în urmă cu câteva săptămâni pentru a-i întreba dacă ar putea furniza o listă actualizată, dar compania nu a răspuns încă cu o listă. Pentru cât valorează, a postare recentă pe blogul Google afirmă că dispozitivele de la Samsung, LG, OPPO, Xiaomi și Motorola (pe Android 10) oferă o anumită extensie funcții, dar articolul de blog nu specifică exact ce dispozitive sunt acceptate sau ce funcții oferi.
Dacă destui producători decid să implementeze extensii, scena camerei terță parte a Android va fi mult mai luminoasă. Dezvoltatorii nu vor trebui să piardă timpul reimplementând o funcție de cameră pentru fiecare dispozitiv pe care îl pot, deoarece cadrul CameraX se va ocupa de asta. Va exista mai puțină fragmentare a funcțiilor, deoarece funcții similare pe dispozitive vor fi accesibile printr-o interfață comună. Și mai sunt multe posibilități.
Desigur, totul depinde de capacitatea Google de a convinge producătorii să implementeze bibliotecile CameraX Vendor Extension în viitor. Dacă CameraX nu este implementat pe scară largă, se va adăuga doar fragmentării actuale. Personal, totuși, sunt plin de speranță. Google poate fi foarte convingător atunci când vrea și se pare că se lucrează mult la CameraX. Este incitant să văd o posibilă soluție la problemele camerei Android la orizont și aștept cu nerăbdare să văd cum CameraX se va îmbunătăți și se va extinde în timp.
Ce părere aveți despre CameraX? Va reuși Google să creeze o experiență de cameră unificată pentru Android?