Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

https://github.com/mehrankmlf/EasyCrypto

Clean Architecture + Combine SwiftUI
https://github.com/mehrankmlf/EasyCrypto

api apimanager architecture clean-architecture combine coredata coredata-swiftui dependency-injection ios ios-app ios-open-source mvvm-architecture swift swift5 swiftui swiftui-example swiftui-learning unit-testing viewmodel

Last synced: 3 months ago
JSON representation

Clean Architecture + Combine SwiftUI

Lists

README

        

![GitHub Cards Preview](https://user-images.githubusercontent.com/24524023/232792000-f2265938-f65a-44ac-b4a1-f7777967a7ab.png?raw=true)

# EasyCrypto

This project Contains An iOS app designed using Clean Architecture and MVVM wich implemented with SwiftUI.

## Description of The App

EasyCrypto is a simple crypto market app, built with SwiftUI and Combine framework, retrieved data from CoinGecko free APIs that allows developers to access the market data and functionality by making requests with specific parameters to a URL. Conceptual project to present MVVM with new SwiftUI, Combine + Clean approach.

## Concepts Used Here

- Core Data
- Clean Architecture
- MVVM
- Coordinator Pattern
- Dependency Injection
- Caching images
- SwiftLint
- UnitTest

## How to run
EasyCrypto requires iOS 15.0 or later. If you are developer, you can set its deployment target to lower iOS version if needed.

If your XCode 12.0 is not available, you can change `deployment target` to lower iOS version.

## API
- [CoinGecko](https://www.coingecko.com/en/api/)

## Requirements
- iOS 15.0+
- Swift +5

## Usage
I have explained about EasyCrypto in the form of a post on Medium.

https://medium.com/@mehran.kmlf/clean-architecture-combine-for-swiftui-caf252c0f10c

## Style and conventions - SwiftLint
A script runs when building the app that executes SwiftLint to enforce style & conventions to the code.

You can install SwiftLint with Homebrew: brew install swiftlint

## Contributing

Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.

If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!

1. Fork the Project
2. Create your Feature Branch (`git checkout -b feature/YourFeatureName`)
3. Commit your Changes (`git commit -m 'Add some YourFeatureName'`)
4. Push to the Branch (`git push origin feature/YourFeatureName`)
5. Open a Pull Request

Thank you!