iOS DEV FAQ - PEBMED/ios-base-architecture GitHub Wiki
DEV FAQ aims to give access to decisions that were taken based on best practices inside the project.
Modules
Underneath is listed all main modules that compose the project.
DependencyContainer
It is a central point that manages all dependencies across modules and classes.
Coordinator
Coordinator is an object that handles navigation flow and shares flow’s handling for the next coordinator after switching on the next chain. It means that coordinators should only keep navigation logic between screens.
Models
Models are part of MVVM architecture, they represent the actual data and/or information we are dealing with.
Support
Main files such as AppDelegate, LaunchScreen.storyboard and etc.
Utilities
Utilities to be used across the project such as Enums, Protocols, and Classes.
Api
Api manages the network layer that is required for consumes Services.
Extension
Extension classes used to reduce code inside classes and controllers.
CustomViews
Shared views that are used across the project.
Features
The functionalities are within features in order to be arranged by domain.
Tests
We are using XCTest framework to write unit tests and KIF Framework to test our UI.
GHProjectsTests
Unit tests
GHProjectsUITests
UI tests
Code convention
- All style code/name conventions will be managed through Swift Lint.
- ViewCode to build screens
Analytics
- Snowplow analytics
- Firebase
- Mixpanel
Logs
- Crashlytics
Remote Config
- firebase
- internal API