Formålet med dette dokument, er at beskrive systemkrav og opsætning for udviklere på projektet. Desuden beskrive en række værktøjer, der hjælper med udviklingen, som er anvendt i projektet.
-
Xcode, min version 12.4
Swiftlint, min. version 0.41.0.: https://github.com/realm/SwiftLint
Da alle filer skal indeholde headers, jvf. NSP anbefales det at man anvender følgende Xcode templates, når man koder for at garantere headers.
Kopier "NSP" mappen til følgende lokation:
/Applications/Xcode.app/Contents/Developer/Library/Xcode/Templates/File Templates |
Derefter bør din mappestruktur ser sådan ud:![]()

For at få en "NSP" short cut til at indsætte copy right header kan nedenstående fil placeres på følgende path:
~/Library/Developer/Xcode/UserData/CodeSnippets |
Projektet indeholder en række tools, der anvendes under projektudvikling. De ligger alle i Tools mappen i repositoryet.
Alle strings er oprettet i følgende Google sheet (nedenstående link er view-only access):
https://docs.google.com/spreadsheets/d/1z4JOetw8HvD6h36hj29lx8iv97VG1DhSip-JhkIrg3c/edit?usp=sharing
Med følgende script kan man opdatere Localizable.strings så den svarer til indholdet i Google Sheet'et:
./Tools/update_strings.sh |
Desuden anvendes R.swift til at tilgå strings via et typealias: Localizable
Alle modeller der anvendes til JSON responses fra maternity API'et er genereret ud fra OpenAPI speccen. For at generere nye modeller anvendes følgende script:
./Tools/generate-models.sh |
For at undgå merge konflikter i projekt-filen, anbefales det at man - inden oprettelse af PR - anvender et script, der sorterer projekt-filen alfabetisk:
./Tools/sort-xcode.sh |
Projektet anvender Xocde Build Configurations til at styre forskellige build konfigurationer med.
Der eksisterer følgende konfigurationer:
enum BuildConfiguration: String {
case debug = "Debug"
case development = "Development"
case test = "Test"
case testMock = "TestMock"
case release = "Release"
} |
De forskellige konfigurationer udløser forskelligt setup af komponenter i app'en. Det ses i den statiske Configuration.build(for buildConfiguration: BuildConfiguration) -> Configuration metode.
Distribuering kræver at man opfylder kravene for at bygge projektet og at man har fastlane min. version 2.176.0: https://fastlane.tools/
Projektet distribueres som IPA med Enterprise certifikat (via Trifork's pt.). Det kræver at man har adgang til Min Graviditet (iOS) på https://insp.tpa.io/ og at man har en bruger med API key (der spørges efter denne i fastlane inden IPA'en uploades)
...