Bachelor's degree thesis at University of Gdansk, faculty of Mathematics, Physics and Information Technology.
Fork this repo, run pod install
and build the app on the desired device/simulator!
- MVVM+Router
- Store
- Protocols
- UIKit (programatically)
- Basic HealthKit integration
- Alamofire networking
- Simple reactiveness with RxSwift to propagate data
- Basic CommonCrypto usage (password hashing)
- DIY Chart using UIKit and UIAnimation
- Unit tests (Quick / Nimble)
- Cocoapods (EasyPeasy, Alamofire, RxSwift)
- Xcode
- Cocoapods
- Macbook (to build and run the project on either a simulator device or real device)
- iPhone X, XR, XS, XS Max, iPhone 11, iPhone 11Pro, iPhone 11 Pro Max (in order to run the app on a real device)
JSON Server
- Install JSON Server according to the official instructions.
- Open terminal and navigate to the directory of the db.json file.
- Run
json-server --watch db.json
orjson-server --watch db.json --port [insert desired localhost port numer]
. Omitting the--port
parameter results in running port 3000 by default.
NGROK Localhost porting to online through SSH tunnels.
- Install NGROK according to the official instructions.
- Open terminal and make sure you are in the root (
~
) directory. - Check which port you run the json server on (3000 by default, if not set otherwise).
- Run
./ngrok http port [insert port number here]
. - You should get some info about the sucessful tunnelling and a new HTTP URL on which you localhost is accessible through online connection.
Xcode project
- Open terminal and navigate to the project directory on your machine.
- Run
pod install
, if necessary, runpod install --repo-update
. - Open the
.xcworkspace
file in the project directory in Xcode.
- In this section choose whether you want to run the app using a localhost API (simulator only) or NGROK ported, online API (both simulator and real device).
- In both cases make sure that in
NetworkingClient.swift
theurlBase
constant is set to the right String value, which should be either the localhost or NGROK provided URL.
- Make sure you've got the
fithub-swift-client
build schema selected. - Choose the desired simulator or other device you want to build on. (iPhones only, iPhone X or newer, iOS 12.4 or newer).
- Build or run the app.
To run the tests simply use the keyboard shortcut CMD+U. This will trigger a new build and automated tests.
- Xcode - iOS IDE from Apple.
- Swift 5 - iOS development language
- Cocoapods - Dependency manager in iOS development
- Alamofire - HTTP networking library
- Easypeasy - Swift Autolayout Framework
- RxSwift - Reactive Programming in Swift
- JSON Server - JS REST API framework (for both local and online dev environment) (outside this repo)
- NGROK - SSH tunnels tool for exposing local APIs in mobile development testing (outside this repo)
As this is a university project, no contribution is desired nor allowed.
- Dominik Urbaez Gomez - Github profile
This project is licensed under the exclusive university license.
Useful resources used in the development of this project: