Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Strukturen kan ses herunder:

Diagrammet nedenfor viser hvilke moduler der har adgang til hvilket data og sammenhængen imellem dem.

Shared, ui-compose og model har ingen interne afhængigheder.

Image Removed

app: Indeholder aktiviteter, fragmenter, views og screens, samt view models til håndtering af den generelle logik 

api: Står for håndtering af data hentet fra CMS-apiet

database: Holder en lokal version af alle artikler, for at kunne håndtere de store mængder tekst fra CMSet

datastore: Holder på brugerens præferencer og brugerens graviditet (terminsdato, fødselsdato)

repo: Samler alt data fra database, datastore og API, således at denne logik abstraheres væk fra app-modulet.

shared: Indeholder klasser som skal bruges på tværs af flere moduler. F.eks. Result og ResultWrapper.

ui-compose: Indeholder Min Graviditets compose tema og specifikke typer af compose komponenter, som er stylet til projektet.

model: Indeholder data klasser.

Hjælper moduler:

:app
:build-logic
    :convention
:core
    :data
    :database
    :datastore
    :designsystem
    :model
    :network
    :shared
:feature
    :biometricdialog
    :careplanactivities
    :knowledge
    :more
    :overview
    :useradmission
:TestAssertions


:app

Indeholder MainActivity og roden af navigationen. Den inkluderer feature modulerne, for at binde deres funktionalitet sammen.

:build-logic

Er beskrevet på https://www.nspop.dk/pages/viewpage.action?pageId=121373668#GravidiDK(Android)Guidetiludviklere-BuildLogicmodulet


:core

Indeholder appens "backend", business logic og udstiller modulerne til brug for andre moduler

:data

Repositories, som samler data fra :api og :database

:database

Room database til at holde artikler 

:datastore

Holder på brugerens præferencer (terminsdato, fødselsdato, checklister, sikkerhed osv)

:designsystem

Et fælles sted hvor at UI elementer fra projektets figma er samlet. Optimalt set vil alle elementer i appens design være defineret herinde, således at appen bliver mest ensartet. Dette modul bliver brugt af alle feature moduler, så alle UI moduler bør bruge de samme composables.

model

Domænespecifikke modeller, som bruges på tværs af moduler.

network

Bruges til at kommunikerer eksternt til API og andre endpoints.

shared

Delt logik, som bruges af flere moduler; F.eks. Result bruges på tværs af både :network og :data


:feature

Dette modul består af UI features, som kan vises til brugere

:biometricdialog

Dialogboksen for at kunne gemme sit data bag et biometrisk login, har egen pakke fordi den bruges både i :useradmission og :more

:careplanactivites

knowledge

more

overview

Forsiden af appen; Overbliksiden

useradmission

Bruges når brugeren har slået biometrisk login til


TestAssertions

TestAssertions: Har logik til at hjælpe med at teste mere effektivt - Dette modul bliver automatisk inkluderet når et modul bruger jacoco-pluginetbuild-logic: Indeholder gradle plugins som hjælper med at holde koden strømlinet og ensartet. Når et modul bruger en eller flere plugins herfra vil flavors, kotlin og alt muligt andet være sat ens op.