Skip to content

NexdApp/nexd-ios

Repository files navigation

CI status

  • Release

Initial Setup

Make sure you've installed bundler on your mac.

$ cd Nexd
$ bundle install
$ bundle exec pod install
$ open Nexd.xcworkspace

Update REST client

Needs to be done when the backend deployed changes. Make sure openapi-generator is installed on your mac

From production backend

$ ./update_swagger_client.sh

From staging backend

$ ./update_swagger_client.sh https://api-staging.nexd.app/api/v1

Build & Run

  • XCode scheme nexd (Debug): DEBUG build of the app, connects to staging backend
  • XCode scheme nexd (Release): Releas build of the app, connects to production backend
  • XCode scheme nexdScreenshots: a UI testing target which is used to automate screenshotting of the app, connects to a mocked backend which is controlled by the tests themselves

Architecture

Technologies

  • API client generated from swagger with openapi-generator
  • RxSwift & RxCocoa
  • Cleanse for dependency injection
  • R.swift for strongly typed access to resources:
    • Colors: in Collors.xcassets
    • Images: in Assets.xcassets
    • Fonts
    • Strings: maintained in POEditor
  • SwiftUI: After the Hackathon I started to dive into SwiftUI and deicded to implement all new screens in SwiftUI (refer to eg. Transcribe*View.swift screens)
  • fastlane and match for CI/CD automation
  • Branche/Release model: Based on git flow:
    • we work with feature branches based on develop
    • features are merged via pull requests in github
    • releases are prepared in release branches (named something like release/*)
    • releae branches are merged into master and master will be deployed automatically to testflight

Creating screenshots

bundle exec fastlane create_screenshots

Screenshots can then be found in: fastlane/screenshots

FAQ:

Where can I find: