Baby Monitor iOS
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
Team
- Ania Pinderak - Project Manager
- Anna-Mariia Shkarlinska - iOS Developer
- Rafał Żurawski - QA
Tools & Services
- Tools:
- Services:
Configuration
Dependencies
Instalation
- 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.
Updating prerequisites
- 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.
Coding guidelines
-
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 }
Related repositories
Tips
Layout
- 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
]}