The native iOS application of HSA built with SwiftUI.
These instructions will get you a copy of the project up and running on your local machine for development and testing purposes.
- iOS 15.0+
- Xcode 14.0+
- CocoaPods
- Swift Package Manager
- Clone this repository into a location of your choice, like your projects folder
- Open terminal - > Navigate to the directory containing
Podfile
- Then install pods into your project by typing in terminal:
pod install
- Once completed, there will be a message that says
"Pod installation complete! There are X dependencies from the Podfile and X total pods installed."
- You are all set now. Open the .xcworkspace file from now on and hit Xcode's 'run' button. 🚀
There are 3 schemes available to run the project in Debug, Staging, Release environment.
- Debug - Set the active scheme as
HSAapp - Debug
to run the project in Debug environment. - Staging - Set the active scheme as
HSAapp - Staging
to run the project in Staging environment. - Release - Set the active scheme as
HSAapp - Release
to run the project in Release environment.
Code follows Swift standard library style guide. Project uses SwiftLint to enforce Swift style and conventions before sending a pull request.
A few dependencies are required to begin developing the application:
- SwiftLint
- Firebase/Analytics
- Firebase/Crashlytics
- Resolver
- RealmSwift
- Introspect
- KeychainAccess
- TextView
HSA app follows MVVM architecture. All views and related viewModels are grouped based on the modules and separated by folders.
HSA app's files are grouped by folders. Here's the list of main folders and what kind of files are included in each.
-
Configs - It consists of files which includes initial configurations required and for different environments.
-
UI - This folder consists of extension, helpers class, modifiers, utils, UIKitBridges, custom and common views used across the application.
-
Models - Models is divided into subfolders for database model, request / response model as well as data models.
-
Scenes - All the views and viewmodel used are included in this folder. They are divided into subfolders based on the application's modules.
-
Services - It includes files which handles database operations, storing data to user defaults or Keychain, handling API calls, network status, dependency injection and analytics.
-
HSAappXCUITests - This folder has UI test cases related to application flow, validating the existence of UIElement on relative screens.
-
HSAappTests - It includes unit test cases for validating the views. It consists of methods to validate data and API responses.