scalefocus / virusafe-ios

The repo for the ViruSafe iOS project.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

ViruSafe for iOS

ViruSafe aims to help the fight with COVID-19 by offering people to share their symptoms as well track the spread of COVID-19 with an interactive map, that shows how the infection has spread throughout Bulgaria.

The ViruSafe mobile app provides access to the following:

  • Receiving up-to-date information regarding COVID-19
  • Regular sharing of symptoms
  • Sharing your location, in order to compare your location to all users who have developed symptoms
  • Option to be warned if you have been in close proximity to other symptomatic users
  • Option to receive location-based notifications and alerts

Download on the App Store

Overview:

Build Instructions

Prerequisites

  • Mac computer
  • Xcode
  • Developer account
  • iTunes Connect account (Optional)
  • Clone the repository

Bundler

We use Bundler to help us with the installation of gems that we use in the project (Fastlane and Cocoapods).

If you don't have bundler installed

gem install bundler

Install all gems from specified sources

  • Navigate to the folder containing the Gemfile in your Terminal app
  • Now install all gems by executing the command:
bundle install

Install gems without using bundle

  • Navigate to the folder containing the Gemfile in your Terminal app
  • Install the necessary gems

As we use cocoapods for dependencies you need to have at least cocoapods installed on your computer. If not:

gem install cocoapods

optionally:

gem install fastlane

Pods

  • Navigate to the folder containing the Podfile in your Terminal app.
  • Now install the necessary project dependencies by executing the command:
bundle exec pod install

or without using bundle

pod install
  • Open COVID-19.xcworkspace and build.

NB! NetworkKit is a Development Pod. After every change in it you have to reinstall pods and clean build your project.

SwiftLint

This project is using SwiftLint, it's installed throught cocoapods so that you don't need to install it on your computer.

Fastlane

This project is using Fastlane as middleware for GitHub Actions (or any other automation tool).

Firebase

In order to have working app you should add GoogleService-Info.plist to the project. If you're member of the internal team get a copy of GoogleService-Info.plist from one of the other developers. Otherwise you have to setup your own Firebase project. You should have one configuration per target. GoogleService-Info.plist files are located in ./COVID-19/Firebase/<Target Folder>.

Repeat above for the remote config. Check RemoteConfigDefaults for used keys.

NB! We're using Firebase for Push notifications, Remote config and Crashlytics. Also, by default, Firbase collects some Analytics like installing and reinstalling of the app.

Flex

If you're member of the internal team get a copy of Localization-settings.plist files from one of the other developers and place it ./COVID-19/Firebase/<Target Folder>

If you don't have Flex API key this build step will fail, but you're covered. We ship our code with default localization for every target, so you're still able to run the project.

Build Settings

Base SDK: Latest Deployment Target: 10.0

NB! You can build an application with latest Base SDK that runs under iOS 10. But then you have to take care to not use any function or method that is not available on iOS 10. If you do, your application will crash on iOS 10 as soon as this function is used.

Provisioning

Debug version is signed automatically. Release version uses manual signing. Both however are not opened, so if you're not member of the internal team you have to use your own signing, while testing.

Debug

  • Bluetooth functionality can not be tested in the Simulator. (Don't worry BT is not added yet)
  • Location can be simulated (Google it)

Code Styleguide

We decided to refer to The Official raywenderlich.com Swift Style Guide

Contributors are expected to read through and familiarize themselves with the style guide as we're going to enforce it with swiftlint.

Branching guide

Contributors must work directly with their private forks on GitHub. It is expected that all contributions will be submitted via a feature branch originating from the appropriate up-to-date develop branch. Please check our branching strategy

Using the REST API

Swagger Documentation for the ViruSafe REST API is available at the ViruSafe SwaggerHub.

Also, the ViruSafe Swagger API Docs are available for download as JSON and as YAML files. These become useful when setting up your Mock API.

Using a Mock API

To develop the mobile app against a Mock API, please check the guidelines on how to Use a Mock API

Contributing

Read our Contributing Guide to learn about reporting issues, contributing code, and more ways to contribute.

Security

If you happen to find a security vulnerability, we would appreciate you letting us know by contacting us on - virusafe.support (at) scalefocus.com and allowing us to respond before disclosing the issue publicly.

Contacts

Feel free to checkout our Slack Team and join the discussion there ✌️

License

Copyright 2020 SCALE FOCUS AD

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

About

The repo for the ViruSafe iOS project.

License:Apache License 2.0


Languages

Language:Swift 89.5%Language:Ruby 9.3%Language:Shell 1.0%Language:Objective-C 0.2%