Remote config

Remote config er en programvareutviklingsteknikk der atferden eller funksjonene i en app kan endres eksternt uten å måtte publisere en appoppdatering.

Hva er remote config?

Remote config (forkortelse for «remote configuration») er en skybasert tjeneste som gjør det mulig for utviklere å dynamisk endre atferden og utseendet til mobilapplikasjoner uten at brukerne må laste ned og installere appoppdateringer. Det muliggjør sanntidsendringer i appfunksjonalitet, brukergrensesnitt og funksjonstilgjengelighet gjennom konfigurasjon på serversiden.

Du kan endre atferden eller funksjonene i en app eksternt uten å måtte publisere en appoppdatering. Dette gjøres ved å angi standardverdier for ulike innstillinger i appen, for deretter å hente verdiene for disse variablene i sanntid fra en ekstern server. 

Konseptet remote config ble popularisert av Firebase (Firebase Remote Config), en utviklingsplattform for mobilapper fra Google, og har siden blitt tatt i bruk som en vanlig praksis blant mobilappsutviklere. 

Bruksområder for remote config

Det finnes en rekke vanlige bruksområder for remote configuration i apputviklingsprosessen:

  1. Tilbakerulling

    Når en Android- eller iOS-app oppdateres, må appen vanligvis gjennom App Store-gjennomgangsprosessen, noe som kan ta 24–48 timer, og enda lenger hvis oppdateringen blir avvist. Dette kan være et stort problem hvis feil eller problemer oppdages i en oppdatering etter at den er live, og det tar dager å få ut en fiks til appbrukerne.

    Med remote config kan du raskt gjøre endringer i en app som allerede er live i App Store, og rulle tilbake funksjoner i en app uten å måtte gjøre endringer i backend-koden, ganske enkelt ved å redigere remote config-parametere på serversiden.
  2. Funksjonsrutsutleringer

    Fordi remote config lar deg kontrollere atferden og utseendet til appen din eksternt, er det en utmerket måte å rulle ut nye funksjoner til brukerne dine på en kontrollert måte. I stedet for å sende nye funksjoner til 100 % av brukerne med en appoppdatering, kan du angi betingede verdier i appen slik at bare et segment av brukerne ser en funksjon, og du kan rulle ut nye funksjoner i ditt eget tempo etter at de allerede er godkjent.
  3. A/B-testing

    Fordi du kan bruke remote config til å aktivere og deaktivere funksjoner for en delmengde av brukerne dine, kan det også brukes til A/B-testing. Med A/B-testing får en del av brukerne en ny opplevelse, mens en kontrollgruppe ser den opprinnelige opplevelsen. Deretter kan du bruke statistisk analyse for å fastslå effekten av en ny funksjon og få tillit til at den nye funksjonen faktisk er en forbedring sammenlignet med den gamle opplevelsen.

Eksempler på remote config

Si at du er en apputvikler som lager et mobilspill for Android og iOS. Utviklingsteamet ønsker å legge til en ny chattefunksjonalitet i spillet, men er bekymret for hvordan det kan påvirke bruksratene for appen. En utvikler laget en fungerende prototype av funksjonaliteten under en hackathon, men teamet ønsker å teste hvordan den faktisk fungerer i den virkelige verden før de investerer mye utviklingsarbeid i den.

Dette ville vært et godt bruksområde for remote config. Funksjonen kan legges til i appen og konfigureres slik at den bare vises for 10 % av brukergrunnlaget ditt. De øvrige 90 % av brukerne ser den opprinnelige opplevelsen, noe som gir en A/B-test der du kan måle effekten av den nye funksjonen på appens kjernemålinger. Hvis feil eller problemer oppdages, kan funksjonen enkelt deaktiveres eksternt uten å måtte gå gjennom den langvarige App Store-gjennomgangsprosessen.

Du kan også bruke forskjellige remote configuration-parametere for å eksternt kontrollere og teste ulik funksjonalitet i chatten, som meldingslengde, størrelse på chatteboks, innholdsfiltre osv.

Her er noen flere eksempler på remote config.

