SwiftyMarvel is a breathtaking SwiftUI app that brings the Marvel universe to life, showcasing hundreds of heroes and villains from the iconic franchise. This project serves as a personal showcase for my skills in iOS development, implementing best practices for building robust, scalable, and maintainable apps.
Architecture and Design
At the heart of SwiftyMarvel lies a clean architecture, divided into four main layers: Data, Domain, Presentation, and Core. Each layer has its unique responsibility, ensuring a clear separation of concerns and making it easier to maintain and extend the app.
The Data layer abstracts the data source used, handling interactions with the Marvel API and Core Data database. The Domain layer encapsulates the business logic, defining use cases that interact with the repositories and abstract data sources. The Presentation layer is responsible for displaying the data to the user, while the Core layer contains common code and dependencies.
Tools and Frameworks
To bring this project to life, I leveraged a range of powerful tools and frameworks:
- MVVM: Architectural design pattern separating logic from views
- Core Data: Storing favorite characters
- Swinject: Dependency Injection
- Arkana: Securely storing secrets and keys
- Nuke: Image Loading & Caching
- SwiftLint: Code Linting
- Mockingbird: Generating mock, stub, and verify objects in Swift unit tests
- Swift Testing Framework: Unit Testing Framework
Development Environment
To develop SwiftyMarvel, I used:
- Xcode 26.0
- Swift 6.2
- iOS Deployment Target 26.0
Continuous Integration and Code Coverage Analysis
The project utilizes GitHub Actions and Codecov to automate the building, testing, and code coverage analysis of the project. The CI pipeline runs whenever a new commit or pull request is made to the main branch, ensuring that changes are thoroughly tested and validated.
License
SwiftyMarvel is licensed under the MIT License - see the LICENSE file for details.
Get started with SwiftyMarvel by following these steps:
- Create an account on the Marvel Developer Portal
- Obtain your public and private keys
- Add the API keys to the .env file in the project root directory
- Install Arkana using Bundler
- Generate the ArkanaKeys package and add it to the project
- Run the project in Xcode
Join me on this exciting journey into the world of swift app development, as we explore the power of Clean Architecture and the Marvel API.