Welcome to the Baby Monitor project. It's an application made for monitoring babies, which can help parents take care of their children. Application works similar to this product: https://www.philips.ie/c-p/SCD620_05/avent-baby-monitor-digital-video-baby-monitor
- Ania Pinderak - Project Manager
- Anna-Mariia Shkarlinska - iOS Developer
- Rafał Żurawski - QA
- Tools:
- Services:
- Clone repository:
# over https:
git clone https://github.com/netguru/baby-monitor-client-ios.git
# or over SSH:
git clone [email protected]:netguru/baby-monitor-client-ios.git
- Install required Gems:
bundle install
- Run Carthage:
carthage bootstrap --platform iOS --cache-builds
- IMPORTANT: Open terminal and prevent saving changes being made to
GoogleService-Info.plist
: Enter plists folder
cd "Baby Monitor/Supporting Files/Firebase"
and start ignoring changes made to the files in there
git update-index --assume-unchanged $(git ls-files | tr '\n' ' ')
- For Developers from Netguru:
Get
SECRET_PASSPHRASE
from project's vault and do not expose it in any way, make sure this key is secure with you. Make sure you havegpg
and7zip
installed, then run:
# Decrypt prerequisites archive
gpg --quiet --batch --yes --decrypt --passphrase='$SECRET_PASSPHRASE' --output prerequisites.zip prerequisites.zip.gpg
# Unzip the archive
7z e prerequisites.zip -oprerequisites -y
# Copy GoogleService plist files
mv -f "./prerequisites/GoogleService-Info-Development.plist" "./Baby Monitor/Supporting Files/Firebase/GoogleService-Info-Development.plist"
mv -f "./prerequisites/GoogleService-Info-Production.plist" "./Baby Monitor/Supporting Files/Firebase/GoogleService-Info-Production.plist"
mv -f "./prerequisites/GoogleService-Info-Staging.plist" "./Baby Monitor/Supporting Files/Firebase/GoogleService-Info-Staging.plist"
In case of the lack of an access:
For a full integration please configure your own application in Firebase, download and paste plist
s from there as well as a key to .env
.
-
Install pods through Bundler:
bundle exec pod install
-
Open
Baby Monitor.xcworkspace
file and build the project.
- For Developers from Netguru:
Get
SECRET_PASSPHRASE
from project's vault and do not expose it in any way, make sure this key is secure with you. Make sure you havegpg
and7zip
installed, then run:
# Decrypt prerequisites archive
gpg --quiet --batch --yes --decrypt --passphrase='$SECRET_PASSPHRASE' --output prerequisites.zip prerequisites.zip.gpg
# Unzip the archive
7z e prerequisites.zip -oprerequisites -y
- Update files in
prerequisites
directory. - Certificates.p12 have to also be locked with
SECRET_PASSPHRASE
. - Create the archive from the
prerequisites
directory. - Encrypt it using command:
gpg --symmetric --cipher-algo AES256 prerequisites.zip
- Commit updated gpg file.
-
Respect Swift API Design Guidelines
-
The code must be readable and self-explanatory - full variable names, meaningful methods, etc.
-
Don't leave any commented-out code.
-
Write documentation for every method and property accessible outside the class. For example well documented method looks as follows:
for Swift:
/// Tells the magician to perform a given trick. /// /// - Parameter trick: The magic trick to perform. /// - Returns: Whether the magician succeeded in performing the magic trick. func perform(magicTrick trick: MagicTrick) -> Bool { // body }
- Use helper methods from
UIView+AutoLayout.swift
- Examples:
addSubview(view)
view.addConstraints {[
$0.equalConstant(.height, 36), // sets height to 36
$0.equalConstant(.width, 285), // sets width to 285
$0.equal(.centerX), // attaches centerXAnchor to superView centerXAnchor
$0.equalTo(topView, .top, .bottom, constant: 80) // attaches views topAnchor to topView bottom anchor with offset 80
]}