Skip to content

HabitatMap/AirCastingiOS

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

AirCasting

Testing Swift 5.3 Xcode 12.4 iOS 14.0

Conventions

Marking technical debt

For potential bugs or severe code quality issues:

  1. Place warnings in places that can potentially cause a bug (or bugs), and are too big to resolve ad hoc.
  2. When placing a warning, add a comprehensive explanation of the issue in the comment. Also link the ticket from 3) in this comment.
  3. Add a ticket to github issues section with correct tag:
    • A "warning" tag for every warning related issue
    • An "AirBeam needed" tag for issues that require an AirBeam to resolve/reproduce

For less severe stuff like minor code quality issues

  1. When the problem is not causing bug-level issues, but is too big to resolve ad hoc, add a // FIXME: marking in code and explain it really well, so that someone with more time that stumbles across this will be able to fully understand and refactor/fix. Also link the ticket from 2) in this comment.
  2. Add a ticket to github issues section with correct tag:
    • A "code quality" tag for quality issues
    • An "AirBeam needed" tag for issues that require an AirBeam to resolve/reproduce

SwiftLint

We use swiftlint to preserve clean code. Please, install it first using Homebrew: brew install swiftlint

Distributing builds

Certificates and Profiles setup

Once your Apple ID is added to the project:

  1. Create, download and install (by clicking the downloaded file) into your keychain two types of certificates:
    • Apple Development
    • Apple Distribution
  2. Create, download and install (by clicking the downloaded file) two types of profiles:
    • AD Hoc Distribution (connect the aforementioned Apple distribution certificate by selecting it from the list)
    • App Store distribution

Releasing a Beta build

  1. In XCode project navigator select AirCasting > Signing & Capabilities > Signing, verify that the Ad Hoc Distribution provisioning profile is selected
    • Potential issues
      • You might need to uncheck Automatically manage signing checkbox
      • You might need to download the profile by going to XCode > Settings > Accounts > Download Manual Profiles for HabitatMap Inc.
  2. Set scheme to Beta (Product > Scheme > Edit Scheme > Archive > Build configuration)
  3. Generate Archive (Product > Archive)
  4. Go to Archive window, select the generated archive and click Distribute App > Custom > Release testing, go through the wizard, navigate to the generated folder, upload the IPA file to Firebase distribution

Releasing an App Store build

  1. In XCode project navigator select AirCasting > Signing & Capabilities > Signing, verify that the Ad Hoc Distribution provisioning profile is selected
    • Potential issues
      • You might need to uncheck Automatically manage signing checkbox
      • You might need to download the profile by going to XCode > Settings > Accounts > Download Manual Profiles for HabitatMap Inc.
  2. Set scheme to Release (Product > Scheme > Edit Scheme > Archive > Build configuration)
  3. Generate Archive (Product > Archive)
  4. Go to Archive window, select the generated archive and click Distribute App > App Store Connect, go through the wizard
  5. Select the newly distributed build in App Store Connect Distribution and release it

Feature Flags

The app uses a concept called feature flagging to control which parts of code are ready to release and when. We're using Firebase Remote Config as a backend for those so we can adjust audiences on the fly not having to release new versions of the app. For beta testers there is a convenient AppSettings view which enables to manually flip any flag.

Configuration Firebase AppSettings
DEBUG 🛑
BETA
RELEASE 🛑

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 10

Languages