1. Indholdsfortegnelse
2. Indledning
Se GM Arkitektur og design for en overordnet arkitekturbeskrivelse.
2.1. Formål
Formålet med dette dokument er at beskrive design og arkitektur af app'en
3. Android app arkitektur
Android app'en er lavet ud fra Google Jetpack Architecture Components guidelines, som er deres anbefalede måde at lave en app på.
Strukturen kan ses herunder:
:app
:build-logic
:convention
:core
:data
:database
:datastore
:designsystem
:model
:network
:shared
:feature
:biometricdialog
:careplanactivities
:knowledge
:more
:overview
:useradmission
:TestAssertions
3.1. :app
Indeholder MainActivity og roden af navigationen. Den inkluderer feature modulerne, for at binde deres funktionalitet sammen.
3.2. :build-logic
Er beskrevet på https://www.nspop.dk/pages/viewpage.action?pageId=121373668#GravidiDK(Android)Guidetiludviklere-BuildLogicmodulet
3.3. :core
Indeholder appens "backend", business logic og udstiller modulerne til brug for andre moduler
3.3.1. :data
Repositories, som samler data fra :api og :database
3.3.2. :database
Room database til at holde artikler
3.3.3. :datastore
Holder på brugerens præferencer (terminsdato, fødselsdato, checklister, sikkerhed osv)
3.3.4. :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.
3.3.5. :model
Domænespecifikke modeller, som bruges på tværs af moduler.
3.3.6. :network
Bruges til at kommunikerer eksternt til API og andre endpoints.
3.3.7. :shared
Delt logik, som bruges af flere moduler; F.eks. Result bruges på tværs af både :network og :data
3.4. :feature
Dette modul består af UI features, som kan vises til brugere
3.4.1. :biometricdialog
Dialogboksen for at kunne gemme sit data bag et biometrisk login, har egen pakke fordi den bruges både i :useradmission og :more
3.4.2. :careplanactivites
Skærme omhandlende et graviditetsforløb
3.4.3. :knowledge
Vidensskærmen og alle dens undersider
3.4.4. :more
Indeholder indstillinger og "om" sektioner, som linker til privatlivspolitikken og diverse andre sider
3.4.5. :overview
Forsiden af appen; Overbliksiden
3.4.6. :useradmission
Bruges når brugeren har slået biometrisk login til
3.5. :TestAssertions
Har logik til at hjælpe med at teste mere effektivt - Dette modul bliver automatisk inkluderet når et modul bruger jacoco-pluginet