cd Gymondo-iOS/GymondoApp
open GymondoApp.xcworkspace
.
├── Gymondo # macOS Framework Target Contains Platform Agnostic Logic
│ │ ├── Models # App Entity
│ │ ├── ViewModels
│ │ ├── Exercise Service
│ │ ├── Networking
│ │ ├── Extensions
├── GymondoTests
│ │ ├── ViewModels
│ │ ├── Exercise API
│ │ ├── Helpers
├── GymondoAPIEndToEndTests
├── GymondoiOS iOS Framework Target Contains iOS Specific Logic
│ │ ├── Coordinator
│ │ ├── Scenes
│ │ │ ├── Exercise List
│ │ │ │ │ ├── Coordinator
│ │ │ │ │ ├── View
│ │ │ ├── Exercise Details
│ │ │ │ │ ├── Coordinator
│ │ │ │ │ ├── View
│ │ │ ├── Storyboard
│ │ ├── Extensions
├── GymondoiOSTests
│ │ ├── Helpers
├── GymondoAPP # iOS App
│ │ ├── SceneDelegate # Composition Root
The project is designed with the MVVM-C Architectural design pattern.
The projects contain several test plans as follows:
Test Plan | Run |
---|---|
Gymondo |
Run Gymondo macOS Platform agnostic tests |
GymondoiOS |
Run iOS Specific Tests |
GymondoAPIEndToEndTests |
Hit the network and validate the API response |
CI_macOS |
Run macOS framework tests and EndToEndTests |
CI_iOS |
Run macOS, iOS framework tests, and EndToEndTests |
The Project contains SwiftLint nested configurations to separate test and production rules.