L'API CameraX di Google consente alle app di utilizzare le migliori funzionalità della fotocamera stock

L'API delle estensioni del fornitore CameraX di Google consente alle app per fotocamere di terze parti di utilizzare alcune delle migliori funzionalità dell'app per fotocamere stock.

C'è una battuta di lunga data su Internet secondo cui puoi capire se qualcuno usa un telefono Android dal cattiva qualità dei loro selfie. Sebbene i meme stiano decisamente esagerando, sfortunatamente c'è un po' di verità dietro di loro. I telefoni Android sono generalmente più avanti degli iPhone in termini di prestazioni della fotocamera, almeno sulla carta. OEM come LG e Samsung tendono a utilizzare fotocamere con più pixel e aperture maggiori rispetto agli iPhone concorrenti. Le specifiche non sono tutto, però. Parte del motivo per cui Apple può competere nel gioco della fotocamera è grazie al software iOS. Tutti gli OEM, da Apple a ZTE, utilizzano alcuni software magici per migliorare l'aspetto di foto e video. Le aziende utilizzano algoritmi per ridurre il rumore, modificare la saturazione e il contrasto del colore e persino illuminare le scene buie, il tutto per rendere i risultati finali più piacevoli. Questo è, storicamente, il punto in cui gli OEM Android non sono stati all’altezza di Apple.

Sviluppi software

Più recentemente, però, le cose hanno cominciato a cambiare. Il più grande esempio di questo cambiamento è probabilmente Google e la gamma Pixel. In termini di hardware, le fotocamere Pixel non possono davvero essere paragonate ad altre ammiraglie. Tuttavia, è nel software che Google fa la differenza. Con funzionalità come la modalità Ritratto, la Visione notturna, l'HDR+ e lo Zoom Super Res, i Pixel si sono guadagnati la reputazione di avere alcune delle le migliori fotocamere per smartphone sul mercato.

Altri OEM Android stanno seguendo l'esempio di Google. Samsung, OPPO, Xiaomi, Vivo, OnePlus, ecc., hanno tutti introdotto le proprie versioni delle funzionalità più popolari della fotocamera del Pixel e hanno anche alcune caratteristiche uniche. Con parole d'ordine come "AI" e "apprendimento automatico", gli OEM Android stanno cercando di convincerti che il loro software è il software con cui desideri migliorare le tue foto e i tuoi video. Siamo arrivati ​​a un punto in cui i telefoni Android possono davvero competere con gli iPhone in tutti gli aspetti delle prestazioni della fotocamera.

Il problema

Sfortunatamente, c'è ancora un'importante eccezione: le app di terze parti. La tua super ammiraglia da 50 fotocamere potrebbe scattare foto straordinarie con l'app fotocamera integrata, ma passa a Instagram, Snapchat, o anche un'app per fotocamera di terze parti, ed è fondamentalmente una garanzia che ciò che catturi non avrà lo stesso aspetto Bene. Come se ciò non bastasse, perdi anche tutte le fantastiche funzionalità e modalità della fotocamera. Questo perché, a differenza di iOS, Android non dispone di una struttura fotografica unificata. Certo, le funzionalità di base ci sono. Un'app di terze parti può comunque scattare foto e video e utilizzare il flash. Ma cosa succede se il tuo telefono ha un sensore secondario per grandangolo o teleobiettivo? È possibile che gli sviluppatori riescano ad accedere al secondo sensore, ma il metodo che utilizzeranno dovrà essere specifico per il tuo dispositivo.

Supponiamo che tu abbia un LG V40 (lo so, lo so, immagina di farlo). Il V40 ha tre sensori: standard, teleobiettivo e ultrawide. L'app della fotocamera integrata non ha problemi a passare da un sensore all'altro. Ma dimentica di usare il sensore ultrawide su Instagram. Ora, Instagram potrebbe dare un'occhiata a come l'app della fotocamera LG utilizza i diversi sensori e sviluppare un modo per consentire agli utenti di scattare foto grandangolari o con zoom. Ma probabilmente funzionerebbe solo sull'LG V40. Anche se il Galaxy S10 ha le stesse tre modalità di sensore (standard, teleobiettivo e ultrawide), il team di Instagram dovrebbe sviluppare un altro metodo per Samsung.

Ora aggiungi Huawei, Vivo, OnePlus, Xiaomi, OPPO, Nokia, ZTE, HTC e qualsiasi altro marchio ti venga in mente al mix. Come puoi immaginare, provare a sviluppare un metodo per accedere solo ai potenziali sensori aggiuntivi per ciascun telefono di ciascuna marca diventerebbe incredibilmente noioso. E poi devi mantenere la compatibilità con tutti i telefoni attuali e nuovi.

Queste limitazioni si applicano anche alle funzionalità della fotocamera. Cose come la modalità Ritratto, Visione notturna e HDR+ richiedono metodi specifici per dispositivo da utilizzare o sono completamente inaccessibili alle app di terze parti.

Ovviamente, per un'app come Instagram, questo non è un grosso problema. Non è il loro obiettivo e puoi sempre utilizzare l'app della fotocamera del telefono per scattare prima la foto. Ma che dire delle app dedicate alla fotocamera?

Gli effetti

Apri Google Play Store e cerca "fotocamera". Troverai centinaia di risultati. Nonostante i miglioramenti apportati al software della fotocamera di prima parte, le app per fotocamera di terze parti sono ancora molto popolari. Alcuni mirano a fornire funzionalità più tecniche come l'esposizione e la messa a fuoco manuali (funzionalità che l'app della fotocamera del telefono potrebbe non avere). Altri mirano a fornire una UX coerente su tutti i tuoi dispositivi.

Soprattutto per quest'ultimo motivo, la frammentazione della fotocamera di Android può rendere incredibilmente difficile lo sviluppo e il mantenimento di un'app per fotocamera ampiamente compatibile. Se stai cercando di fornire funzionalità extra, come includerai tutte le potenziali funzionalità di tutte le potenziali app proprietarie? Se stai cercando un'esperienza coerente, come puoi realisticamente garantire che l'accesso al sensore grandangolare su ogni dispositivo che lo possiede funzionerà?

La risposta è: non puoi. Puoi provare a supportare quante più funzionalità su quanti più dispositivi possibile, ma alla fine ci vorrà molto lavoro per una ricompensa relativamente piccola. Non è difficile immaginare che almeno alcuni sviluppatori abbiano semplicemente rinunciato a creare un'app fotocamera completa per Android. In effetti, molti lo hanno fatto.

La casualità

Vai a cercare le app della fotocamera sul Play Store. Noterai alcune cose. Uno, ce ne sono a quantità di opzioni. Due, la maggior parte di loro fa cose abbastanza simili (applica filtri a posteriori e simili). Tre: le opzioni più avanzate probabilmente non vengono aggiornate così frequentemente. Potresti anche trovare risultati su Google che non sono più presenti nello store.

Recentemente, abbiamo avuto un esempio piuttosto importante di qualcuno che ha deciso di mollare. Moment ha deciso di interrompere lo sviluppo della sua app Pro Camera per Android.

L'app Pro Camera di Moment mirava a portare funzionalità avanzate per foto e video su Android. Queste sono solo alcune di queste funzionalità:

  • Istogrammi RGB
  • Messa a fuoco divisa
  • Controllo manuale su esposizione, ISO, velocità dell'otturatore, bilanciamento del bianco
  • Puntamento della messa a fuoco
  • Cattura RAW
  • Modifiche dinamiche al framerate e alla risoluzione
Screenshot della fotocamera Moment Pro. Attraverso: 9to5Google

Il problema è che molte di queste funzionalità semplicemente non funzionano su molti dispositivi. Guardare l'elenco di compatibilità delle funzionalità di Moment è come guardare l'immagine di una pista da ballo. Anche all'interno della stessa linea di prodotti, il supporto delle funzionalità è incredibilmente frammentato. Dopo due anni di sviluppo, Moment non ha più la capacità di continuare lo sviluppo della sua app.

Verde = supportato da Moment Pro Camera. Giallo = supportato dal dispositivo ma non dalla mia fotocamera Moment Pro. Rosso = non supportato dal dispositivo. Fonte immagine: Momento. Estratto tramite: 9to5Google.

La soluzione?

Sono passati quasi 12 anni da quando Android è stato rilasciato per la prima volta, ma potremmo finalmente avere una soluzione alla frammentazione della fotocamera.

Questa soluzione arriva direttamente da Google, sebbene non sia integrata direttamente in Android. Invece è un Libreria di supporto Jetpack. Se hai familiarità con lo sviluppo di app Android, probabilmente ti sei imbattuto nelle suite di librerie di supporto AppCompat e AndroidX. Queste librerie di Google mirano a rendere più semplice per gli sviluppatori mantenere la compatibilità con le versioni precedenti di Android, pur essendo in grado di introdurre nuove funzionalità e stili.

