I / O 2019 Android Track Picks & Insights

Google I / O er en wrap. Konferencen fejrede produkt- og platforminnovationer hos Google. Som en del af Google Developer Knowledgeable-programmet rejste en gruppe af os til I / O og nød at lære sammen, her vil vi dele nogle af vores topmomenter og sessioner fra arrangementet.

Dette er blot et uddrag af, hvad der skete på Google I / O 2019, du kan finde en playliste med alle de 177 sessioner!

Nyheder med Android til biler

Paul Blundell (Android GDE @ Novoda)

Google I / O har tre typer samtaler; hænder på kodning, udvikler dybdyk og produktsalgspladser. Dette var produktsalgstypen. Det meste af tiden er det en dårlig ting (når du naked vil vide, hvordan du kode koden), males de er virkelig gode samtaler for, når du udforsker et nyt område, og hvad du skal kende produktkoncepter på højt niveau. Denne samtale forklarede, hvordan Google Assistant kommer til bilgrænsefladen, hvilket antyder, at det sandsynligvis vil forbruge Android Auto, som det i øjeblikket er, og også forklare, hvordan originale bilproducenter begynder at bruge Android til deres infotainment-systemer.

Dette var interessant, da det forklarede, hvordan bilproducenter omfavner en model af Android AOSP for at køre infotainment i deres biler. Hvis du er fortrolig med Android Auto, og hvordan den låses ned til en bestemt delmængde af apps, er Android Auto OS ikke anderledes – males hver producent kan canine beslutte at dele nøgleoplysninger om bilen. Dette er den seje ting! Det er døren til åbningen af ​​potentialet omkring visning af klimakontrol, bilhastighed og anden data.

Se dette rum, Google er på mission for massemarkedsandel i bilområdet, de ved, at bilproducenterne skriger efter en standardiseret platform til at køre infotainment, og hvis Google formår at trække det ud, kan hver bilproducent køre Android. Hvis du er interesseret i dette rum (som mig), er det en god indsats at begynde at lære mere om AOSP, opbygge din egen Android-gaffel og lære finesser af brugerdefinerede ROM’er. (Og en interessant sidebemærkning, forking af AOSP er nøjagtigt hvad Android JetPack-komponisteamet beder dig om at gøre, hvis du vil have en snigende high af, hvad de har til …)

Jeg nød virkelig ‘group lounge’ på Google IO, dette var en plads til alle de forskellige samarbejder, som Google bliver involveret i, for at mødes og story (GDG’er, GDE’er, Meetups, Udacity osv.). Jeg bemærkede, at de havde feedbackindlæg, og når de kiggede indeni, var de hindbær-pi og talte til nogle Google-brugere der, de kører AndroidThings, måske er der håb for platformen endnu.

Levering, der kan tilpasses, med App-pakken og nem deling af testbygninger

Edward Woollard (Android Engineer @ Monzo Financial institution)

Google har løbende arbejdet med at forbedre Google Play Butik i de senere år, og med det arbejde er vi blevet bragt med nogle dejlige nye funktioner, der hjælper os med at levere vores app-builds til brugerne. Vi har nu opdateringer i appen, betinget levering, levering efter behov og levering af aktiver. Jeg forklarer mere om, hvad hver af disse er, og hvordan de nøjagtigt kan gavne dig med et specifikt eksempel pr. Funktion. Da levering af aktiver er til spil, vil jeg fokusere på de første tre indtil videre.

En ting at bemærke er, at alle disse nye funktioner bygger på brug af app-bundter, som du bestemt bør tjekke ud, hvis du ikke allerede har gjort det. De er nu den officielle normal for, hvordan man sender Android-apps by way of Google Play, males den væsentlige forskel er, at Google nu kan håndtere APK-generering og signering for dig … du giver naked koden.

