https://github.com/mertozseven/cryptowatch
This app allows user to track current prices, market cap, price changes and see charts.
https://github.com/mertozseven/cryptowatch
alamofire apple dark-mode ios-app kingfisher mvvm snapkit swift uikit
Last synced: 6 months ago
JSON representation
This app allows user to track current prices, market cap, price changes and see charts.
- Host: GitHub
- URL: https://github.com/mertozseven/cryptowatch
- Owner: mertozseven
- Created: 2024-05-01T18:55:10.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2024-05-10T12:38:57.000Z (over 1 year ago)
- Last Synced: 2025-02-05T01:51:35.517Z (8 months ago)
- Topics: alamofire, apple, dark-mode, ios-app, kingfisher, mvvm, snapkit, swift, uikit
- Language: Swift
- Homepage:
- Size: 501 KB
- Stars: 1
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
![]()
Crypto Watch - Turkcell Geleceği Yazanlar Bootcamp Second Project by Mert Adem Özseven
Welcome to Crypto Watch! Perfect companion for monitoring Crypto Market and trends 🚀. This app allows user to track current prices, market cap, price changes and see charts.
## Table of Contents
- [Features](#features)
- [Screenshots](#screenshots)
- [Tech Stack](#tech-stack)
- [Architecture](#architecture)
- [Getting Started](#getting-started)
- [Prerequisites](#prerequisites)
- [Installation](#installation)
- [Usage](#usage)
- [Improvements](#improvements)## Features
**See Top Ranking Crpto Coins:**
- Explore the most popular crypto coins listed by rank.
**See In Depth Information About Coins:**
- In Detail View of the coin, there is current price, price change, 24 hour change, minimum and maximum prices daily, market cap and price chart!## Screenshots
| Image 1 | Image 2 | Image 3 |
|------------------------|------------------------|------------------------|
|  |  |  |
| Splash Screen (Dark Mode) | Ranking List (Dark Mode) | Detail View (Dark Mode) || Image 4 | Image 5 | Image 6 |
|------------------------|------------------------|------------------------|
|  |  |  |
| Splash Screen (Light Mode) | Ranking List (Light Mode) | Detail View (Light Mode) |## Tech Stack
- **Xcode:** Version 15.3
- **Language:** Swift 5.10
- **Minimum iOS Version:** 17.0
- **Dependency Manager:** SPM
- **3rd Party Dependencies:** Alamofire, SnapKit, KingFisher## Architecture

In Crypto Watch's development, MVVM (Model-View-ViewModel) architecture is being used for these key reasons:
- **Enhanced Maintainability:** MVVM facilitates a clean separation between the presentation logic and the business logic of the app. This separation makes it easier to manage and update the codebase as the app evolves.
- **Improved Testability:** The decoupling of the business logic from the UI components allows for more straightforward unit testing. Developers can focus on testing the logic behind the view model without worrying about the user interface.
- **Stronger Data Binding:** MVVM supports two-way data binding between the View and ViewModel, reducing the need for boilerplate code to synchronize the UI with the underlying data. This leads to less error-prone code and a smoother development process.## Getting Started
### Prerequisites
Before you begin, ensure you have the following:
- Xcode installed
Also, make sure that these dependencies are added in your project's target:
- [Kingfisher](https://github.com/onevcat/Kingfisher): Kingfisher is a lightweight and pure Swift library for downloading and caching images from the web.
- [Alamofire](https://github.com/Alamofire/Alamofire): Alamofire is an HTTP networking library written in Swift.
- [SnapKit](https://github.com/SnapKit/SnapKit): SnapKit is a DSL to make Auto Layout easy on both iOS and OS X.### Installation
1. Clone the repository:
```bash
git clone https://github.com/mertozseven/CryptoWatch.git
```2. Open the project in Xcode:
```bash
cd CryptoWatch
open CrptoWatch.xcodeproj
```
3. Add required dependencies using Swift Package Manager:```bash
- Kingfisher
- Alamofire
- Snapkit
```6. Build and run the project.
## Usage Video
---
## Improvemets
- Sorting coins for changes or prices could be added
- Localization for other languages can be added to be able to reach more user.
- Core data, Fire Base or UserDefaults integration for saved coins.