You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 12 Next »

Indholdsfortegnelse

Introduktion

Formål

Formålet med dette dokument, er at beskrive systemkrav for udviklere på projektet. Desuden beskrive en række værktøjer, der hjælper med udviklingen, som er anvendt i projektet.

Sammenhæng med øvrige dokumenter


Udvikling

Krav for at bygge projektet

Xcode, min version 12.4

Swiftlint, min. version 0.41.0.: https://github.com/realm/SwiftLint

Xcode templates

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.

  1. Download Xcode templates: 
    NSP.zip
  2. Kopier "NSP" mappen til følgende lokation:

    Xcode templates file path
    /Applications/Xcode.app/Contents/Developer/Library/Xcode/Templates/File Templates


    Derefter bør din mappestruktur ser sådan ud:

  3. Brug dine nye file templates, når du opretter filer:


Xcode Code Snippets

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

nsp-header.codesnippet


Tools

Projektet indeholder en række tools, der anvendes under projektudvikling. De ligger alle i Tools mappen i repositoryet.

Generering af Localization tools

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

Generering af modeller via OpenAPI spec

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

Sortering af Xcode projekt fil

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

Konfiguration

Projektet anvender Xocde Build Configurations til at styre forskellige build konfigurationer med.

Der eksisterer følgende konfigurationer:

BuildConfiguration enum
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.

Release

Distribuering af test apps som IPA via ThePerfectApp

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)

App Store

...


  • No labels