Skip to content

An iOS crypto price tracker app built with SwiftUI, RxSwift, and the CoinGecko API, following Clean Architecture with MVVM.

Notifications You must be signed in to change notification settings

aungyelin/myCrypto

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

12 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

myCrypto - Crypto Price Tracker

An iOS application for tracking cryptocurrency prices, developed as a coding assignment. This app displays live market data from the CoinGecko API, built with a modern, reactive tech stack. It is also fully compatible with the new iOS 26 Liquid Glass UI.

πŸ“Έ Screenshots

Welcome Screen Light Crypto List Light Coin Details Light

Welcome Screen Dark Crypto List Dark Coin Details Dark

✨ Features

  • Welcome Screen: A simple and clean introductory screen to onboard the user.
  • Crypto List Screen:
    • Displays a real-time list of cryptocurrencies with essential data: name, symbol, current price, 24-hour percentage change, market cap, and trading volume.
    • Shows a mock portfolio balance and performance chart for demonstration.
    • Implements pull-to-refresh functionality to fetch the latest market data.
  • Coin Details Screen:
    • Provides a detailed view for each cryptocurrency, including market cap, volume, and current price.
    • Visualizes the coin's performance with a 7-day historical price chart.
    • Allows users to save their favorite coins to a local watchlist using CoreData.

πŸ› οΈ Technical Stack & Architecture

  • UI: SwiftUI for a modern, declarative user interface.
  • Reactive Programming: RxSwift and RxCocoa to handle asynchronous operations, API calls, and UI updates reactively.
  • Networking: Alamofire for robust and simplified RESTful API communication.
  • Local Storage: CoreData for persisting the user's favorite coins on the device.
  • Architecture: The project follows Clean Architecture principles combined with the MVVM (Model-View-ViewModel) pattern. This approach ensures a robust separation of concerns, enhances testability, and promotes a highly maintainable and scalable codebase.

πŸ”— API Integration

The application fetches all cryptocurrency data from the public CoinGecko API.

The key endpoints used are:

  • GET /api/v3/coins/markets: To fetch the list of cryptocurrencies for the main market screen.
  • GET /api/v3/coins/{id}: To get detailed information for a specific coin.
  • GET /api/v3/coins/{id}/market_chart: To retrieve historical data for the 7-day price chart.

πŸš€ Getting Started

Follow these instructions to get the project up and running on your local machine.

Prerequisites

  • Xcode 15 or later
  • iOS 17 or later

Installation

  1. Clone the repository:
    git clone https://github.com/aungyelin/myCrypto.git

  2. Open the project in Xcode:
    Open the myCrypto.xcodeproj file.

  3. Build and Run:
    Select an iOS Simulator or a physical device and press Cmd+R or click the "Run" button in Xcode.

About

An iOS crypto price tracker app built with SwiftUI, RxSwift, and the CoinGecko API, following Clean Architecture with MVVM.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages