BeCoin is a cryptocurrency wallet application built in Swift using SwiftUI. This project leverages the MVVM architecture, Combine framework, CoreData for data persistence, multithreading for smooth performance, and publishers/subscribers for data flow management.
- Features
- Screenshots
- Getting Started
- Usage
- Architecture
- Technologies
- Contributing
- Commit Convention
- License
- Author
-
Cryptocurrency Wallet: BeCoin allows users to manage their cryptocurrency holdings by adding, removing, and tracking various cryptocurrencies.
-
Real-Time Data: The app provides cryptocurrency price updates and portfolio value calculations, keeping users informed about their investments.
-
Data Persistence: Utilizes CoreData to securely store user data, including wallet information and history.
-
Multithreading: Takes advantage of multithreading to ensure smooth performance and responsiveness even when dealing with large datasets.
-
Combine Framework: Utilizes Combine to handle asynchronous operations and data flow, ensuring a reactive and scalable architecture.
These instructions will help you set up and run the BeCoin app on your local machine for development and testing purposes.
To run the BeCoin app on your local development environment, follow these steps:
-
Clone the repository:
git clone https://github.com/andremporto/BeCoin.git
-
Open the project in Xcode:
cd becoin open BeCoin.xcodeproj
-
Build and run the project in the Xcode simulator or on a physical iOS device.
- Launch the BeCoin app on your iOS device or simulator.
- Add your cryptocurrency holdings to the wallet.
- View real-time cryptocurrency prices and track your portfolio's value.
The BeCoin app follows the MVVM (Model-View-ViewModel) architecture pattern to separate concerns and maintain a clean and organized codebase:
-
Model: Represents the data layer and includes the CoreData models for storing cryptocurrency and transaction information.
-
View: Represents the user interface layer using SwiftUI views to display wallet data and interact with users.
-
ViewModel: Acts as an intermediary between the Model and View, responsible for handling data manipulation, business logic, and interaction with external services (e.g., cryptocurrency price API). Combine is used for data binding between ViewModel and View.
- Swift
- SwiftUI
- Combine
- CoreData
- Multithreading
If you'd like to contribute to the BeCoin project, please follow these steps:
- Fork the repository.
- Create a new branch for your feature or bug fix.
- Make your changes and ensure all tests pass.
- Submit a pull request with a clear description of your changes and why they are necessary.
Commit type / Tipo de Commit | Description / Descrição |
---|---|
feat |
Adds new functionality to the project. |
fix |
Fixes a bug or problem in the project. |
docs |
Changes the project documentation. E.g. README, comments in the code. |
style |
Makes appearance changes without changing functionality. |
refactor |
Make changes to code that do not change functionality. |
test |
Adds or modifies tests in the project. |
feat: added new file
This project is licensed under the MIT License - see the LICENSE file for details.
![foto](https://raw.githubusercontent.com/andremporto/andremporto/main/foto/fotoperfil.png)
Made with