iOS University Project about tracking corona virus cases world wide, and allowing the users to activate quarantine mode.
- Xcode 12.x
- iOS 14 and above
Project uses ruby gems cocoapods in order to install dependencies.
So first we need to run in our terminal: Sudo gem install cocoapods
Then navigate to project directory:
pod install
Open Covid.xcworkspace
(don't open Covid.xcodeproj
as the app won't compile)
Then the project is ready to use within Xcode IDE.
Used to manage keyboard.
Used for the loader and launch screen animations.
Core features:
8 different chart types Scaling on both axes (with touch-gesture, axes separately or pinch-zoom) Dragging / Panning (with touch-gesture) Combined-Charts (line-, bar-, scatter-, candle-stick-, bubble-) Dual (separate) Axes Customizable Axes (both x- and y-axis) Highlighting values (with customizable popup-views) Save chart to camera-roll / export to PNG/JPEG
The app uses MVC architecture (Model View Controller)
MVC โ short for Model-View-Controller โ is Apple's preferred way of architecting apps for its platforms, and so it's the default approach used by most developers on Apple platforms. In MVC each piece of your code is one of three things: Models store your data, such as the names of products in a store.
- Models - models of the app
- Controllers - contains the main controller of the app "HomeViewController"
- ThirdPartySDK - classes related to charts used by 3rd party charts sdk.
- Views - custom views and extensions.
- Networking - classes related to networking. It contains general classes.
- Storyboards - it contains all storyboards of the app.
- Constants - contains the contants file.
- Authentication - Contains classes responsible for authentication flow
- Resources - asset file + animations.json
- There should not be any force unwrapping in code. We're using optional unwrapping in order to prevent crashes of production app and to not disturb user experience.
- There should be empty line after imports and before class, struct, enum definition.
- There should not be empty line before method name and first line of method body
- There should not be any spaces before opening or closing brackets
- There should not be any trailing white spaces in new lines