For det første er vi nu blevet velsignet med opdateringer i appen. Har du nogensinde haft en tid, hvor du har været nødt til kritisk at rette en fejl og ønsker at sikre, at alle brugere har denne seneste appversion, eller måske vil du gerne trække en gammel model på pension, males er bevidst om at lade disse brugere være i vanskeligheder? Tidligere har vi været nødt til at stole på, at brugere installerer opdateringer, hvad enten det er manuelt eller venter på, at automatiske opdateringer udrulles, males hovedproblemet er stadig … vi kan ikke garantere, at brugeren har den nyeste model, før han bruger appen i en bestemt session. Nu har vi en førstepartsløsning til let at fortælle, om der er en ny appversion tilgængelig, og hvis vi ønsker det, kræve, at den nye model er installeret, før brugeren kan fortsætte med at bruge appen, alt sammen uden engang at besøge Google Play Butik. Hvad mere er, at den løsning, jeg lige har beskrevet, er kendt som ‘øjeblikkelige opdateringer i appen’, males de har også leveret ‘fleksible’, hvis du vil give brugeren mulighed for at opdatere til den nyeste model inde i appen, mens den stadig er være i stand til at udføre andre handlinger. I mange tilfælde er dette åbenbart en pænere løsning, males fører uundgåeligt til mere arbejde for at give dine brugere en dejlig oplevelse.

Næste i køen er betinget levering. Masser af apps vokser til et punkt, hvor de begynder at sigte på brugere fra enten forskellige markeder, eller måske har de to separate brugerbrugssager, som Deliveroo-ryttere og Deliveroo-ordrer. Du kan måske hurtigt finde ud af, at der er nogle funktioner, som du ikke ønsker at blive sendt til et bestemt marked, eller at en bestemt del af dine brugere har brug for en funktion fra din app, og andre ikke. Vi kan nu sende denne funktion til bestemte brugere, hvis de opfylder visse kriterier, som vi kan definere.

For det tredje leverer vi on-demand. Selvom det svarer til betinget levering, giver levering på forespørgsel os mulighed for at tilføje og fjerne funktionerne i appen, når og når vi har brug for det, snarere finish blot at levere eller ikke levere dem oprindeligt, når appen først installeres. Dette giver os mulighed for ikke at samle den første obtain af appen, hvis vi ved, at der er en stor funktion, som de fleste brugere ikke bruger regelmæssigt, hvis nogensinde. På samme måde kunne vi fjerne en funktion efter behov.

Det ser ud til, at Google virkelig fordobler den dynamiske levering af funktioner og brugen af ​​app-bundter. Dette er en stor gevinst for brugerne, da det tilskynder udviklere til at sikre, at alle dele af appen på en brugers telefon er gavnlige for dem og dem specifikt, hvilket i sidste ende sparer en masse værdifuld diskplads. Vi har virkelig set app-pakker forbedres massivt, og det er klart, at de er på vej i den rigtige retning ved at fremme app-modularisering for at tilpasse en apps unikke leveringsstatus.

Jeg glæder mig til at se, hvad der kommer næste gang!

Android Jetpack: Forstå CameraX Assist Library

Joe Birch (Android GDE @ Buffer)

Hvis du nogensinde har brugt Digicam API’erne på Android, har du måske følt, at de aldrig har været den enkleste ting at implementere. Der var oprindeligt Digicam API, som blev udfaset til fordel for Camera2 API – denne iteration havde til formål at give udviklere en bedre oplevelse, når de beskæftiger sig med kamera-API’er på Android. Heldigvis for os har den nye CameraX API til formål at lindre disse smertepunkter for os ved at tilbyde en enklere løsning til udvikling af kamerafunktioner. Mens CameraX er bygget oven på Camera2 API, forenkler det i høj grad implementeringsprocessen for minSDK 21 og over.

CameraX-biblioteket giver three implementeringer af såkaldte use-cases. Hver af disse brugssager sigter mod at forenkle processen med almindelige implementeringer af kamerafunktioner, disse er:

  • Eksempel – Bruges til at forberede en søger til kameraets forhåndsvisning.
  • Billedoptagelse – Bruges til billedoptagelser med lav latenstid.
  • Billedanalyse – Bruges til at udføre analyser af billeder.

