Optimization glossary

Ekstern konfigurasjon

Hva er ekstern konfigurering?

Remote config (forkortelse for "remote configuration") er en skybasert tjeneste som gjør det mulig for utviklere å dynamisk endre oppførselen og utseendet til mobilapplikasjoner uten at brukerne trenger å laste ned og installere appoppdateringer. Det gjør det mulig å endre appens funksjonalitet, brukergrensesnitt og tilgjengelighet i sanntid ved hjelp av konfigurasjon på serversiden.

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

Konseptet med ekstern konfigurering ble popularisert av Firebase (Firebase Remote Config), en plattform for utvikling av mobilapper fra Google, og har siden begynt å bli tatt i bruk som en vanlig praksis av mobilapputviklere.

Bruksområder for ekstern konfigurasjon

Det finnes en rekke vanlige bruksområder for ekstern konfigurasjon i apputviklingsprosesser:

  1. Tilbakeføringer

    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 det oppdages feil eller problemer i en oppdatering etter at den er live, og det tar flere dager å få en løsning ut til appbrukerne.

    Med ekstern konfigurasjon kan du raskt gjøre endringer i en app som allerede er live i App Store, og tilbakestille funksjoner i en app uten å måtte gjøre endringer i backend-koden, ganske enkelt ved å redigere eksterne konfigurasjonsparametere på serversiden.
  2. Utrulling av funksjoner

    Siden ekstern konfigurasjon gir deg mulighet til å fjernstyre oppførselen og utseendet til appen din, er det en flott måte å rulle ut nye funksjoner til brukerne 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 når de allerede er godkjent.
  3. A/B-testing

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

Eksempler på ekstern konfigurasjon

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

Dette kan være et godt bruksområde for fjernkonfigurering. Funksjonen kan legges til i appen, og konfigureres slik at den bare vises for 10 % av brukerbasen. De resterende 90 % av brukerne får se den opprinnelige opplevelsen, noe som fører til en A/B-test der du kan måle effekten av den nye funksjonen på appens kjernetall. Hvis det oppdages feil eller problemer, kan funksjonen enkelt deaktiveres eksternt uten å måtte gå gjennom den langvarige App Store-gjennomgangsprosessen.

Du kan også bruke ulike fjernkonfigurasjonsparametere for å fjernstyre og teste ut ulike funksjoner i chatten, for eksempel meldingslengde, størrelse på chat-boksen, innholdsfiltre osv.

Her er noen flere eksempler på ekstern konfigurasjon.

App for e-handel

  • Dynamisk oppdatering av produktpriser og tilgjengelighet
  • Veksle mellom sesongbaserte kampanjer og salg
  • Juster UI-elementer for ulike brukersegmenter

Nyhetsapp

  • Kontroller synligheten til ulike nyhetskategorier
  • Juster oppdateringsfrekvensen for innhold basert på brukerengasjement
  • Aktiver/deaktiver kommentarer eller sosiale delingsfunksjoner

App for treningssporing

  • Endre treningsplaner basert på brukerens fremgang
  • Juster målsettingsalgoritmer
  • Slå på nye funksjoner for helsesporing

App for sosiale medier

  • Rull ut nye reaksjonstyper til bestemte brukergrupper
  • Juster algoritmene for innholdsmoderering
  • Kontrollere synligheten til eksperimentelle funksjoner som lydrom eller kortformede videoer

Slik implementerer du ekstern konfigurasjon

Fire trinn:

  1. Konfigurer en ekstern konfigureringsserver eller velg en tredjepartstjeneste
  2. Implementere logikk på klientsiden for å hente og bruke eksterne konfigurasjoner
  3. Utvikle en strategi for håndtering av konfigurasjonsoppdateringer og reservemekanismer
  4. Implementere sikkerhetstiltak for å beskytte systemet for ekstern konfigurering

En enkel metode for å implementere ekstern konfigurasjon er å bruke funksjonsflagg og funksjonsvariabler. Et funksjonsflagg (også kjent som en funksjonsbryter) er et betinget flagg som kan slås av eller på, og som kan fjernkonfigureres via API eller via et brukergrensesnitt i en plattform for funksjonsadministrasjon, for eksempel Optimizely Rollouts.

Nye funksjoner og funksjonalitet kan pakkes inn i kode for funksjonsflagging, og kan enkelt aktiveres eller deaktiveres eksternt. Funksjonsflagg kan også aktiveres eller deaktiveres basert på brukerprofilen, slik at flaggene kan aktiveres for en bestemt del av brukerbasen.

Funksjonsvariabler er beholdere som kan lagre ulike verdier, som kan angis dynamisk ved å spørre en konfigurasjonsfil som er lagret på en skytjeneste via REST API. Disse eksterne verdiene kan konfigureres for å endre oppførselen eller utseendet til appen din dynamisk uten å måtte publisere endringer i en App Store.

Ekstern konfigurasjon vs. funksjonsflagg

Selv om ekstern konfigurasjon og funksjonsflagg er nært beslektede konsepter, har de noen viktige forskjeller:

  • Omfang: Ekstern konfigurasjon er bredere og gir mulighet til å endre ulike app-parametere, mens funksjonsflagg vanligvis fokuserer på å aktivere/deaktivere spesifikke funksjoner.
  • Granularitet: Ekstern konfigurasjon gir ofte mulighet for mer detaljert kontroll over appens atferd, mens funksjonsflagg vanligvis er binære (på/av).
  • Bruksområder: Ekstern konfigurasjon brukes ofte til A/B-testing og gradvis utrulling, mens funksjonsflagg ofte brukes til kanarifuglutgivelser og for å skille distribusjon fra utgivelse.

Begrensninger og hensyn

Når du implementerer ekstern konfigurering, bør du ta hensyn til følgende potensielle utfordringer:

  • Økt kompleksitet i apparkitekturen
  • Potensielle ytelsesproblemer på grunn av hyppige konfigurasjonshentinger
  • Problemer med personvern og databruk knyttet til brukersegmentering
  • Risiko for overdreven avhengighet av eksterne konfigurasjoner, noe som kan gjøre det vanskeligere å vedlikeholde appen

Gratis verktøy for ekstern konfigurering

Etter hvert som utviklingen av mobilapper fortsetter å utvikle seg, vil ekstern konfigurering sannsynligvis spille en stadig viktigere rolle når det gjelder å skape fleksible, responsive og brukersentrerte applikasjoner.

Hvis du ønsker å komme i gang med ekstern konfigurering, tilbyr Optimizely en gratis løsning for ekstern konfigurering kalt Optimizely free feature flagging. Optimizely Rollouts tilbyr gratis funksjonsflagging og A/B-testing, slik at du kan begynne å dra nytte av fjernkonfigurasjon i apputviklingsprosessen din.

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