https://github.com/wednesday-solutions/ios-template
An enterprise iOS template application showcasing - Testing strategy, MVVM-C architecture, a network layer, handling secrets, localisation, navigation configuration and CI
https://github.com/wednesday-solutions/ios-template
architecture cocoapods ios ios-boilerplate ios-production-app ios-starter-kit ios-template mvvm-coordinator secrets-manager swift swiftlint xcode xctest
Last synced: 2 months ago
JSON representation
An enterprise iOS template application showcasing - Testing strategy, MVVM-C architecture, a network layer, handling secrets, localisation, navigation configuration and CI
- Host: GitHub
- URL: https://github.com/wednesday-solutions/ios-template
- Owner: wednesday-solutions
- Created: 2020-08-27T07:19:22.000Z (almost 5 years ago)
- Default Branch: develop
- Last Pushed: 2023-02-13T18:25:00.000Z (over 2 years ago)
- Last Synced: 2025-04-13T21:13:08.318Z (2 months ago)
- Topics: architecture, cocoapods, ios, ios-boilerplate, ios-production-app, ios-starter-kit, ios-template, mvvm-coordinator, secrets-manager, swift, swiftlint, xcode, xctest
- Language: Swift
- Homepage: https://wednesday.is/building-products/?utm_source=github&utm_medium=ios-template
- Size: 42.6 MB
- Stars: 13
- Watchers: 4
- Forks: 4
- Open Issues: 2
-
Metadata Files:
- Readme: README.MD
Awesome Lists containing this project
README
iOS TemplateAn enterprise iOS template application showcasing - App architecture pattern(MVVM-Coordinator-RxSwift), Testing stratergies, CI/CD pipeline using GitAction and fastlane, Localization, Code generation, Linting, Networking
### Requirements
* [Cocoapods](https://cocoapods.org/)
* [Fastlane](https://fastlane.tools/)
* [SwiftLint](https://github.com/realm/SwiftLint)
### Getting started
* Clone Repo
* Checkout `develop` brach
* Install pods using `pod install`### MVVM-Coordinator-RxSwift Architecture
#### Resources
* [Coordinator pattern](https://hackingwithswift.com/articles/71/how-to-use-the-coordinator-pattern-in-ios-apps)
* [MVVM-Coordinator-RxSwift](https://medium.com/hackernoon/how-to-use-mvvm-coordinators-and-rxswift-7364370b7b95)
* [RxSwift](https://hackingwithswift.com/articles/71/how-to-use-the-coordinator-pattern-in-ios-apps)This architecture is combination of best practices, which help to write code that is easier to read, reactive, testable and scalable.
### Code Tools
#### [Sourcery](https://github.com/krzysztofzablocki/Sourcery)
Sourcery is auto code genration tool that is used for storing the keys used in the application securely by generating them at build time. You'll have to manually add a shell script named `secrets-vars.sh` with below content, Make sure the file is in the root folder of the project along side `xcworkspace`.

you can find the script named `Generate SecretConfig.swift` in Build Phases of the main app target. Once built successfully you can find `SecretConfig.generated.swift` file generated under `Helpers` folder. *If not shown open the folder in finder window it will be there, just drag and drop it under Helpers folder*. This files will contain the secrets for usage in app. `secrets-vars.sh` and `SecretConfig.generated.swift` are both added to `.gitignore`.
#### [SwiftGen](https://github.com/SwiftGen/SwiftGen)