Hver use case-klasse tager en eller anden konfiguration i type af en Config-forekomst. Denne grænseflade bruges til at definere et fælles sæt funktionalitet, der bruges på tværs af hver af underklasserne til hver brugssag. Hvis du springer ind i kilden til Config-filen, vil du bemærke, at der er mange biblioteksspecifikke definitioner. En Config-klasse bruges til at indeholde en samling af indstillinger og værdier, der bruges til at repræsentere konfigurationsoplysningerne for den tilsvarende brugssag, du manipulerer disse værdier gennem use case-klassen, så du skal ikke bekymre dig for meget om, hvad der er inde i denne Config-grænseflade.

For hver brugssag, som du ønsker at implementere, skal du starte en af ​​disse Config-klasser, give de ønskede muligheder / værdier og derefter tildele den til din brugssag. Denne konfiguration hjælper med at gøre kameraets funktioner fleksible og tilpasses, så vi kan optimere deres anvendelser inden for vores applikationer.

Samlet set sigter CameraX-biblioteket mod at skabe en ensartet oplevelse for både udviklere og brugere, når det kommer til kameraer inden for applikationen. Det har længe ventet på Android-platformen, og jeg føler bestemt, at dette vil ændre, hvordan vi bygger og bruger kameraer til det bedre.

Demystificering af Android-tilgængelighedsudvikling

Ataul Munim (GDE @ Monzo)

Jeg er altid virkelig interesseret i at lytte til foredrag om mobil tilgængelighed – især dem på Android. Indholdet er normalt ret ens, males jeg finder det fascinerende at opleve de forskellige tilgange, fremhævninger og take-away.

I år præsenterede Phil Weaver, Qasid Sadiq og Isha Bobra, hvad jeg synes har været den mest eksplicitte vejledning for Android-appudviklere, som jeg nogensinde har set. Phil begyndte med introduktionen og delte tre enkle principper:

– Gør data synlig
– Foretrækker enkle, retailer kontroller
– Mærk billeder præcist og kortfattet

Disse dækker mange sager: tekst i passende størrelse, farvekontrast og farveblinde sikre paletter. Det handler ikke kun om at gøre dine oplysninger synlige i bogstavelig forstand, males udsætte dem, hvor det giver mening, f.eks. Tilføje billedtekster til videoindhold. Han fulgte med dette diagram, der viser interaktionen mellem en bruger og en app:

App, der præsenterer data for en bruger og en bruger, kan deal with på appen

I stedet for at få appudviklere til at håndtere specialiserede brugssager for hver bruger, viste Phil et billede, der forklarede, hvordan tilgængelighedstjenester på Android blev designet til at fungere som brugerens agent.

I stedet for, at appen præsenterer data direkte for brugerne, bør appudviklere sikre, at de udsætter data for systemet, hvilket igen vil overflade det for brugeren på den mest passende måde (f.eks. På skærmen, hørbart, med en ekstern hardwareenhed osv. .).

App, der præsenterer data for en tilgængelighedstjeneste, der fungerer som brugerens agent

Google arbejder på at løse tilgængelighedsproblemer i stor skala. Selvom vi helt sikkert kan tilbyde kortsigtede løsninger på problemer, som vi oplever i vores apps, ville det være mere virkningsfuldt, hvis vi rejser et downside eller en fejl, så de kan arbejde på at forbedre basissagen for alle de udviklere, der _ ikke_ leverer løsninger i deres apps, hvilket fører til en mere ensartet brugeroplevelse (over tid).


I / O var en virkelig inspirerende begivenhed og delte, at læring med andre tillod mere diversitet i meninger, og lad os se og lære ting fra et perspektiv, som vi måske ikke havde overvejet før.

Dette indlæg er et samarbejde og som sådan er krydsopslået.

Her på Joes weblog

Her på Atauls weblog

Her på Blundells weblog

Her på Eds weblog