Una nuova aggiunta a Jetpack (o più o meno) è la libreria CameraX. Similmente ad altre librerie Jetpack, l'obiettivo di CameraX è semplificare lo sviluppo della fotocamera. Nella sua forma più elementare, CameraX avvolge Android Fotocamera2, un'API che consente alle app di sondare le funzionalità della fotocamera su un dispositivo, a condizione che l'OEM esponga tali funzionalità della fotocamera all'API. Gli utenti possono verificare quali funzionalità della fotocamera sono esposte all'API Camera2 utilizzando l'applicazione Camera2 API Probe e quindi confrontarle con le funzionalità disponibili nell'applicazione della fotocamera di serie.

Sonda API Camera2Sviluppatore: marzo Media Lab

Prezzo: gratuito.

4.2.

Scaricamento

Il vantaggio di utilizzare CameraX come wrapper per l'API Camera2 è che, internamente, risolve eventuali problemi di compatibilità specifici del dispositivo che potrebbero sorgere. Questo da solo sarà utile per gli sviluppatori di app per fotocamere poiché può ridurre il codice standard e il tempo impiegato nella ricerca dei problemi della fotocamera. Ma non è tutto ciò che CameraX può fare.

Sebbene la prima parte interessi principalmente solo gli sviluppatori, ce n'è un'altra che si applica sia agli sviluppatori che agli utenti finali: Estensioni del fornitore. Questa è la risposta di Google alla frammentazione delle funzionalità della fotocamera su Android. I produttori di dispositivi possono scegliere di fornire librerie di estensioni con i loro telefoni che consentono a CameraX (e sviluppatori e utenti) di sfruttare le funzionalità native della fotocamera. Ad esempio, supponiamo che ti piaccia molto l'effetto della modalità Ritratto di Samsung, ma non ti piace l'app della fotocamera in sé. Se Samsung decide di implementare un'estensione della modalità Ritratto di CameraX nei suoi telefoni, qualsiasi app di terze parti che utilizza CameraX sarà in grado di utilizzare la modalità Ritratto di Samsung. Ovviamente, questo non è limitato a quella caratteristica. I produttori possono teoricamente aprire qualsiasi funzionalità della loro fotocamera alle app utilizzando CameraX.

Sfortunatamente c'è un avvertimento, di cui ho parlato prima: questo non è un requisito per i produttori. Google dice supporteranno le estensioni su tutti i dispositivi Pixel nuovi e futuri, a partire da Pixel 4. OPPO dice hanno aperto le modalità Bellezza e HDR. Altri OEM potrebbero scegliere di rendere disponibili a CameraX solo le modalità notturne oppure potrebbero scegliere di non implementare alcuna estensione. Dipende completamente dal produttore quale dispositivo supporta quali estensioni CameraX (se presenti). Google utilizzato per mantenere un elenco di dispositivi che supportano le estensioni del fornitore e quali funzionalità della fotocamera hanno aperto, ma non hanno aggiornato l'elenco negli ultimi mesi. Abbiamo contattato Google qualche settimana fa chiedendo loro se potevano fornire un elenco aggiornato, ma la società non ha ancora risposto con un elenco. Per quello che vale, a recente post sul blog di Google afferma che i dispositivi Samsung, LG, OPPO, Xiaomi e Motorola (su Android 10) forniscono alcune estensioni funzioni, ma il post del blog non specifica esattamente quali dispositivi sono supportati o quali funzioni svolgono fornire.

Se un numero sufficiente di produttori decidesse di implementare estensioni, il panorama delle fotocamere di terze parti di Android sarebbe molto più brillante. Gli sviluppatori non dovranno perdere tempo a reimplementare una funzionalità della fotocamera per ogni dispositivo possibile poiché il framework di CameraX se ne occuperà. Ci sarà una minore frammentazione delle funzionalità poiché funzionalità simili su tutti i dispositivi saranno accessibili tramite un'interfaccia comune. E ci sono molte altre possibilità.


Naturalmente, tutto dipende dalla capacità di Google di convincere i produttori a implementare le librerie CameraX Vendor Extension in futuro. A meno che CameraX non venga ampiamente implementato, non farà altro che aumentare l’attuale frammentazione. Personalmente, però, sono fiducioso. Google può essere molto convincente quando vuole, e sembra che si stia lavorando molto su CameraX. È emozionante vedere all'orizzonte una possibile soluzione ai problemi della fotocamera di Android e non vedo l'ora di vedere come CameraX migliorerà e si espanderà nel tempo.

Cosa ne pensi di CameraX? Riuscirà Google a creare un'esperienza fotografica unificata per Android?