E-handelsapp

  • Oppdater produktpriser og tilgjengelighet dynamisk
  • Slå sesongbaserte kampanjer og salg av og på
  • Tilpass UI-elementer for ulike brukersegmenter

Nyhetsapp

  • Kontroller synligheten til ulike nyhetskategorier
  • Juster oppdateringsfrekvens for innhold basert på brukerengasjement
  • Aktiver/deaktiver kommentarer eller funksjoner for sosial deling

Treningsapp

  • Tilpass treningsplaner basert på brukerens fremgang
  • Juster algoritmer for målsetting
  • Slå nye helsesporingsfunksjoner av og på

App for sosiale medier

  • Rull ut nye reaksjonstyper til spesifikke brukergrupper
  • Juster algoritmer for innholdsmoderasjon
  • Kontroller synligheten til eksperimentelle funksjoner som lydrom eller kortformvideo

Slik implementerer du remote config

Fire steg:

  1. Sett opp en remote config-server eller velg en tredjepartstjeneste
  2. Implementer klientside-logikk for å hente og anvende eksterne konfigurasjoner
  3. Utvikle en strategi for håndtering av konfigurasjonsoppdateringer og reservemekanismer
  4. Implementer sikkerhetstiltak for å beskytte remote config-systemet ditt

En enkel metode for å implementere remote configuration er gjennom bruk av feature flags og feature-variabler. Et feature flag (også kjent som en feature toggle) er et betinget flagg som kan settes til på eller av, og som kan konfigureres eksternt via API eller gjennom et grafisk brukergrensesnitt i en feature management-plattform som Optimizely Rollouts.

Nye funksjoner og funksjonalitet kan pakkes inn i feature flagging-kode og kan enkelt aktiveres eller deaktiveres eksternt. Feature flags kan også betinget slås av og på basert på brukerprofilen, slik at flagg kan aktiveres for en spesifikk delmengde av brukergrunnlaget ditt.

Feature-variabler er beholdere som kan lagre ulike verdier, og som kan settes dynamisk ved å spørre en konfigurasjonsfil lagret på en skytjeneste via REST API. Disse eksterne verdiene kan konfigureres til å endre atferden eller utseendet til appen din dynamisk uten at du må publisere endringer i en App Store.

Remote config vs. feature flags

Selv om remote config og feature flags er nært beslektede konsepter, har de noen viktige forskjeller:

  • Omfang: Remote config er bredere og tillater endringer i ulike appparametere, mens feature flags vanligvis fokuserer på å aktivere/deaktivere spesifikke funksjoner. 
  • Detaljnivå: Remote config gir ofte mer finmasket kontroll over appatferd, mens feature flags vanligvis er binære (på/av). 
  • Bruksområder: Remote config brukes ofte til A/B-testing og gradvise utrullinger, mens feature flags vanligvis brukes til kanariutgivelser og til å skille distribusjon fra lansering.

Begrensninger og hensyn

Når du implementerer remote config, bør du vurdere følgende potensielle utfordringer:

  • Økt kompleksitet i apparkitekturen
  • Potensielle ytelsesproblemer på grunn av hyppige konfigurasjonshentinger
  • Personvern- og databrukshensyn knyttet til brukersegmentering
  • Risiko for overavhengighet av eksterne konfigurasjoner, noe som potensielt kan komplisere appvedlikehold

Gratis remote config-verktøy

Etter hvert som mobilapputvikling fortsetter å utvikle seg, vil remote config sannsynligvis spille en stadig viktigere rolle i å skape fleksible, responsive og brukersentrerte applikasjoner.

Hvis du ønsker å komme i gang med remote configuration, tilbyr Optimizely en gratis remote config-løsning kalt Optimizely free feature flagging. Optimizely Rollouts gir gratis feature flagging og A/B-testingfunksjonalitet, slik at du kan begynne å dra nytte av kraften i remote config i apputviklingsprosessen din.

Optimizely Rollouts fungerer med de mest populære mobilutviklingsspråkene og SDK-ene, inkludert Swift, Java, JavaScript og Objective-C.